@webiny/app-website-builder-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/ContentReviews/WbContentReviews.d.ts +2 -0
- package/Components/ContentReviews/WbContentReviews.js +41 -0
- package/Components/ContentReviews/WbContentReviews.js.map +1 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.js +59 -0
- package/Components/ContentReviews/WbContentReviews.smoke.test.js.map +1 -0
- package/Components/ContentReviews/WbContentReviews.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviews.test.js +80 -0
- package/Components/ContentReviews/WbContentReviews.test.js.map +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.d.ts +2 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.js +18 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.js.map +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.d.ts +1 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js +67 -0
- package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js.map +1 -0
- package/Components/PageEditor/DisabledPublishButton.d.ts +6 -0
- package/Components/PageEditor/DisabledPublishButton.js +17 -0
- package/Components/PageEditor/DisabledPublishButton.js.map +1 -0
- package/Components/PageEditor/DisabledPublishButton.test.d.ts +1 -0
- package/Components/PageEditor/DisabledPublishButton.test.js +67 -0
- package/Components/PageEditor/DisabledPublishButton.test.js.map +1 -0
- package/Components/PageEditor/PageBasePublishDecorator.d.ts +2 -0
- package/Components/PageEditor/PageBasePublishDecorator.js +23 -0
- package/Components/PageEditor/PageBasePublishDecorator.js.map +1 -0
- package/Components/PageEditor/PageEditorAutoSave.d.ts +2 -0
- package/Components/PageEditor/PageEditorAutoSave.js +23 -0
- package/Components/PageEditor/PageEditorAutoSave.js.map +1 -0
- package/Components/PageEditor/PageEditorAutoSave.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorAutoSave.test.js +111 -0
- package/Components/PageEditor/PageEditorAutoSave.test.js.map +1 -0
- package/Components/PageEditor/PageEditorConfig.d.ts +2 -0
- package/Components/PageEditor/PageEditorConfig.js +13 -0
- package/Components/PageEditor/PageEditorConfig.js.map +1 -0
- package/Components/PageEditor/PageEditorLayout.d.ts +2 -0
- package/Components/PageEditor/PageEditorLayout.js +10 -0
- package/Components/PageEditor/PageEditorLayout.js.map +1 -0
- package/Components/PageEditor/PageEditorLayout.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorLayout.test.js +121 -0
- package/Components/PageEditor/PageEditorLayout.test.js.map +1 -0
- package/Components/PageEditor/PageEditorTopBar.d.ts +2 -0
- package/Components/PageEditor/PageEditorTopBar.js +10 -0
- package/Components/PageEditor/PageEditorTopBar.js.map +1 -0
- package/Components/PageEditor/PageEditorTopBar.test.d.ts +1 -0
- package/Components/PageEditor/PageEditorTopBar.test.js +175 -0
- package/Components/PageEditor/PageEditorTopBar.test.js.map +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.d.ts +2 -0
- package/Components/PageEditor/PageNewRevisionDecorator.js +24 -0
- package/Components/PageEditor/PageNewRevisionDecorator.js.map +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.d.ts +1 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.js +107 -0
- package/Components/PageEditor/PageNewRevisionDecorator.test.js.map +1 -0
- package/Components/PageEditor/PageReadOnlySync.d.ts +3 -0
- package/Components/PageEditor/PageReadOnlySync.js +23 -0
- package/Components/PageEditor/PageReadOnlySync.js.map +1 -0
- package/Components/PageEditor/PageReviewBar.d.ts +4 -0
- package/Components/PageEditor/PageReviewBar.js +93 -0
- package/Components/PageEditor/PageReviewBar.js.map +1 -0
- package/Components/PageEditor/PageReviewBar.test.d.ts +1 -0
- package/Components/PageEditor/PageReviewBar.test.js +135 -0
- package/Components/PageEditor/PageReviewBar.test.js.map +1 -0
- package/Components/PageEditor/PageReviewPublishAction.d.ts +2 -0
- package/Components/PageEditor/PageReviewPublishAction.js +15 -0
- package/Components/PageEditor/PageReviewPublishAction.js.map +1 -0
- package/Components/PageEditor/PageReviewPublishButton.d.ts +4 -0
- package/Components/PageEditor/PageReviewPublishButton.js +23 -0
- package/Components/PageEditor/PageReviewPublishButton.js.map +1 -0
- package/Components/PageEditor/PageScheduleDecorator.d.ts +2 -0
- package/Components/PageEditor/PageScheduleDecorator.js +23 -0
- package/Components/PageEditor/PageScheduleDecorator.js.map +1 -0
- package/Components/PageEditor/PageScheduleDecorator.test.d.ts +1 -0
- package/Components/PageEditor/PageScheduleDecorator.test.js +75 -0
- package/Components/PageEditor/PageScheduleDecorator.test.js.map +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.d.ts +4 -0
- package/Components/PageEditor/getPageReadOnlyReason.js +20 -0
- package/Components/PageEditor/getPageReadOnlyReason.js.map +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.d.ts +1 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.js +122 -0
- package/Components/PageEditor/getPageReadOnlyReason.test.js.map +1 -0
- package/Components/PageEditor/getPageReviewContext.d.ts +9 -0
- package/Components/PageEditor/getPageReviewContext.js +13 -0
- package/Components/PageEditor/getPageReviewContext.js.map +1 -0
- package/Components/PageEditor/getPageReviewContext.test.d.ts +1 -0
- package/Components/PageEditor/getPageReviewContext.test.js +42 -0
- package/Components/PageEditor/getPageReviewContext.test.js.map +1 -0
- package/Components/PageEditor/pageEditorDocument.d.ts +17 -0
- package/Components/PageEditor/pageEditorDocument.js +0 -0
- package/Components/PageEditor/pageReviewMatrix.test.d.ts +1 -0
- package/Components/PageEditor/pageReviewMatrix.test.js +223 -0
- package/Components/PageEditor/pageReviewMatrix.test.js.map +1 -0
- package/Components/PageEditor/publishMatrix.test.d.ts +1 -0
- package/Components/PageEditor/publishMatrix.test.js +313 -0
- package/Components/PageEditor/publishMatrix.test.js.map +1 -0
- package/Components/PagesList/PageListReviewGatedActions.d.ts +2 -0
- package/Components/PagesList/PageListReviewGatedActions.js +27 -0
- package/Components/PagesList/PageListReviewGatedActions.js.map +1 -0
- package/Components/PagesList/PageListReviewGatedActions.test.d.ts +1 -0
- package/Components/PagesList/PageListReviewGatedActions.test.js +94 -0
- package/Components/PagesList/PageListReviewGatedActions.test.js.map +1 -0
- package/Components/PagesList/PagesList.d.ts +2 -0
- package/Components/PagesList/PagesList.js +8 -0
- package/Components/PagesList/PagesList.js.map +1 -0
- package/Components/PagesList/PagesList.test.d.ts +1 -0
- package/Components/PagesList/PagesList.test.js +47 -0
- package/Components/PagesList/PagesList.test.js.map +1 -0
- package/Components/PagesList/index.d.ts +1 -0
- package/Components/PagesList/index.js +1 -0
- package/Components/index.d.ts +2 -0
- package/Components/index.js +2 -0
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.d.ts +2 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.js +23 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.js.map +1 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.d.ts +1 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.js +141 -0
- package/Routes/WebsiteBuilderWorkflowsMenu.test.js.map +1 -0
- package/Routes/index.d.ts +1 -0
- package/Routes/index.js +1 -0
- package/constants.d.ts +1 -0
- package/constants.js +4 -0
- package/constants.js.map +1 -0
- package/editorGlue.wiring.test.d.ts +1 -0
- package/editorGlue.wiring.test.js +128 -0
- package/editorGlue.wiring.test.js.map +1 -0
- package/features/cache/WbReviewCacheSyncHandler.d.ts +8 -0
- package/features/cache/WbReviewCacheSyncHandler.js +14 -0
- package/features/cache/WbReviewCacheSyncHandler.js.map +1 -0
- package/features/cache/WbReviewPageCacheWriter.d.ts +17 -0
- package/features/cache/WbReviewPageCacheWriter.js +39 -0
- package/features/cache/WbReviewPageCacheWriter.js.map +1 -0
- package/features/cache/WbReviewPageCacheWriter.test.d.ts +1 -0
- package/features/cache/WbReviewPageCacheWriter.test.js +115 -0
- package/features/cache/WbReviewPageCacheWriter.test.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/cache/feature.d.ts +1 -0
- package/features/cache/feature.js +13 -0
- package/features/cache/feature.js.map +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.d.ts +25 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js +112 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js.map +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.d.ts +1 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.js +632 -0
- package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.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 +244 -0
- package/features/editorGateway/feature.test.js.map +1 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.d.ts +1 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js +19 -0
- package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js.map +1 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.d.ts +1 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js +23 -0
- package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js.map +1 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.d.ts +1 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js +19 -0
- package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js.map +1 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.d.ts +1 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js +16 -0
- package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js.map +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.d.ts +21 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.js +45 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.js.map +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.test.d.ts +1 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.test.js +115 -0
- package/features/editorMounting/WbWorkflowEditorAppAdapter.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 +93 -0
- package/features/editorMounting/feature.test.js.map +1 -0
- package/features/editorReview/WbPageContentReloader.d.ts +12 -0
- package/features/editorReview/WbPageContentReloader.js +40 -0
- package/features/editorReview/WbPageContentReloader.js.map +1 -0
- package/features/editorReview/WbPageContentReloader.test.d.ts +1 -0
- package/features/editorReview/WbPageContentReloader.test.js +222 -0
- package/features/editorReview/WbPageContentReloader.test.js.map +1 -0
- package/features/editorReview/WbPageReview.d.ts +8 -0
- package/features/editorReview/WbPageReview.js +14 -0
- package/features/editorReview/WbPageReview.js.map +1 -0
- package/features/editorReview/WbPageUnsavedChanges.d.ts +8 -0
- package/features/editorReview/WbPageUnsavedChanges.js +12 -0
- package/features/editorReview/WbPageUnsavedChanges.js.map +1 -0
- package/features/editorReview/WbPageUnsavedChanges.test.d.ts +1 -0
- package/features/editorReview/WbPageUnsavedChanges.test.js +33 -0
- package/features/editorReview/WbPageUnsavedChanges.test.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/gateway/WbReviewChangeMessageHandler.d.ts +8 -0
- package/features/gateway/WbReviewChangeMessageHandler.js +16 -0
- package/features/gateway/WbReviewChangeMessageHandler.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.d.ts +13 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js +35 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.d.ts +1 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js +47 -0
- package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js.map +1 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.d.ts +5 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.js +5 -0
- package/features/gateway/WbReviewContentAdapter/abstractions.js.map +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.d.ts +51 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.js +216 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.js.map +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.d.ts +1 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.js +647 -0
- package/features/gateway/WbReviewGateway/WbReviewGateway.test.js.map +1 -0
- package/features/gateway/WbReviewNotificationHandler.d.ts +8 -0
- package/features/gateway/WbReviewNotificationHandler.js +16 -0
- package/features/gateway/WbReviewNotificationHandler.js.map +1 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.d.ts +8 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js +14 -0
- package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js.map +1 -0
- package/features/gateway/WbReviewRowProvider/abstractions.d.ts +5 -0
- package/features/gateway/WbReviewRowProvider/abstractions.js +5 -0
- package/features/gateway/WbReviewRowProvider/abstractions.js.map +1 -0
- package/features/gateway/assertWbPageNamespace.d.ts +1 -0
- package/features/gateway/assertWbPageNamespace.js +7 -0
- package/features/gateway/assertWbPageNamespace.js.map +1 -0
- package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
- package/features/gateway/contentReviewsBindings.test.js +159 -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 +85 -0
- package/features/gateway/feature.test.js.map +1 -0
- package/features/gateway/graphql/WbOperationResponse.d.ts +3 -0
- package/features/gateway/graphql/WbOperationResponse.js +0 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js +18 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.d.ts +1 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js +26 -0
- package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js.map +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.d.ts +1 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js +18 -0
- package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js +18 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.js +34 -0
- package/features/gateway/graphql/listWebsiteBuilderPageReviews.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js +22 -0
- package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js.map +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.d.ts +1 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js +18 -0
- package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js.map +1 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js +22 -0
- package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.d.ts +1 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.js +26 -0
- package/features/gateway/graphql/requestWebsiteBuilderPageReview.js.map +1 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js +18 -0
- package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js +18 -0
- package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.d.ts +1 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js +26 -0
- package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +14 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js +27 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js +234 -0
- package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js +114 -0
- package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.d.ts +13 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.js +23 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.js.map +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.d.ts +1 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.js +134 -0
- package/features/trash/DeletePageUseCaseReviewDecorator.test.js.map +1 -0
- package/features/trash/feature.d.ts +1 -0
- package/features/trash/feature.js +15 -0
- package/features/trash/feature.js.map +1 -0
- package/features/trash/feature.test.d.ts +1 -0
- package/features/trash/feature.test.js +183 -0
- package/features/trash/feature.test.js.map +1 -0
- package/hooks/usePage.d.ts +5 -0
- package/hooks/usePage.js +15 -0
- package/hooks/usePage.js.map +1 -0
- package/hooks/usePage.test.d.ts +1 -0
- package/hooks/usePage.test.js +49 -0
- package/hooks/usePage.test.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +40 -0
- package/index.js.map +1 -0
- package/index.mount.test.d.ts +1 -0
- package/index.mount.test.js +50 -0
- package/index.mount.test.js.map +1 -0
- package/index.test.d.ts +1 -0
- package/index.test.js +523 -0
- package/index.test.js.map +1 -0
- package/package.json +54 -0
- package/pageListChangeStatus.wiring.test.d.ts +1 -0
- package/pageListChangeStatus.wiring.test.js +175 -0
- package/pageListChangeStatus.wiring.test.js.map +1 -0
- package/pageListGlue.wiring.test.d.ts +1 -0
- package/pageListGlue.wiring.test.js +220 -0
- package/pageListGlue.wiring.test.js.map +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.d.ts +8 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js +16 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js.map +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.d.ts +1 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js +19 -0
- package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js.map +1 -0
- package/presentation/page/PageGet/feature.d.ts +1 -0
- package/presentation/page/PageGet/feature.js +11 -0
- package/presentation/page/PageGet/feature.js.map +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.d.ts +8 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.js +16 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.js.map +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.d.ts +1 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js +19 -0
- package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js.map +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.d.ts +12 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js +24 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js.map +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.d.ts +1 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js +70 -0
- package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js.map +1 -0
- package/presentation/page/PageList/feature.d.ts +1 -0
- package/presentation/page/PageList/feature.js +13 -0
- package/presentation/page/PageList/feature.js.map +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.d.ts +15 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.js +36 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.js.map +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.d.ts +1 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js +119 -0
- package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js.map +1 -0
- package/presentation/page/RevisionList/feature.d.ts +1 -0
- package/presentation/page/RevisionList/feature.js +11 -0
- package/presentation/page/RevisionList/feature.js.map +1 -0
- package/presentation/page/wbReviewPageSelection.d.ts +1 -0
- package/presentation/page/wbReviewPageSelection.js +9 -0
- package/presentation/page/wbReviewPageSelection.js.map +1 -0
- package/publishAutosave.wiring.test.d.ts +1 -0
- package/publishAutosave.wiring.test.js +162 -0
- package/publishAutosave.wiring.test.js.map +1 -0
- package/routes.d.ts +9 -0
- package/routes.js +19 -0
- package/routes.js.map +1 -0
- package/testing/WbEditorHarness.d.ts +11 -0
- package/testing/WbEditorHarness.js +22 -0
- package/testing/WbEditorHarness.js.map +1 -0
- package/testing/createFakeSession.d.ts +9 -0
- package/testing/createFakeSession.js +29 -0
- package/testing/createFakeSession.js.map +1 -0
- package/testing/createFakeVm.d.ts +3 -0
- package/testing/createFakeVm.js +51 -0
- package/testing/createFakeVm.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/createPageEditor.d.ts +4 -0
- package/testing/createPageEditor.js +26 -0
- package/testing/createPageEditor.js.map +1 -0
- package/testing/registerPageContent.d.ts +20 -0
- package/testing/registerPageContent.js +28 -0
- package/testing/registerPageContent.js.map +1 -0
- package/types.d.ts +9 -0
- package/types.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/WbPageContentReloader.test.js","sources":["../../../src/features/editorReview/WbPageContentReloader.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 { ListCache } from \"@webiny/app-admin/features/listCache/index.js\";\nimport { Page } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport { Editor } from \"@webiny/app-website-builder/editorSdk/Editor.js\";\nimport { WbPageStatus } from \"@webiny/app-website-builder/constants.js\";\nimport type { GetPageUseCase } from \"@webiny/app-website-builder/features/pages/getPage/abstractions.js\";\nimport type { DocumentElement } from \"@webiny/website-builder-sdk\";\nimport type { ElementMap } from \"@webiny/website-builder-sdk\";\nimport type { IPageEditorDocument } from \"~/Components/PageEditor/pageEditorDocument.js\";\nimport { WbPageContentReloader } from \"./WbPageContentReloader.js\";\n\nconst PAGE_ID = \"page-1#0001\";\nconst SAVED = \"2026-10-17T10:00:00.000Z\";\nconst SAVED_LATER = \"2026-10-17T11:00:00.000Z\";\nconst MODIFIED = \"2026-10-17T10:30:00.000Z\";\nconst MODIFIED_LATER = \"2026-10-17T11:30:00.000Z\";\n\nconst ROOT: DocumentElement = {\n type: \"Webiny/Element\",\n id: \"root\",\n component: { name: \"Webiny/Box\" }\n};\nconst HERO: DocumentElement = {\n type: \"Webiny/Element\",\n id: \"hero\",\n component: { name: \"Webiny/Heading\" },\n parent: { id: \"root\", slot: \"children\" }\n};\nconst OLD_ELEMENTS: ElementMap = { root: ROOT };\nconst NEW_ELEMENTS: ElementMap = { root: ROOT, hero: HERO };\nconst NEW_PROPERTIES = { title: \"Home (rewritten)\" };\nconst NEW_BINDINGS = { hero: { inputs: { text: { static: \"Welcome\" } } } };\nconst NEW_METADATA = { seo: { title: \"Home SEO\" } };\nconst NEW_EXTENSIONS = { tracking: { enabled: true } };\n\ninterface FakeGetPage {\n execute: Mock;\n}\n\nfunction createPage(overrides: Partial<Parameters<typeof Page.create>[0]> = {}): Page {\n return Page.create({\n id: PAGE_ID,\n entryId: \"page-1\",\n status: WbPageStatus.Draft,\n properties: { title: \"Home\" },\n elements: OLD_ELEMENTS,\n savedOn: SAVED,\n modifiedOn: MODIFIED,\n ...overrides\n });\n}\n\nfunction createEditor(overrides: Partial<IPageEditorDocument> = {}): Editor<IPageEditorDocument> {\n const document: IPageEditorDocument = {\n id: PAGE_ID,\n status: WbPageStatus.Draft,\n version: 1,\n state: {},\n properties: { title: \"Home\" },\n extensions: {},\n metadata: {},\n bindings: {},\n elements: OLD_ELEMENTS,\n savedOn: SAVED,\n modifiedOn: MODIFIED,\n ...overrides\n };\n\n return new Editor<IPageEditorDocument>(document, { isReadOnly: true });\n}\n\ndescribe(\"WbPageContentReloader\", () => {\n let cache: ListCache<Page>;\n let editor: Editor<IPageEditorDocument>;\n let getPage: FakeGetPage;\n let reloader: WbPageContentReloader;\n let cachedWhenRead: Page | undefined;\n\n beforeEach(() => {\n cache = new ListCache<Page>(\"id\");\n cache.addItems([createPage(), createPage({ id: \"page-2#0001\", entryId: \"page-2\" })]);\n editor = createEditor();\n cachedWhenRead = undefined;\n getPage = {\n execute: vi.fn(async (_params: GetPageUseCase.Params) => {\n cachedWhenRead = cache.getItem(page => page.id === PAGE_ID);\n return createPage({\n savedOn: SAVED_LATER,\n elements: NEW_ELEMENTS,\n properties: NEW_PROPERTIES,\n bindings: NEW_BINDINGS,\n metadata: NEW_METADATA,\n extensions: NEW_EXTENSIONS\n });\n })\n };\n reloader = new WbPageContentReloader(\n editor,\n cache,\n getPage as unknown as GetPageUseCase.Interface\n );\n });\n\n it(\"evicts the page from the full page cache before it reads it (A96)\", async () => {\n await reloader.reload();\n\n expect(getPage.execute).toHaveBeenCalledTimes(1);\n expect(getPage.execute).toHaveBeenCalledWith({ id: PAGE_ID });\n expect(cachedWhenRead).toBeUndefined();\n });\n\n it(\"keeps the other cached pages\", async () => {\n await reloader.reload();\n\n const other = cache.getItem(page => page.id === \"page-2#0001\");\n expect(other).toEqual(createPage({ id: \"page-2#0001\", entryId: \"page-2\" }));\n });\n\n it(\"applies the reloaded content with updateDocument and returns true when savedOn changed\", async () => {\n const changed = await reloader.reload();\n\n expect(changed).toBe(true);\n const document = editor.getDocumentState().read();\n expect(document.elements).toEqual(NEW_ELEMENTS);\n expect(document.properties).toEqual(NEW_PROPERTIES);\n expect(document.bindings).toEqual(NEW_BINDINGS);\n expect(document.metadata).toEqual(NEW_METADATA);\n expect(document.extensions).toEqual(NEW_EXTENSIONS);\n expect(document.savedOn).toBe(SAVED_LATER);\n expect(document.modifiedOn).toBe(MODIFIED);\n expect(document.id).toBe(PAGE_ID);\n expect(document.status).toBe(WbPageStatus.Draft);\n });\n\n it(\"applies the document through updateDocument once and never writes the page back\", async () => {\n const updateDocument = vi.spyOn(editor, \"updateDocument\");\n\n await reloader.reload();\n\n expect(updateDocument).toHaveBeenCalledTimes(1);\n // The only collaborator that is called is the read use case: no page update or save\n // use case exists on the reloader, and the cache is left without the page (no write-back).\n expect(getPage.execute).toHaveBeenCalledTimes(1);\n expect(cache.getItem(page => page.id === PAGE_ID)).toBeUndefined();\n expect(cache.getItems()).toHaveLength(1);\n });\n\n it(\"returns true when only modifiedOn changed\", async () => {\n getPage.execute.mockImplementation(async () => {\n return createPage({ modifiedOn: MODIFIED_LATER, elements: NEW_ELEMENTS });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(true);\n expect(editor.getDocumentState().read().modifiedOn).toBe(MODIFIED_LATER);\n });\n\n it(\"returns false and leaves the editor alone when the timestamps are the same\", async () => {\n getPage.execute.mockImplementation(async () => {\n return createPage({ elements: NEW_ELEMENTS });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(editor.getDocumentState().read().elements).toEqual(OLD_ELEMENTS);\n });\n\n it(\"compares with the cached page when it is cached, not with the stale document\", async () => {\n cache.removeItems(page => page.id === PAGE_ID);\n cache.addItems([createPage({ savedOn: SAVED_LATER })]);\n getPage.execute.mockImplementation(async () => {\n return createPage({ savedOn: SAVED_LATER, elements: NEW_ELEMENTS });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n expect(editor.getDocumentState().read().elements).toEqual(OLD_ELEMENTS);\n });\n\n it(\"compares with the editor document when the page is not cached\", async () => {\n cache.clear();\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(true);\n });\n\n it(\"treats a missing modifiedOn of the document like the empty string Page.create uses\", async () => {\n cache.clear();\n editor = createEditor({ modifiedOn: null });\n reloader = new WbPageContentReloader(\n editor,\n cache,\n getPage as unknown as GetPageUseCase.Interface\n );\n getPage.execute.mockImplementation(async () => {\n return createPage({ modifiedOn: \"\" });\n });\n\n const changed = await reloader.reload();\n\n expect(changed).toBe(false);\n });\n\n it(\"lets a failed read reject and leaves the editor alone\", async () => {\n const failure = new Error(\"Network down\");\n getPage.execute.mockRejectedValue(failure);\n\n const error = await reloader.reload().catch(e => e);\n\n expect(error).toBe(failure);\n expect(editor.getDocumentState().read().elements).toEqual(OLD_ELEMENTS);\n });\n});\n"],"names":["PAGE_ID","SAVED","SAVED_LATER","MODIFIED","MODIFIED_LATER","ROOT","HERO","OLD_ELEMENTS","NEW_ELEMENTS","NEW_PROPERTIES","NEW_BINDINGS","NEW_METADATA","NEW_EXTENSIONS","createPage","overrides","Page","WbPageStatus","createEditor","document","Editor","describe","cache","editor","getPage","reloader","cachedWhenRead","beforeEach","ListCache","undefined","vi","_params","page","WbPageContentReloader","it","expect","other","changed","updateDocument","failure","Error","error","e"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EditorReviewSession } from "@webiny/app-workflows/review/editor/EditorReviewSession.js";
|
|
2
|
+
import { WbPageReview as Abstraction } from "./abstractions.js";
|
|
3
|
+
declare class WbPageReviewSessionImpl extends EditorReviewSession implements Abstraction.Interface {
|
|
4
|
+
}
|
|
5
|
+
export declare const WbPageReview: typeof WbPageReviewSessionImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/app-workflows/review/editor/abstractions.js").IEditorReviewSession>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EditorReviewSession } from "@webiny/app-workflows/review/editor/EditorReviewSession.js";
|
|
2
|
+
import { TargetReviewPresenter } from "@webiny/app-workflows/review/presentation/targetReview/abstractions.js";
|
|
3
|
+
import { WbPageReview } from "./abstractions.js";
|
|
4
|
+
class WbPageReviewSessionImpl extends EditorReviewSession {
|
|
5
|
+
}
|
|
6
|
+
const WbPageReview_WbPageReview = WbPageReview.createImplementation({
|
|
7
|
+
implementation: WbPageReviewSessionImpl,
|
|
8
|
+
dependencies: [
|
|
9
|
+
TargetReviewPresenter
|
|
10
|
+
]
|
|
11
|
+
});
|
|
12
|
+
export { WbPageReview_WbPageReview as WbPageReview };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=WbPageReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/WbPageReview.js","sources":["../../../src/features/editorReview/WbPageReview.ts"],"sourcesContent":["import { EditorReviewSession } from \"@webiny/app-workflows/review/editor/EditorReviewSession.js\";\nimport { TargetReviewPresenter } from \"@webiny/app-workflows/review/presentation/targetReview/abstractions.js\";\nimport { WbPageReview as Abstraction } from \"./abstractions.js\";\n\nclass WbPageReviewSessionImpl extends EditorReviewSession implements Abstraction.Interface {}\n\nexport const WbPageReview = Abstraction.createImplementation({\n implementation: WbPageReviewSessionImpl,\n dependencies: [TargetReviewPresenter]\n});\n"],"names":["WbPageReviewSessionImpl","EditorReviewSession","WbPageReview","Abstraction","TargetReviewPresenter"],"mappings":";;;AAIA,MAAMA,gCAAgCC;AAAsD;AAErF,MAAMC,4BAAeC,aAAAA,oBAAgC,CAAC;IACzD,gBAAgBH;IAChB,cAAc;QAACI;KAAsB;AACzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Editor } from "@webiny/app-website-builder/editorSdk/Editor.js";
|
|
2
|
+
import type { IReviewUnsavedChanges } from "@webiny/app-workflows/review/content/IReviewUnsavedChanges.js";
|
|
3
|
+
import type { IPageEditorDocument } from "../../Components/PageEditor/pageEditorDocument.js";
|
|
4
|
+
export declare class WbPageUnsavedChanges implements IReviewUnsavedChanges {
|
|
5
|
+
private readonly editor;
|
|
6
|
+
constructor(editor: Editor<IPageEditorDocument>);
|
|
7
|
+
getRequestBlockReason(): string | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class WbPageUnsavedChanges {
|
|
2
|
+
constructor(editor){
|
|
3
|
+
this.editor = editor;
|
|
4
|
+
}
|
|
5
|
+
getRequestBlockReason() {
|
|
6
|
+
if (true === this.editor.getEditorState().read().autoSaving) return "Your changes are still saving. Try again in a moment.";
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export { WbPageUnsavedChanges };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=WbPageUnsavedChanges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/WbPageUnsavedChanges.js","sources":["../../../src/features/editorReview/WbPageUnsavedChanges.ts"],"sourcesContent":["import type { Editor } from \"@webiny/app-website-builder/editorSdk/Editor.js\";\nimport type { IReviewUnsavedChanges } from \"@webiny/app-workflows/review/content/IReviewUnsavedChanges.js\";\nimport type { IPageEditorDocument } from \"~/Components/PageEditor/pageEditorDocument.js\";\n\n/*\n * Blocks Request review while the page editor auto-saves: the review would read the stored page,\n * which is not yet what the editor shows. The editor state is observable, so the review bar\n * follows it live and the button turns enabled when the auto-save finishes.\n */\nexport class WbPageUnsavedChanges implements IReviewUnsavedChanges {\n constructor(private readonly editor: Editor<IPageEditorDocument>) {}\n\n getRequestBlockReason(): string | null {\n if (this.editor.getEditorState().read().autoSaving === true) {\n return \"Your changes are still saving. Try again in a moment.\";\n }\n return null;\n }\n}\n"],"names":["WbPageUnsavedChanges","editor"],"mappings":"AASO,MAAMA;IACT,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,wBAAuC;QACnC,IAAI,AAAmD,SAAnD,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,UAAU,EAC9C,OAAO;QAEX,OAAO;IACX;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { WbPageUnsavedChanges } from "./WbPageUnsavedChanges.js";
|
|
3
|
+
const createUnsavedChanges = (state)=>{
|
|
4
|
+
const editor = {
|
|
5
|
+
getEditorState: ()=>({
|
|
6
|
+
read: ()=>state
|
|
7
|
+
})
|
|
8
|
+
};
|
|
9
|
+
return new WbPageUnsavedChanges(editor);
|
|
10
|
+
};
|
|
11
|
+
describe("WbPageUnsavedChanges", ()=>{
|
|
12
|
+
it("blocks Request review while the editor is auto-saving", ()=>{
|
|
13
|
+
expect(createUnsavedChanges({
|
|
14
|
+
autoSaving: true
|
|
15
|
+
}).getRequestBlockReason()).toBe("Your changes are still saving. Try again in a moment.");
|
|
16
|
+
});
|
|
17
|
+
it("does not block once auto-save finished or never ran", ()=>{
|
|
18
|
+
expect(createUnsavedChanges({
|
|
19
|
+
autoSaving: false
|
|
20
|
+
}).getRequestBlockReason()).toBeNull();
|
|
21
|
+
expect(createUnsavedChanges({}).getRequestBlockReason()).toBeNull();
|
|
22
|
+
});
|
|
23
|
+
it("follows the editor state as it changes", ()=>{
|
|
24
|
+
const state = {
|
|
25
|
+
autoSaving: true
|
|
26
|
+
};
|
|
27
|
+
const unsavedChanges = createUnsavedChanges(state);
|
|
28
|
+
state.autoSaving = false;
|
|
29
|
+
expect(unsavedChanges.getRequestBlockReason()).toBeNull();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=WbPageUnsavedChanges.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/WbPageUnsavedChanges.test.js","sources":["../../../src/features/editorReview/WbPageUnsavedChanges.test.ts"],"sourcesContent":["import { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport type { Editor } from \"@webiny/app-website-builder/editorSdk/Editor.js\";\nimport type { IPageEditorDocument } from \"~/Components/PageEditor/pageEditorDocument.js\";\nimport { WbPageUnsavedChanges } from \"./WbPageUnsavedChanges.js\";\n\ninterface FakeEditorState {\n autoSaving?: boolean;\n}\n\nconst createUnsavedChanges = (state: FakeEditorState) => {\n const editor = {\n getEditorState: () => ({ read: () => state })\n } as unknown as Editor<IPageEditorDocument>;\n return new WbPageUnsavedChanges(editor);\n};\n\ndescribe(\"WbPageUnsavedChanges\", () => {\n it(\"blocks Request review while the editor is auto-saving\", () => {\n expect(createUnsavedChanges({ autoSaving: true }).getRequestBlockReason()).toBe(\n \"Your changes are still saving. Try again in a moment.\"\n );\n });\n\n it(\"does not block once auto-save finished or never ran\", () => {\n expect(createUnsavedChanges({ autoSaving: false }).getRequestBlockReason()).toBeNull();\n expect(createUnsavedChanges({}).getRequestBlockReason()).toBeNull();\n });\n\n it(\"follows the editor state as it changes\", () => {\n const state: FakeEditorState = { autoSaving: true };\n const unsavedChanges = createUnsavedChanges(state);\n\n state.autoSaving = false;\n\n expect(unsavedChanges.getRequestBlockReason()).toBeNull();\n });\n});\n"],"names":["createUnsavedChanges","state","editor","WbPageUnsavedChanges","describe","it","expect","unsavedChanges"],"mappings":";;AAWA,MAAMA,uBAAuB,CAACC;IAC1B,MAAMC,SAAS;QACX,gBAAgB,IAAO;gBAAE,MAAM,IAAMD;YAAM;IAC/C;IACA,OAAO,IAAIE,qBAAqBD;AACpC;AAEAE,SAAS,wBAAwB;IAC7BC,GAAG,yDAAyD;QACxDC,OAAON,qBAAqB;YAAE,YAAY;QAAK,GAAG,qBAAqB,IAAI,IAAI,CAC3E;IAER;IAEAK,GAAG,uDAAuD;QACtDC,OAAON,qBAAqB;YAAE,YAAY;QAAM,GAAG,qBAAqB,IAAI,QAAQ;QACpFM,OAAON,qBAAqB,CAAC,GAAG,qBAAqB,IAAI,QAAQ;IACrE;IAEAK,GAAG,0CAA0C;QACzC,MAAMJ,QAAyB;YAAE,YAAY;QAAK;QAClD,MAAMM,iBAAiBP,qBAAqBC;QAE5CA,MAAM,UAAU,GAAG;QAEnBK,OAAOC,eAAe,qBAAqB,IAAI,QAAQ;IAC3D;AACJ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IEditorReviewSession } from "@webiny/app-workflows/review/editor/abstractions.js";
|
|
2
|
+
export declare const WbPageReview: import("@webiny/di").Abstraction<IEditorReviewSession>;
|
|
3
|
+
export declare namespace WbPageReview {
|
|
4
|
+
type Interface = IEditorReviewSession;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/abstractions.js","sources":["../../../src/features/editorReview/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IEditorReviewSession } from \"@webiny/app-workflows/review/editor/abstractions.js\";\n\nexport const WbPageReview = createAbstraction<IEditorReviewSession>(\n \"WebsiteBuilder/Workflows/PageReview\"\n);\n\nexport namespace WbPageReview {\n export type Interface = IEditorReviewSession;\n}\n"],"names":["WbPageReview","createAbstraction"],"mappings":";AAGO,MAAMA,eAAeC,kBACxB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/admin";
|
|
2
|
+
import { WbPageReview } from "./abstractions.js";
|
|
3
|
+
import { WbPageReview as external_WbPageReview_js_WbPageReview } from "./WbPageReview.js";
|
|
4
|
+
const WbPageReviewFeature = createFeature({
|
|
5
|
+
name: "WebsiteBuilder/Workflows/PageReviewSession",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(external_WbPageReview_js_WbPageReview).inSingletonScope();
|
|
8
|
+
},
|
|
9
|
+
resolve (container) {
|
|
10
|
+
return {
|
|
11
|
+
session: container.resolve(WbPageReview)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export { WbPageReviewFeature };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/editorReview/feature.js","sources":["../../../src/features/editorReview/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { WbPageReview as Abstraction } from \"./abstractions.js\";\nimport { WbPageReview } from \"./WbPageReview.js\";\n\nexport const WbPageReviewFeature = createFeature({\n name: \"WebsiteBuilder/Workflows/PageReviewSession\",\n register(container) {\n container.register(WbPageReview).inSingletonScope();\n },\n resolve(container) {\n return {\n session: container.resolve(Abstraction)\n };\n }\n});\n"],"names":["WbPageReviewFeature","createFeature","container","WbPageReview","Abstraction"],"mappings":";;;AAIO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,uCAAc,gBAAgB;IACrD;IACA,SAAQD,SAAS;QACb,OAAO;YACH,SAASA,UAAU,OAAO,CAACE;QAC/B;IACJ;AACJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebsocketEventHandler } from "@webiny/app-websockets/events/abstractions.js";
|
|
2
|
+
import { ReviewChangeMessageHandler } from "@webiny/app-workflows/review/mounting/ReviewChangeMessageHandler.js";
|
|
3
|
+
declare class WbReviewChangeMessageHandlerImpl extends ReviewChangeMessageHandler implements WebsocketEventHandler.Interface {
|
|
4
|
+
}
|
|
5
|
+
export declare const WbReviewChangeMessageHandler: typeof WbReviewChangeMessageHandlerImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher/abstractions.js").IEventHandler<import("@webiny/app-websockets/events/WebsocketEvent.js").WebsocketEvent>>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WebsocketEventHandler } from "@webiny/app-websockets/events/abstractions.js";
|
|
2
|
+
import { ReviewActivity } from "@webiny/app-workflows/review/activity/abstractions.js";
|
|
3
|
+
import { ReviewChangeMessageHandler } from "@webiny/app-workflows/review/mounting/ReviewChangeMessageHandler.js";
|
|
4
|
+
import { WbReviewContentAdapter } from "./WbReviewContentAdapter/abstractions.js";
|
|
5
|
+
class WbReviewChangeMessageHandlerImpl extends ReviewChangeMessageHandler {
|
|
6
|
+
}
|
|
7
|
+
const WbReviewChangeMessageHandler = WebsocketEventHandler.createImplementation({
|
|
8
|
+
implementation: WbReviewChangeMessageHandlerImpl,
|
|
9
|
+
dependencies: [
|
|
10
|
+
ReviewActivity,
|
|
11
|
+
WbReviewContentAdapter
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
export { WbReviewChangeMessageHandler };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=WbReviewChangeMessageHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/gateway/WbReviewChangeMessageHandler.js","sources":["../../../src/features/gateway/WbReviewChangeMessageHandler.ts"],"sourcesContent":["import { WebsocketEventHandler } from \"@webiny/app-websockets/events/abstractions.js\";\nimport { ReviewActivity } from \"@webiny/app-workflows/review/activity/abstractions.js\";\nimport { ReviewChangeMessageHandler } from \"@webiny/app-workflows/review/mounting/ReviewChangeMessageHandler.js\";\nimport { WbReviewContentAdapter } from \"./WbReviewContentAdapter/abstractions.js\";\n\n// A subclass of its own (see WbReviewNotificationHandlerImpl): the CMS binds its own.\nclass WbReviewChangeMessageHandlerImpl\n extends ReviewChangeMessageHandler\n implements WebsocketEventHandler.Interface {}\n\nexport const WbReviewChangeMessageHandler = WebsocketEventHandler.createImplementation({\n implementation: WbReviewChangeMessageHandlerImpl,\n dependencies: [ReviewActivity, WbReviewContentAdapter]\n});\n"],"names":["WbReviewChangeMessageHandlerImpl","ReviewChangeMessageHandler","WbReviewChangeMessageHandler","WebsocketEventHandler","ReviewActivity","WbReviewContentAdapter"],"mappings":";;;;AAMA,MAAMA,yCACMC;AACoC;AAEzC,MAAMC,+BAA+BC,sBAAsB,oBAAoB,CAAC;IACnF,gBAAgBH;IAChB,cAAc;QAACI;QAAgBC;KAAuB;AAC1D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { ReviewContentRef } from "@webiny/app-workflows/review/content/IReviewContentAdapter.js";
|
|
3
|
+
import { WbReviewContentAdapter as AdapterAbstraction } from "./abstractions.js";
|
|
4
|
+
declare class WbReviewContentAdapterImpl implements AdapterAbstraction.Interface {
|
|
5
|
+
canHandle(namespace: string): boolean;
|
|
6
|
+
getContentUrl(ref: ReviewContentRef): string;
|
|
7
|
+
getContentTypeLabel(): string | null;
|
|
8
|
+
renderContentTypeIcon(): React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare const WbReviewContentAdapter: typeof WbReviewContentAdapterImpl & {
|
|
11
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/app-workflows/review/content/IReviewContentAdapter.js").IReviewContentAdapter>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { Icon } from "@webiny/admin-ui";
|
|
3
|
+
import { Routes } from "@webiny/app-website-builder/routes.js";
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/web.svg";
|
|
5
|
+
import { WB_PAGE_APP } from "../../../constants.js";
|
|
6
|
+
import { WbReviewContentAdapter } from "./abstractions.js";
|
|
7
|
+
import { assertWbPageNamespace } from "../assertWbPageNamespace.js";
|
|
8
|
+
class WbReviewContentAdapterImpl {
|
|
9
|
+
canHandle(namespace) {
|
|
10
|
+
return namespace === WB_PAGE_APP;
|
|
11
|
+
}
|
|
12
|
+
getContentUrl(ref) {
|
|
13
|
+
assertWbPageNamespace(ref.namespace);
|
|
14
|
+
const encodedRevisionId = encodeURIComponent(ref.targetRevisionId);
|
|
15
|
+
return Routes.Pages.Editor.path.replace(":id", encodedRevisionId);
|
|
16
|
+
}
|
|
17
|
+
getContentTypeLabel() {
|
|
18
|
+
return "Pages";
|
|
19
|
+
}
|
|
20
|
+
renderContentTypeIcon() {
|
|
21
|
+
return /*#__PURE__*/ react.createElement(Icon, {
|
|
22
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
23
|
+
label: "Pages",
|
|
24
|
+
size: "sm",
|
|
25
|
+
color: "neutral-light"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const WbReviewContentAdapter_WbReviewContentAdapter = WbReviewContentAdapter.createImplementation({
|
|
30
|
+
implementation: WbReviewContentAdapterImpl,
|
|
31
|
+
dependencies: []
|
|
32
|
+
});
|
|
33
|
+
export { WbReviewContentAdapter_WbReviewContentAdapter as WbReviewContentAdapter };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=WbReviewContentAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js","sources":["../../../../src/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon } from \"@webiny/admin-ui\";\nimport { Routes } from \"@webiny/app-website-builder/routes.js\";\nimport type { ReviewContentRef } from \"@webiny/app-workflows/review/content/IReviewContentAdapter.js\";\nimport { ReactComponent as PagesIcon } from \"@webiny/icons/web.svg\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { WbReviewContentAdapter as AdapterAbstraction } from \"./abstractions.js\";\nimport { assertWbPageNamespace } from \"../assertWbPageNamespace.js\";\n\nclass WbReviewContentAdapterImpl implements AdapterAbstraction.Interface {\n canHandle(namespace: string): boolean {\n return namespace === WB_PAGE_APP;\n }\n\n getContentUrl(ref: ReviewContentRef): string {\n assertWbPageNamespace(ref.namespace);\n\n const encodedRevisionId = encodeURIComponent(ref.targetRevisionId);\n\n return Routes.Pages.Editor.path.replace(\":id\", encodedRevisionId);\n }\n\n getContentTypeLabel(): string | null {\n return \"Pages\";\n }\n\n renderContentTypeIcon(): React.ReactNode {\n return <Icon icon={<PagesIcon />} label=\"Pages\" size=\"sm\" color=\"neutral-light\" />;\n }\n}\n\nexport const WbReviewContentAdapter = AdapterAbstraction.createImplementation({\n implementation: WbReviewContentAdapterImpl,\n dependencies: []\n});\n"],"names":["WbReviewContentAdapterImpl","namespace","WB_PAGE_APP","ref","assertWbPageNamespace","encodedRevisionId","encodeURIComponent","Routes","Icon","PagesIcon","WbReviewContentAdapter","AdapterAbstraction"],"mappings":";;;;;;;AASA,MAAMA;IACF,UAAUC,SAAiB,EAAW;QAClC,OAAOA,cAAcC;IACzB;IAEA,cAAcC,GAAqB,EAAU;QACzCC,sBAAsBD,IAAI,SAAS;QAEnC,MAAME,oBAAoBC,mBAAmBH,IAAI,gBAAgB;QAEjE,OAAOI,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAOF;IACnD;IAEA,sBAAqC;QACjC,OAAO;IACX;IAEA,wBAAyC;QACrC,OAAO,WAAP,GAAO,oBAACG,MAAIA;YAAC,oBAAM,oBAACC,gBAASA;YAAK,OAAM;YAAQ,MAAK;YAAK,OAAM;;IACpE;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAuC,CAAC;IAC1E,gBAAgBX;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
3
|
+
import { Container } from "@webiny/di";
|
|
4
|
+
import { WbReviewContentAdapter } from "./abstractions.js";
|
|
5
|
+
import { WbReviewContentAdapter as external_WbReviewContentAdapter_js_WbReviewContentAdapter } from "./WbReviewContentAdapter.js";
|
|
6
|
+
describe("WbReviewContentAdapter", ()=>{
|
|
7
|
+
let adapter;
|
|
8
|
+
beforeEach(()=>{
|
|
9
|
+
const container = new Container();
|
|
10
|
+
container.register(external_WbReviewContentAdapter_js_WbReviewContentAdapter);
|
|
11
|
+
adapter = container.resolve(WbReviewContentAdapter);
|
|
12
|
+
});
|
|
13
|
+
it("handles the wb.page namespace only", ()=>{
|
|
14
|
+
expect(adapter.canHandle("wb.page")).toBe(true);
|
|
15
|
+
expect(adapter.canHandle("cms.article")).toBe(false);
|
|
16
|
+
expect(adapter.canHandle("wb")).toBe(false);
|
|
17
|
+
});
|
|
18
|
+
it("builds the page editor URL from the editor route with the revision id encoded", ()=>{
|
|
19
|
+
const url = adapter.getContentUrl({
|
|
20
|
+
namespace: "wb.page",
|
|
21
|
+
targetId: "page-1",
|
|
22
|
+
targetRevisionId: "page-1#0001",
|
|
23
|
+
contentTypeId: null
|
|
24
|
+
});
|
|
25
|
+
expect(url).toBe("/website-builder/pages/editor/page-1%230001");
|
|
26
|
+
});
|
|
27
|
+
it("throws for a namespace that is not wb.page", ()=>{
|
|
28
|
+
expect(()=>{
|
|
29
|
+
adapter.getContentUrl({
|
|
30
|
+
namespace: "cms.article",
|
|
31
|
+
targetId: "entry-1",
|
|
32
|
+
targetRevisionId: "entry-1#0001",
|
|
33
|
+
contentTypeId: "article"
|
|
34
|
+
});
|
|
35
|
+
}).toThrow('Invalid app name: "cms.article".');
|
|
36
|
+
});
|
|
37
|
+
it("has no content type label", ()=>{
|
|
38
|
+
expect(adapter.getContentTypeLabel("page")).toBe("Pages");
|
|
39
|
+
});
|
|
40
|
+
it("renders the pages icon", ()=>{
|
|
41
|
+
const node = adapter.renderContentTypeIcon("page");
|
|
42
|
+
if (!/*#__PURE__*/ react.isValidElement(node)) throw new Error("The pages icon is not an element.");
|
|
43
|
+
expect(node.props.label).toBe("Pages");
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=WbReviewContentAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js","sources":["../../../../src/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { beforeEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { WbReviewContentAdapter as AdapterAbstraction } from \"./abstractions.js\";\nimport { WbReviewContentAdapter } from \"./WbReviewContentAdapter.js\";\n\ninterface RenderedIconProps {\n label: string;\n}\n\ndescribe(\"WbReviewContentAdapter\", () => {\n let adapter: AdapterAbstraction.Interface;\n\n beforeEach(() => {\n const container = new Container();\n container.register(WbReviewContentAdapter);\n adapter = container.resolve(AdapterAbstraction);\n });\n\n it(\"handles the wb.page namespace only\", () => {\n expect(adapter.canHandle(\"wb.page\")).toBe(true);\n expect(adapter.canHandle(\"cms.article\")).toBe(false);\n expect(adapter.canHandle(\"wb\")).toBe(false);\n });\n\n it(\"builds the page editor URL from the editor route with the revision id encoded\", () => {\n const url = adapter.getContentUrl({\n namespace: \"wb.page\",\n targetId: \"page-1\",\n targetRevisionId: \"page-1#0001\",\n contentTypeId: null\n });\n\n expect(url).toBe(\"/website-builder/pages/editor/page-1%230001\");\n });\n\n it(\"throws for a namespace that is not wb.page\", () => {\n expect(() => {\n adapter.getContentUrl({\n namespace: \"cms.article\",\n targetId: \"entry-1\",\n targetRevisionId: \"entry-1#0001\",\n contentTypeId: \"article\"\n });\n }).toThrow('Invalid app name: \"cms.article\".');\n });\n\n it(\"has no content type label\", () => {\n expect(adapter.getContentTypeLabel(\"page\")).toBe(\"Pages\");\n });\n\n it(\"renders the pages icon\", () => {\n const node = adapter.renderContentTypeIcon(\"page\");\n\n if (!React.isValidElement<RenderedIconProps>(node)) {\n throw new Error(\"The pages icon is not an element.\");\n }\n expect(node.props.label).toBe(\"Pages\");\n });\n});\n"],"names":["describe","adapter","beforeEach","container","Container","WbReviewContentAdapter","AdapterAbstraction","it","expect","url","node","React","Error"],"mappings":";;;;;AAaAA,SAAS,0BAA0B;IAC/B,IAAIC;IAEJC,WAAW;QACP,MAAMC,YAAY,IAAIC;QACtBD,UAAU,QAAQ,CAACE;QACnBJ,UAAUE,UAAU,OAAO,CAACG;IAChC;IAEAC,GAAG,sCAAsC;QACrCC,OAAOP,QAAQ,SAAS,CAAC,YAAY,IAAI,CAAC;QAC1CO,OAAOP,QAAQ,SAAS,CAAC,gBAAgB,IAAI,CAAC;QAC9CO,OAAOP,QAAQ,SAAS,CAAC,OAAO,IAAI,CAAC;IACzC;IAEAM,GAAG,iFAAiF;QAChF,MAAME,MAAMR,QAAQ,aAAa,CAAC;YAC9B,WAAW;YACX,UAAU;YACV,kBAAkB;YAClB,eAAe;QACnB;QAEAO,OAAOC,KAAK,IAAI,CAAC;IACrB;IAEAF,GAAG,8CAA8C;QAC7CC,OAAO;YACHP,QAAQ,aAAa,CAAC;gBAClB,WAAW;gBACX,UAAU;gBACV,kBAAkB;gBAClB,eAAe;YACnB;QACJ,GAAG,OAAO,CAAC;IACf;IAEAM,GAAG,6BAA6B;QAC5BC,OAAOP,QAAQ,mBAAmB,CAAC,SAAS,IAAI,CAAC;IACrD;IAEAM,GAAG,0BAA0B;QACzB,MAAMG,OAAOT,QAAQ,qBAAqB,CAAC;QAE3C,IAAI,CAAC,WAAD,GAACU,MAAAA,cAAoB,CAAoBD,OACzC,MAAM,IAAIE,MAAM;QAEpBJ,OAAOE,KAAK,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;IAClC;AACJ"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IReviewContentAdapter } from "@webiny/app-workflows/review/content/IReviewContentAdapter.js";
|
|
2
|
+
export declare const WbReviewContentAdapter: import("@webiny/di").Abstraction<IReviewContentAdapter>;
|
|
3
|
+
export declare namespace WbReviewContentAdapter {
|
|
4
|
+
type Interface = IReviewContentAdapter;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features/gateway/WbReviewContentAdapter/abstractions.js","sources":["../../../../src/features/gateway/WbReviewContentAdapter/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IReviewContentAdapter } from \"@webiny/app-workflows/review/content/IReviewContentAdapter.js\";\n\nexport const WbReviewContentAdapter = createAbstraction<IReviewContentAdapter>(\n \"WebsiteBuilder/Workflows/ReviewContentAdapter\"\n);\n\nexport namespace WbReviewContentAdapter {\n export type Interface = IReviewContentAdapter;\n}\n"],"names":["WbReviewContentAdapter","createAbstraction"],"mappings":";AAGO,MAAMA,yBAAyBC,kBAClC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
|
|
2
|
+
import type { ReviewTarget } from "@webiny/app-workflows/review/domain/types.js";
|
|
3
|
+
import type { ReviewDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
4
|
+
import type { ReviewEnvelope } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
5
|
+
import type { ReviewListEnvelope } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
6
|
+
import type { ReviewWithFlagsDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
7
|
+
import type { StepCandidateDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
8
|
+
import type { WorkflowDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
9
|
+
import type { ApproveReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
10
|
+
import type { CancelForDeleteParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
11
|
+
import type { CancelReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
12
|
+
import type { ListReviewsParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
13
|
+
import type { ListReviewStepCandidatesParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
14
|
+
import type { ListStepCandidatesParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
15
|
+
import type { ReassignReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
16
|
+
import type { RejectReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
17
|
+
import type { RequestReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
18
|
+
import type { ReviewStepRef } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
19
|
+
import type { TakeOverReviewParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
20
|
+
import type { WorkflowAppKind } from "@webiny/app-workflows/domain/WorkflowAppKind.js";
|
|
21
|
+
import { ReviewAppGateway as GatewayAbstraction } from "@webiny/app-workflows/review/appGateway/abstractions.js";
|
|
22
|
+
import type { BlockingReviewDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
23
|
+
import type { ReviewStepRunInfoDto } from "@webiny/app-workflows/review/gateway/dto.js";
|
|
24
|
+
import type { GetStepRunParams } from "@webiny/app-workflows/review/appGateway/IReviewAppGateway.js";
|
|
25
|
+
declare class WbReviewGatewayImpl implements GatewayAbstraction.Interface {
|
|
26
|
+
private client;
|
|
27
|
+
readonly app: WorkflowAppKind;
|
|
28
|
+
constructor(client: MainGraphQLClient.Interface);
|
|
29
|
+
canHandle(namespace: string): boolean;
|
|
30
|
+
listWorkflows(): Promise<ReviewEnvelope<WorkflowDto[]>>;
|
|
31
|
+
getTargetReview(target: ReviewTarget): Promise<ReviewEnvelope<ReviewWithFlagsDto | null>>;
|
|
32
|
+
getReview(reviewId: string): Promise<ReviewEnvelope<ReviewWithFlagsDto>>;
|
|
33
|
+
listStepCandidates(params: ListStepCandidatesParams): Promise<ReviewEnvelope<StepCandidateDto[]>>;
|
|
34
|
+
listReviewStepCandidates(params: ListReviewStepCandidatesParams): Promise<ReviewEnvelope<StepCandidateDto[]>>;
|
|
35
|
+
listReviews(params: ListReviewsParams): Promise<ReviewListEnvelope>;
|
|
36
|
+
requestReview(params: RequestReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
37
|
+
startStep(params: ReviewStepRef): Promise<ReviewEnvelope<ReviewDto>>;
|
|
38
|
+
takeOverStep(params: TakeOverReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
39
|
+
reassignStep(params: ReassignReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
40
|
+
approveStep(params: ApproveReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
41
|
+
rejectStep(params: RejectReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
42
|
+
cancelReview(params: CancelReviewParams): Promise<ReviewEnvelope<ReviewDto>>;
|
|
43
|
+
restartStep(params: ReviewStepRef): Promise<ReviewEnvelope<ReviewDto>>;
|
|
44
|
+
getStepRun(params: GetStepRunParams): Promise<ReviewEnvelope<ReviewStepRunInfoDto | null>>;
|
|
45
|
+
listBlockingReviews(): Promise<ReviewEnvelope<BlockingReviewDto[]>>;
|
|
46
|
+
cancelForDelete(params: CancelForDeleteParams): Promise<ReviewEnvelope<ReviewDto[]>>;
|
|
47
|
+
}
|
|
48
|
+
export declare const WbReviewGateway: typeof WbReviewGatewayImpl & {
|
|
49
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/app-workflows/review/appGateway/IReviewAppGateway.js").IReviewAppGateway>;
|
|
50
|
+
};
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
|
|
2
|
+
import { WB_PAGE_APP } from "../../../constants.js";
|
|
3
|
+
import { ReviewAppGateway } from "@webiny/app-workflows/review/appGateway/abstractions.js";
|
|
4
|
+
import { assertWbPageNamespace } from "../assertWbPageNamespace.js";
|
|
5
|
+
import { APPROVE_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/approveWebsiteBuilderPageReviewStep.js";
|
|
6
|
+
import { CANCEL_WEBSITE_BUILDER_PAGE_REVIEW } from "../graphql/cancelWebsiteBuilderPageReview.js";
|
|
7
|
+
import { CANCEL_WEBSITE_BUILDER_PAGE_REVIEWS_FOR_DELETE } from "../graphql/cancelWebsiteBuilderPageReviewsForDelete.js";
|
|
8
|
+
import { GET_WEBSITE_BUILDER_PAGE_REVIEW } from "../graphql/getWebsiteBuilderPageReview.js";
|
|
9
|
+
import { GET_WEBSITE_BUILDER_PAGE_TARGET_REVIEW } from "../graphql/getWebsiteBuilderPageTargetReview.js";
|
|
10
|
+
import { LIST_WEBSITE_BUILDER_PAGE_REVIEW_STEP_CANDIDATES } from "../graphql/listWebsiteBuilderPageReviewStepCandidates.js";
|
|
11
|
+
import { LIST_WEBSITE_BUILDER_PAGE_REVIEWS } from "../graphql/listWebsiteBuilderPageReviews.js";
|
|
12
|
+
import { LIST_WEBSITE_BUILDER_PAGE_STEP_CANDIDATES } from "../graphql/listWebsiteBuilderPageStepCandidates.js";
|
|
13
|
+
import { LIST_WEBSITE_BUILDER_PAGE_WORKFLOWS } from "../graphql/listWebsiteBuilderPageWorkflows.js";
|
|
14
|
+
import { REASSIGN_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/reassignWebsiteBuilderPageReviewStep.js";
|
|
15
|
+
import { REJECT_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/rejectWebsiteBuilderPageReviewStep.js";
|
|
16
|
+
import { REQUEST_WEBSITE_BUILDER_PAGE_REVIEW } from "../graphql/requestWebsiteBuilderPageReview.js";
|
|
17
|
+
import { START_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/startWebsiteBuilderPageReviewStep.js";
|
|
18
|
+
import { TAKE_OVER_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/takeOverWebsiteBuilderPageReviewStep.js";
|
|
19
|
+
import { GET_WEBSITE_BUILDER_PAGE_REVIEW_STEP_RUN } from "../graphql/getWebsiteBuilderPageReviewStepRun.js";
|
|
20
|
+
import { RESTART_WEBSITE_BUILDER_PAGE_REVIEW_STEP } from "../graphql/restartWebsiteBuilderPageReviewStep.js";
|
|
21
|
+
class WbReviewGatewayImpl {
|
|
22
|
+
constructor(client){
|
|
23
|
+
this.client = client;
|
|
24
|
+
this.app = "wb";
|
|
25
|
+
}
|
|
26
|
+
canHandle(namespace) {
|
|
27
|
+
return namespace === WB_PAGE_APP;
|
|
28
|
+
}
|
|
29
|
+
async listWorkflows() {
|
|
30
|
+
const response = await this.client.execute({
|
|
31
|
+
query: LIST_WEBSITE_BUILDER_PAGE_WORKFLOWS
|
|
32
|
+
});
|
|
33
|
+
return response.websiteBuilder.listWebsiteBuilderPageWorkflows;
|
|
34
|
+
}
|
|
35
|
+
async getTargetReview(target) {
|
|
36
|
+
assertWbPageNamespace(target.namespace);
|
|
37
|
+
const response = await this.client.execute({
|
|
38
|
+
query: GET_WEBSITE_BUILDER_PAGE_TARGET_REVIEW,
|
|
39
|
+
variables: {
|
|
40
|
+
revisionId: target.targetRevisionId
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return response.websiteBuilder.getWebsiteBuilderPageTargetReview;
|
|
44
|
+
}
|
|
45
|
+
async getReview(reviewId) {
|
|
46
|
+
const response = await this.client.execute({
|
|
47
|
+
query: GET_WEBSITE_BUILDER_PAGE_REVIEW,
|
|
48
|
+
variables: {
|
|
49
|
+
id: reviewId
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return response.websiteBuilder.getWebsiteBuilderPageReview;
|
|
53
|
+
}
|
|
54
|
+
async listStepCandidates(params) {
|
|
55
|
+
assertWbPageNamespace(params.target.namespace);
|
|
56
|
+
const response = await this.client.execute({
|
|
57
|
+
query: LIST_WEBSITE_BUILDER_PAGE_STEP_CANDIDATES,
|
|
58
|
+
variables: {
|
|
59
|
+
workflowId: params.workflowId,
|
|
60
|
+
stepId: params.stepId,
|
|
61
|
+
revisionId: params.target.targetRevisionId
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return response.websiteBuilder.listWebsiteBuilderPageStepCandidates;
|
|
65
|
+
}
|
|
66
|
+
async listReviewStepCandidates(params) {
|
|
67
|
+
const response = await this.client.execute({
|
|
68
|
+
query: LIST_WEBSITE_BUILDER_PAGE_REVIEW_STEP_CANDIDATES,
|
|
69
|
+
variables: {
|
|
70
|
+
reviewId: params.reviewId,
|
|
71
|
+
stepId: params.stepId
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return response.websiteBuilder.listWebsiteBuilderPageReviewStepCandidates;
|
|
75
|
+
}
|
|
76
|
+
async listReviews(params) {
|
|
77
|
+
const response = await this.client.execute({
|
|
78
|
+
query: LIST_WEBSITE_BUILDER_PAGE_REVIEWS,
|
|
79
|
+
variables: {
|
|
80
|
+
list: params.list,
|
|
81
|
+
where: {
|
|
82
|
+
titleContains: params.where.titleContains,
|
|
83
|
+
reviewState: params.where.reviewState,
|
|
84
|
+
stepState: params.where.stepState
|
|
85
|
+
},
|
|
86
|
+
sort: params.sort,
|
|
87
|
+
limit: params.limit,
|
|
88
|
+
after: params.after
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return response.websiteBuilder.listWebsiteBuilderPageReviews;
|
|
92
|
+
}
|
|
93
|
+
async requestReview(params) {
|
|
94
|
+
assertWbPageNamespace(params.target.namespace);
|
|
95
|
+
const response = await this.client.execute({
|
|
96
|
+
query: REQUEST_WEBSITE_BUILDER_PAGE_REVIEW,
|
|
97
|
+
variables: {
|
|
98
|
+
revisionId: params.target.targetRevisionId,
|
|
99
|
+
title: params.title,
|
|
100
|
+
picks: params.picks
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return response.websiteBuilder.requestWebsiteBuilderPageReview;
|
|
104
|
+
}
|
|
105
|
+
async startStep(params) {
|
|
106
|
+
const response = await this.client.execute({
|
|
107
|
+
query: START_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
108
|
+
variables: {
|
|
109
|
+
reviewId: params.reviewId,
|
|
110
|
+
stepId: params.stepId
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return response.websiteBuilder.startWebsiteBuilderPageReviewStep;
|
|
114
|
+
}
|
|
115
|
+
async takeOverStep(params) {
|
|
116
|
+
const response = await this.client.execute({
|
|
117
|
+
query: TAKE_OVER_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
118
|
+
variables: {
|
|
119
|
+
reviewId: params.reviewId,
|
|
120
|
+
stepId: params.stepId,
|
|
121
|
+
notifyPreviousOwner: params.notifyPreviousOwner
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return response.websiteBuilder.takeOverWebsiteBuilderPageReviewStep;
|
|
125
|
+
}
|
|
126
|
+
async reassignStep(params) {
|
|
127
|
+
const response = await this.client.execute({
|
|
128
|
+
query: REASSIGN_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
129
|
+
variables: {
|
|
130
|
+
reviewId: params.reviewId,
|
|
131
|
+
stepId: params.stepId,
|
|
132
|
+
userId: params.userId
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return response.websiteBuilder.reassignWebsiteBuilderPageReviewStep;
|
|
136
|
+
}
|
|
137
|
+
async approveStep(params) {
|
|
138
|
+
const response = await this.client.execute({
|
|
139
|
+
query: APPROVE_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
140
|
+
variables: {
|
|
141
|
+
reviewId: params.reviewId,
|
|
142
|
+
stepId: params.stepId,
|
|
143
|
+
comment: params.comment
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return response.websiteBuilder.approveWebsiteBuilderPageReviewStep;
|
|
147
|
+
}
|
|
148
|
+
async rejectStep(params) {
|
|
149
|
+
const response = await this.client.execute({
|
|
150
|
+
query: REJECT_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
151
|
+
variables: {
|
|
152
|
+
reviewId: params.reviewId,
|
|
153
|
+
stepId: params.stepId,
|
|
154
|
+
comment: params.comment
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
return response.websiteBuilder.rejectWebsiteBuilderPageReviewStep;
|
|
158
|
+
}
|
|
159
|
+
async cancelReview(params) {
|
|
160
|
+
const response = await this.client.execute({
|
|
161
|
+
query: CANCEL_WEBSITE_BUILDER_PAGE_REVIEW,
|
|
162
|
+
variables: {
|
|
163
|
+
reviewId: params.reviewId
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
return response.websiteBuilder.cancelWebsiteBuilderPageReview;
|
|
167
|
+
}
|
|
168
|
+
async restartStep(params) {
|
|
169
|
+
const response = await this.client.execute({
|
|
170
|
+
query: RESTART_WEBSITE_BUILDER_PAGE_REVIEW_STEP,
|
|
171
|
+
variables: {
|
|
172
|
+
reviewId: params.reviewId,
|
|
173
|
+
stepId: params.stepId
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return response.websiteBuilder.restartWebsiteBuilderPageReviewStep;
|
|
177
|
+
}
|
|
178
|
+
async getStepRun(params) {
|
|
179
|
+
const response = await this.client.execute({
|
|
180
|
+
query: GET_WEBSITE_BUILDER_PAGE_REVIEW_STEP_RUN,
|
|
181
|
+
variables: {
|
|
182
|
+
reviewId: params.reviewId,
|
|
183
|
+
stepId: params.stepId,
|
|
184
|
+
taskId: params.taskId
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
return response.websiteBuilder.getWebsiteBuilderPageReviewStepRun;
|
|
188
|
+
}
|
|
189
|
+
async listBlockingReviews() {
|
|
190
|
+
return {
|
|
191
|
+
data: [],
|
|
192
|
+
error: null
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
async cancelForDelete(params) {
|
|
196
|
+
assertWbPageNamespace(params.namespace);
|
|
197
|
+
const response = await this.client.execute({
|
|
198
|
+
query: CANCEL_WEBSITE_BUILDER_PAGE_REVIEWS_FOR_DELETE,
|
|
199
|
+
variables: {
|
|
200
|
+
pageId: params.targetId,
|
|
201
|
+
revisionId: params.targetRevisionId,
|
|
202
|
+
action: params.action
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
return response.websiteBuilder.cancelWebsiteBuilderPageReviewsForDelete;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const WbReviewGateway = ReviewAppGateway.createImplementation({
|
|
209
|
+
implementation: WbReviewGatewayImpl,
|
|
210
|
+
dependencies: [
|
|
211
|
+
MainGraphQLClient
|
|
212
|
+
]
|
|
213
|
+
});
|
|
214
|
+
export { WbReviewGateway };
|
|
215
|
+
|
|
216
|
+
//# sourceMappingURL=WbReviewGateway.js.map
|