@webiny/app-website-builder-workflows 0.0.0-unstable.c27f4d8a31 → 0.0.0-unstable.d0f34a8194
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.js +20 -30
- package/Components/PageEditor/PageEditorAutoSave.js.map +1 -1
- 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.js +10 -7
- package/Components/PageEditor/PageEditorConfig.js.map +1 -1
- package/Components/PageEditor/PageEditorLayout.js +7 -50
- package/Components/PageEditor/PageEditorLayout.js.map +1 -1
- 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.js +7 -32
- package/Components/PageEditor/PageEditorTopBar.js.map +1 -1
- 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.js +5 -6
- package/Components/PagesList/PagesList.js.map +1 -1
- 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.js +0 -2
- package/Components/index.d.ts +0 -2
- package/Components/index.js +0 -4
- package/Routes/WebsiteBuilderWorkflowsMenu.d.ts +1 -1
- package/Routes/WebsiteBuilderWorkflowsMenu.js +19 -31
- package/Routes/WebsiteBuilderWorkflowsMenu.js.map +1 -1
- 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.js +0 -2
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- 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.js +12 -17
- package/hooks/usePage.js.map +1 -1
- 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 +1 -1
- package/index.js +34 -9
- package/index.js.map +1 -1
- 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 +31 -20
- 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/{WorkflowStatesGetPageGraphQLFieldSelection.d.ts → WbReviewGetPageFieldSelection.d.ts} +2 -2
- 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.js +7 -6
- package/presentation/page/PageGet/feature.js.map +1 -1
- 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.js +9 -8
- package/presentation/page/PageList/feature.js.map +1 -1
- 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 +3 -3
- package/routes.js +15 -16
- package/routes.js.map +1 -1
- 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 +4 -24
- package/types.js +0 -3
- package/Components/OptionItem/OpenInNewWindow.d.ts +0 -2
- package/Components/OptionItem/OpenInNewWindow.js +0 -41
- package/Components/OptionItem/OpenInNewWindow.js.map +0 -1
- package/Components/OptionItem/index.d.ts +0 -1
- package/Components/OptionItem/index.js +0 -3
- package/Components/OptionItem/index.js.map +0 -1
- package/Components/PageEditor/PageFormWorkflowState.d.ts +0 -2
- package/Components/PageEditor/PageFormWorkflowState.js +0 -19
- package/Components/PageEditor/PageFormWorkflowState.js.map +0 -1
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.d.ts +0 -2
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js +0 -33
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js.map +0 -1
- package/Components/PageEditor/PageFormWorkflowStateTooltip.d.ts +0 -2
- package/Components/PageEditor/PageFormWorkflowStateTooltip.js +0 -23
- package/Components/PageEditor/PageFormWorkflowStateTooltip.js.map +0 -1
- package/Components/PageEditor/ToggleEditorMode.d.ts +0 -3
- package/Components/PageEditor/ToggleEditorMode.js +0 -19
- package/Components/PageEditor/ToggleEditorMode.js.map +0 -1
- package/Components/PageWorkflows/PageWorkflowsEditorView.d.ts +0 -3
- package/Components/PageWorkflows/PageWorkflowsEditorView.js +0 -60
- package/Components/PageWorkflows/PageWorkflowsEditorView.js.map +0 -1
- package/Components/PageWorkflows/index.d.ts +0 -1
- package/Components/PageWorkflows/index.js +0 -3
- package/Components/PageWorkflows/index.js.map +0 -1
- package/Components/PagesList/PageListChangeStatus.d.ts +0 -2
- package/Components/PagesList/PageListChangeStatus.js +0 -31
- package/Components/PagesList/PageListChangeStatus.js.map +0 -1
- package/Components/PagesList/PagesListContentReviews.d.ts +0 -2
- package/Components/PagesList/PagesListContentReviews.js +0 -42
- package/Components/PagesList/PagesListContentReviews.js.map +0 -1
- package/Components/PagesList/index.js.map +0 -1
- package/Components/index.js.map +0 -1
- package/Routes/index.js.map +0 -1
- package/presentation/page/PageGet/WorkflowStatesGetPageGraphQLFieldSelection.js +0 -19
- package/presentation/page/PageGet/WorkflowStatesGetPageGraphQLFieldSelection.js.map +0 -1
- package/presentation/page/PageList/PageListPresenterDecorator.d.ts +0 -13
- package/presentation/page/PageList/PageListPresenterDecorator.js +0 -39
- package/presentation/page/PageList/PageListPresenterDecorator.js.map +0 -1
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.d.ts +0 -8
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js +0 -19
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app";
|
|
3
|
+
import { ReviewContentReviewsMenu } from "@webiny/app-workflows/review/mounting/components/ReviewContentReviewsMenu.js";
|
|
4
|
+
import { ReviewContentReviewsRoute } from "@webiny/app-workflows/review/mounting/components/ReviewContentReviewsRoute.js";
|
|
5
|
+
import { ReviewDashboardWidgets } from "@webiny/app-workflows/review/mounting/components/ReviewDashboardWidgets.js";
|
|
6
|
+
import { WB_PAGE_APP } from "../../constants.js";
|
|
7
|
+
import { WbReviewFeature } from "../../features/gateway/feature.js";
|
|
8
|
+
import { Routes } from "../../routes.js";
|
|
9
|
+
const NAMESPACES = [
|
|
10
|
+
WB_PAGE_APP
|
|
11
|
+
];
|
|
12
|
+
const CONTENT_TYPES = {
|
|
13
|
+
vm: {
|
|
14
|
+
loading: false,
|
|
15
|
+
namespaces: NAMESPACES,
|
|
16
|
+
options: []
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const WbContentReviews = ()=>{
|
|
20
|
+
const { rowProvider } = useFeature(WbReviewFeature);
|
|
21
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(ReviewContentReviewsRoute, {
|
|
22
|
+
route: Routes.Pages.WorkflowStateList,
|
|
23
|
+
app: "wb",
|
|
24
|
+
rowProvider: rowProvider,
|
|
25
|
+
showContentType: false,
|
|
26
|
+
contentTypes: CONTENT_TYPES,
|
|
27
|
+
breadcrumbName: "wb.content-reviews"
|
|
28
|
+
}), /*#__PURE__*/ react.createElement(ReviewContentReviewsMenu, {
|
|
29
|
+
name: "workflows.wb.contentReviews",
|
|
30
|
+
route: Routes.Pages.WorkflowStateList,
|
|
31
|
+
parent: "wb"
|
|
32
|
+
}), /*#__PURE__*/ react.createElement(ReviewDashboardWidgets, {
|
|
33
|
+
prefix: "wb",
|
|
34
|
+
namespaces: NAMESPACES,
|
|
35
|
+
rowProvider: rowProvider,
|
|
36
|
+
viewAllRoute: Routes.Pages.WorkflowStateList
|
|
37
|
+
}));
|
|
38
|
+
};
|
|
39
|
+
export { WbContentReviews };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=WbContentReviews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/ContentReviews/WbContentReviews.js","sources":["../../../src/Components/ContentReviews/WbContentReviews.tsx"],"sourcesContent":["import React from \"react\";\nimport { useFeature } from \"@webiny/app\";\nimport type { IReviewContentTypesSource } from \"@webiny/app-workflows/review/presentation/reviewList/IReviewContentTypesSource.js\";\nimport { ReviewContentReviewsMenu } from \"@webiny/app-workflows/review/mounting/components/ReviewContentReviewsMenu.js\";\nimport { ReviewContentReviewsRoute } from \"@webiny/app-workflows/review/mounting/components/ReviewContentReviewsRoute.js\";\nimport { ReviewDashboardWidgets } from \"@webiny/app-workflows/review/mounting/components/ReviewDashboardWidgets.js\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { WbReviewFeature } from \"~/features/gateway/feature.js\";\nimport { Routes } from \"~/routes.js\";\n\nconst NAMESPACES = [WB_PAGE_APP];\n\n// Pages need nothing loaded: one fixed namespace and no content types.\nconst CONTENT_TYPES: IReviewContentTypesSource = {\n vm: { loading: false, namespaces: NAMESPACES, options: [] }\n};\n\n/*\n * Mounts the shared Content Reviews route, menu item and dashboard widgets for the `wb` app.\n * Pages have no content type: no Content type column and no filter (D113).\n */\nexport const WbContentReviews = () => {\n const { rowProvider } = useFeature(WbReviewFeature);\n\n return (\n <>\n <ReviewContentReviewsRoute\n route={Routes.Pages.WorkflowStateList}\n app=\"wb\"\n rowProvider={rowProvider}\n showContentType={false}\n contentTypes={CONTENT_TYPES}\n breadcrumbName=\"wb.content-reviews\"\n />\n <ReviewContentReviewsMenu\n name=\"workflows.wb.contentReviews\"\n route={Routes.Pages.WorkflowStateList}\n parent=\"wb\"\n />\n <ReviewDashboardWidgets\n prefix=\"wb\"\n namespaces={NAMESPACES}\n rowProvider={rowProvider}\n viewAllRoute={Routes.Pages.WorkflowStateList}\n />\n </>\n );\n};\n"],"names":["NAMESPACES","WB_PAGE_APP","CONTENT_TYPES","WbContentReviews","rowProvider","useFeature","WbReviewFeature","ReviewContentReviewsRoute","Routes","ReviewContentReviewsMenu","ReviewDashboardWidgets"],"mappings":";;;;;;;;AAUA,MAAMA,aAAa;IAACC;CAAY;AAGhC,MAAMC,gBAA2C;IAC7C,IAAI;QAAE,SAAS;QAAO,YAAYF;QAAY,SAAS,EAAE;IAAC;AAC9D;AAMO,MAAMG,mBAAmB;IAC5B,MAAM,EAAEC,WAAW,EAAE,GAAGC,WAAWC;IAEnC,OAAO,WAAP,GACI,wDACI,oBAACC,2BAAyBA;QACtB,OAAOC,OAAO,KAAK,CAAC,iBAAiB;QACrC,KAAI;QACJ,aAAaJ;QACb,iBAAiB;QACjB,cAAcF;QACd,gBAAe;sBAEnB,oBAACO,0BAAwBA;QACrB,MAAK;QACL,OAAOD,OAAO,KAAK,CAAC,iBAAiB;QACrC,QAAO;sBAEX,oBAACE,wBAAsBA;QACnB,QAAO;QACP,YAAYV;QACZ,aAAaI;QACb,cAAcI,OAAO,KAAK,CAAC,iBAAiB;;AAI5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { cleanup, render, screen } from "@testing-library/react";
|
|
4
|
+
import { Container } from "@webiny/di";
|
|
5
|
+
import { DiContainerProvider } from "@webiny/app";
|
|
6
|
+
import { RouterWithConfig, useRouterConfig } from "@webiny/app/config/RouterConfig.js";
|
|
7
|
+
import { AdminConfigPlugin, AdminWithConfig, useAdminConfig } from "@webiny/app-admin/config/AdminConfig.js";
|
|
8
|
+
import { CompositionProvider } from "@webiny/react-composition";
|
|
9
|
+
import { WbReviewContentAdapter } from "../../features/gateway/WbReviewContentAdapter/abstractions.js";
|
|
10
|
+
import { WbReviewRowProvider } from "../../features/gateway/WbReviewRowProvider/abstractions.js";
|
|
11
|
+
import { WbContentReviews } from "./WbContentReviews.js";
|
|
12
|
+
vi.mock("@webiny/app-admin", async (importOriginal)=>{
|
|
13
|
+
const actual = await importOriginal();
|
|
14
|
+
return {
|
|
15
|
+
...actual,
|
|
16
|
+
useRouter: ()=>({
|
|
17
|
+
getLink: (route, params)=>{
|
|
18
|
+
if (params) return `${route.path}?tab=${params.tab}`;
|
|
19
|
+
return route.path;
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
const Probe = ()=>{
|
|
25
|
+
const adminConfig = useAdminConfig();
|
|
26
|
+
const routerConfig = useRouterConfig();
|
|
27
|
+
const menus = adminConfig.menus.map((menu)=>`${menu.name}:${menu.parent ?? ""}`);
|
|
28
|
+
const widgets = adminConfig.widgets.map((widget)=>`${widget.name}:${widget.column}`);
|
|
29
|
+
const routes = routerConfig.routes.map((item)=>item.route.name);
|
|
30
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
31
|
+
"data-testid": "probe",
|
|
32
|
+
"data-menus": menus.join(","),
|
|
33
|
+
"data-widgets": widgets.join(","),
|
|
34
|
+
"data-routes": routes.join(",")
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
describe("WbContentReviews under the real admin and router configs", ()=>{
|
|
38
|
+
afterEach(()=>{
|
|
39
|
+
cleanup();
|
|
40
|
+
});
|
|
41
|
+
it("registers the route, the menu item and the two widgets", async ()=>{
|
|
42
|
+
const container = new Container();
|
|
43
|
+
container.registerInstance(WbReviewContentAdapter, {});
|
|
44
|
+
container.registerInstance(WbReviewRowProvider, {
|
|
45
|
+
getBinding: ()=>null
|
|
46
|
+
});
|
|
47
|
+
render(/*#__PURE__*/ react.createElement(DiContainerProvider, {
|
|
48
|
+
container: container
|
|
49
|
+
}, /*#__PURE__*/ react.createElement(CompositionProvider, null, /*#__PURE__*/ react.createElement(WbContentReviews, null), /*#__PURE__*/ react.createElement(AdminWithConfig, null, AdminConfigPlugin, /*#__PURE__*/ react.createElement(RouterWithConfig, null, /*#__PURE__*/ react.createElement(Probe, null))))));
|
|
50
|
+
const probe = await screen.findByTestId("probe");
|
|
51
|
+
await vi.waitFor(()=>{
|
|
52
|
+
expect(probe.getAttribute("data-routes")).toBe("WebsiteBuilder/Pages/WorkflowStateList");
|
|
53
|
+
});
|
|
54
|
+
expect(probe.getAttribute("data-menus")).toBe("workflows.wb.contentReviews:wb");
|
|
55
|
+
expect(probe.getAttribute("data-widgets")).toBe("workflows.wb.review:right,workflows.wb.requested:right");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=WbContentReviews.smoke.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/ContentReviews/WbContentReviews.smoke.test.js","sources":["../../../src/Components/ContentReviews/WbContentReviews.smoke.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { afterEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { cleanup } from \"@testing-library/react\";\nimport { render } from \"@testing-library/react\";\nimport { screen } from \"@testing-library/react\";\nimport { Container } from \"@webiny/di\";\nimport { DiContainerProvider } from \"@webiny/app\";\nimport { RouterWithConfig } from \"@webiny/app/config/RouterConfig.js\";\nimport { useRouterConfig } from \"@webiny/app/config/RouterConfig.js\";\nimport { AdminConfigPlugin } from \"@webiny/app-admin/config/AdminConfig.js\";\nimport { AdminWithConfig } from \"@webiny/app-admin/config/AdminConfig.js\";\nimport { useAdminConfig } from \"@webiny/app-admin/config/AdminConfig.js\";\nimport { CompositionProvider } from \"@webiny/react-composition\";\nimport type { IReviewContentAdapter } from \"@webiny/app-workflows/review/content/IReviewContentAdapter.js\";\nimport type { IReviewRowProvider } from \"@webiny/app-workflows/review/presentation/reviewList/abstractions.js\";\nimport { WbReviewContentAdapter } from \"~/features/gateway/WbReviewContentAdapter/abstractions.js\";\nimport { WbReviewRowProvider } from \"~/features/gateway/WbReviewRowProvider/abstractions.js\";\nimport { WbContentReviews } from \"./WbContentReviews.js\";\n\ninterface RouteStub {\n path: string;\n}\n\ninterface RouteParamsStub {\n tab: string;\n}\n\n// The router is not under test (only `getLink` is read).\nvi.mock(\"@webiny/app-admin\", async importOriginal => {\n const actual = await importOriginal<typeof import(\"@webiny/app-admin\")>();\n return {\n ...actual,\n useRouter: () => {\n return {\n getLink: (route: RouteStub, params?: RouteParamsStub) => {\n if (params) {\n return `${route.path}?tab=${params.tab}`;\n }\n return route.path;\n }\n };\n }\n };\n});\n\nconst Probe = () => {\n const adminConfig = useAdminConfig();\n const routerConfig = useRouterConfig();\n\n const menus = adminConfig.menus.map(menu => `${menu.name}:${menu.parent ?? \"\"}`);\n const widgets = adminConfig.widgets.map(widget => `${widget.name}:${widget.column}`);\n const routes = routerConfig.routes.map(item => item.route.name);\n\n return (\n <div\n data-testid=\"probe\"\n data-menus={menus.join(\",\")}\n data-widgets={widgets.join(\",\")}\n data-routes={routes.join(\",\")}\n />\n );\n};\n\ndescribe(\"WbContentReviews under the real admin and router configs\", () => {\n afterEach(() => {\n cleanup();\n });\n\n it(\"registers the route, the menu item and the two widgets\", async () => {\n const container = new Container();\n container.registerInstance(WbReviewContentAdapter, {} as unknown as IReviewContentAdapter);\n container.registerInstance(WbReviewRowProvider, {\n getBinding: () => null\n } as IReviewRowProvider);\n\n render(\n <DiContainerProvider container={container}>\n <CompositionProvider>\n {/* Mirrors App.tsx: the config declarations and the admin plugin come before the router, which renders its children only after its first config flush. */}\n <WbContentReviews />\n <AdminWithConfig>\n {AdminConfigPlugin}\n <RouterWithConfig>\n <Probe />\n </RouterWithConfig>\n </AdminWithConfig>\n </CompositionProvider>\n </DiContainerProvider>\n );\n\n const probe = await screen.findByTestId(\"probe\");\n await vi.waitFor(() => {\n expect(probe.getAttribute(\"data-routes\")).toBe(\n \"WebsiteBuilder/Pages/WorkflowStateList\"\n );\n });\n expect(probe.getAttribute(\"data-menus\")).toBe(\"workflows.wb.contentReviews:wb\");\n expect(probe.getAttribute(\"data-widgets\")).toBe(\n \"workflows.wb.review:right,workflows.wb.requested:right\"\n );\n });\n});\n"],"names":["vi","importOriginal","actual","route","params","Probe","adminConfig","useAdminConfig","routerConfig","useRouterConfig","menus","menu","widgets","widget","routes","item","describe","afterEach","cleanup","it","container","Container","WbReviewContentAdapter","WbReviewRowProvider","render","DiContainerProvider","CompositionProvider","WbContentReviews","AdminWithConfig","AdminConfigPlugin","RouterWithConfig","probe","screen","expect"],"mappings":";;;;;;;;;;;AAgCAA,GAAG,IAAI,CAAC,qBAAqB,OAAMC;IAC/B,MAAMC,SAAS,MAAMD;IACrB,OAAO;QACH,GAAGC,MAAM;QACT,WAAW,IACA;gBACH,SAAS,CAACC,OAAkBC;oBACxB,IAAIA,QACA,OAAO,GAAGD,MAAM,IAAI,CAAC,KAAK,EAAEC,OAAO,GAAG,EAAE;oBAE5C,OAAOD,MAAM,IAAI;gBACrB;YACJ;IAER;AACJ;AAEA,MAAME,QAAQ;IACV,MAAMC,cAAcC;IACpB,MAAMC,eAAeC;IAErB,MAAMC,QAAQJ,YAAY,KAAK,CAAC,GAAG,CAACK,CAAAA,OAAQ,GAAGA,KAAK,IAAI,CAAC,CAAC,EAAEA,KAAK,MAAM,IAAI,IAAI;IAC/E,MAAMC,UAAUN,YAAY,OAAO,CAAC,GAAG,CAACO,CAAAA,SAAU,GAAGA,OAAO,IAAI,CAAC,CAAC,EAAEA,OAAO,MAAM,EAAE;IACnF,MAAMC,SAASN,aAAa,MAAM,CAAC,GAAG,CAACO,CAAAA,OAAQA,KAAK,KAAK,CAAC,IAAI;IAE9D,OAAO,WAAP,GACI,oBAAC;QACG,eAAY;QACZ,cAAYL,MAAM,IAAI,CAAC;QACvB,gBAAcE,QAAQ,IAAI,CAAC;QAC3B,eAAaE,OAAO,IAAI,CAAC;;AAGrC;AAEAE,SAAS,4DAA4D;IACjEC,UAAU;QACNC;IACJ;IAEAC,GAAG,0DAA0D;QACzD,MAAMC,YAAY,IAAIC;QACtBD,UAAU,gBAAgB,CAACE,wBAAwB,CAAC;QACpDF,UAAU,gBAAgB,CAACG,qBAAqB;YAC5C,YAAY,IAAM;QACtB;QAEAC,OAAO,WAADA,GACF,oBAACC,qBAAmBA;YAAC,WAAWL;yBAC5B,oBAACM,qBAAmBA,MAAAA,WAAAA,GAEhB,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,iBAAeA,MACXC,mBAAiBA,WAAAA,GAClB,oBAACC,kBAAgBA,MAAAA,WAAAA,GACb,oBAACzB,OAAKA;QAO1B,MAAM0B,QAAQ,MAAMC,OAAO,YAAY,CAAC;QACxC,MAAMhC,GAAG,OAAO,CAAC;YACbiC,OAAOF,MAAM,YAAY,CAAC,gBAAgB,IAAI,CAC1C;QAER;QACAE,OAAOF,MAAM,YAAY,CAAC,eAAe,IAAI,CAAC;QAC9CE,OAAOF,MAAM,YAAY,CAAC,iBAAiB,IAAI,CAC3C;IAER;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { cleanup, render, screen } from "@testing-library/react";
|
|
4
|
+
import { Container } from "@webiny/di";
|
|
5
|
+
import { DiContainerProvider } from "@webiny/app";
|
|
6
|
+
import { WbReviewContentAdapter } from "../../features/gateway/WbReviewContentAdapter/abstractions.js";
|
|
7
|
+
import { WbReviewRowProvider } from "../../features/gateway/WbReviewRowProvider/abstractions.js";
|
|
8
|
+
import { Routes } from "../../routes.js";
|
|
9
|
+
import { WbContentReviews } from "./WbContentReviews.js";
|
|
10
|
+
vi.mock("@webiny/app-workflows/review/mounting/components/ReviewContentReviewsRoute.js", async ()=>{
|
|
11
|
+
const React = await import("react");
|
|
12
|
+
return {
|
|
13
|
+
ReviewContentReviewsRoute: (props)=>React.createElement("div", {
|
|
14
|
+
"data-testid": "route",
|
|
15
|
+
"data-route": props.route.name,
|
|
16
|
+
"data-app": props.app,
|
|
17
|
+
"data-namespaces": props.contentTypes.vm.namespaces.join(","),
|
|
18
|
+
"data-show-content-type": String(props.showContentType),
|
|
19
|
+
"data-loading": String(props.contentTypes.vm.loading),
|
|
20
|
+
"data-options": JSON.stringify(props.contentTypes.vm.options),
|
|
21
|
+
"data-breadcrumb": props.breadcrumbName
|
|
22
|
+
})
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
vi.mock("@webiny/app-workflows/review/mounting/components/ReviewContentReviewsMenu.js", async ()=>{
|
|
26
|
+
const React = await import("react");
|
|
27
|
+
return {
|
|
28
|
+
ReviewContentReviewsMenu: (props)=>React.createElement("div", {
|
|
29
|
+
"data-testid": "menu",
|
|
30
|
+
"data-name": props.name,
|
|
31
|
+
"data-route": props.route.name,
|
|
32
|
+
"data-parent": props.parent ?? ""
|
|
33
|
+
})
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
vi.mock("@webiny/app-workflows/review/mounting/components/ReviewDashboardWidgets.js", async ()=>{
|
|
37
|
+
const React = await import("react");
|
|
38
|
+
return {
|
|
39
|
+
ReviewDashboardWidgets: (props)=>React.createElement("div", {
|
|
40
|
+
"data-testid": "widgets",
|
|
41
|
+
"data-prefix": props.prefix,
|
|
42
|
+
"data-namespaces": props.namespaces.join(","),
|
|
43
|
+
"data-route": props.viewAllRoute.name
|
|
44
|
+
})
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
describe("WbContentReviews", ()=>{
|
|
48
|
+
afterEach(()=>{
|
|
49
|
+
cleanup();
|
|
50
|
+
});
|
|
51
|
+
it("mounts the shared route, menu and widgets for the wb app and no content type", ()=>{
|
|
52
|
+
const container = new Container();
|
|
53
|
+
const rowProvider = {
|
|
54
|
+
getBinding: ()=>null
|
|
55
|
+
};
|
|
56
|
+
container.registerInstance(WbReviewContentAdapter, {});
|
|
57
|
+
container.registerInstance(WbReviewRowProvider, rowProvider);
|
|
58
|
+
render(/*#__PURE__*/ react.createElement(DiContainerProvider, {
|
|
59
|
+
container: container
|
|
60
|
+
}, /*#__PURE__*/ react.createElement(WbContentReviews, null)));
|
|
61
|
+
const route = screen.getByTestId("route");
|
|
62
|
+
expect(route.getAttribute("data-route")).toBe(Routes.Pages.WorkflowStateList.name);
|
|
63
|
+
expect(route.getAttribute("data-app")).toBe("wb");
|
|
64
|
+
expect(route.getAttribute("data-namespaces")).toBe("wb.page");
|
|
65
|
+
expect(route.getAttribute("data-show-content-type")).toBe("false");
|
|
66
|
+
expect(route.getAttribute("data-loading")).toBe("false");
|
|
67
|
+
expect(route.getAttribute("data-options")).toBe("[]");
|
|
68
|
+
expect(route.getAttribute("data-breadcrumb")).toBe("wb.content-reviews");
|
|
69
|
+
const menu = screen.getByTestId("menu");
|
|
70
|
+
expect(menu.getAttribute("data-name")).toBe("workflows.wb.contentReviews");
|
|
71
|
+
expect(menu.getAttribute("data-parent")).toBe("wb");
|
|
72
|
+
expect(menu.getAttribute("data-route")).toBe(Routes.Pages.WorkflowStateList.name);
|
|
73
|
+
const widgets = screen.getByTestId("widgets");
|
|
74
|
+
expect(widgets.getAttribute("data-prefix")).toBe("wb");
|
|
75
|
+
expect(widgets.getAttribute("data-namespaces")).toBe("wb.page");
|
|
76
|
+
expect(widgets.getAttribute("data-route")).toBe(Routes.Pages.WorkflowStateList.name);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=WbContentReviews.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/ContentReviews/WbContentReviews.test.js","sources":["../../../src/Components/ContentReviews/WbContentReviews.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { afterEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { cleanup } from \"@testing-library/react\";\nimport { render } from \"@testing-library/react\";\nimport { screen } from \"@testing-library/react\";\nimport { Container } from \"@webiny/di\";\nimport { DiContainerProvider } from \"@webiny/app\";\nimport type { IReviewContentAdapter } from \"@webiny/app-workflows/review/content/IReviewContentAdapter.js\";\nimport type { IReviewContentTypesSource } from \"@webiny/app-workflows/review/presentation/reviewList/IReviewContentTypesSource.js\";\nimport type { IReviewRowProvider } from \"@webiny/app-workflows/review/presentation/reviewList/abstractions.js\";\nimport { WbReviewContentAdapter } from \"~/features/gateway/WbReviewContentAdapter/abstractions.js\";\nimport { WbReviewRowProvider } from \"~/features/gateway/WbReviewRowProvider/abstractions.js\";\nimport { Routes } from \"~/routes.js\";\nimport { WbContentReviews } from \"./WbContentReviews.js\";\n\ninterface RouteStubProps {\n route: { name: string };\n app: string;\n showContentType: boolean;\n contentTypes: IReviewContentTypesSource;\n breadcrumbName: string;\n}\n\ninterface MenuStubProps {\n name: string;\n route: { name: string };\n parent?: string;\n}\n\ninterface WidgetsStubProps {\n prefix: string;\n namespaces: string[];\n viewAllRoute: { name: string };\n}\n\nvi.mock(\n \"@webiny/app-workflows/review/mounting/components/ReviewContentReviewsRoute.js\",\n async () => {\n const React = await import(\"react\");\n return {\n ReviewContentReviewsRoute: (props: RouteStubProps) => {\n return React.createElement(\"div\", {\n \"data-testid\": \"route\",\n \"data-route\": props.route.name,\n \"data-app\": props.app,\n \"data-namespaces\": props.contentTypes.vm.namespaces.join(\",\"),\n \"data-show-content-type\": String(props.showContentType),\n \"data-loading\": String(props.contentTypes.vm.loading),\n \"data-options\": JSON.stringify(props.contentTypes.vm.options),\n \"data-breadcrumb\": props.breadcrumbName\n });\n }\n };\n }\n);\n\nvi.mock(\n \"@webiny/app-workflows/review/mounting/components/ReviewContentReviewsMenu.js\",\n async () => {\n const React = await import(\"react\");\n return {\n ReviewContentReviewsMenu: (props: MenuStubProps) => {\n return React.createElement(\"div\", {\n \"data-testid\": \"menu\",\n \"data-name\": props.name,\n \"data-route\": props.route.name,\n \"data-parent\": props.parent ?? \"\"\n });\n }\n };\n }\n);\n\nvi.mock(\"@webiny/app-workflows/review/mounting/components/ReviewDashboardWidgets.js\", async () => {\n const React = await import(\"react\");\n return {\n ReviewDashboardWidgets: (props: WidgetsStubProps) => {\n return React.createElement(\"div\", {\n \"data-testid\": \"widgets\",\n \"data-prefix\": props.prefix,\n \"data-namespaces\": props.namespaces.join(\",\"),\n \"data-route\": props.viewAllRoute.name\n });\n }\n };\n});\n\ndescribe(\"WbContentReviews\", () => {\n afterEach(() => {\n cleanup();\n });\n\n it(\"mounts the shared route, menu and widgets for the wb app and no content type\", () => {\n const container = new Container();\n const rowProvider: IReviewRowProvider = { getBinding: () => null };\n container.registerInstance(WbReviewContentAdapter, {} as unknown as IReviewContentAdapter);\n container.registerInstance(WbReviewRowProvider, rowProvider);\n\n render(\n <DiContainerProvider container={container}>\n <WbContentReviews />\n </DiContainerProvider>\n );\n\n const route = screen.getByTestId(\"route\");\n expect(route.getAttribute(\"data-route\")).toBe(Routes.Pages.WorkflowStateList.name);\n expect(route.getAttribute(\"data-app\")).toBe(\"wb\");\n expect(route.getAttribute(\"data-namespaces\")).toBe(\"wb.page\");\n expect(route.getAttribute(\"data-show-content-type\")).toBe(\"false\");\n expect(route.getAttribute(\"data-loading\")).toBe(\"false\");\n expect(route.getAttribute(\"data-options\")).toBe(\"[]\");\n expect(route.getAttribute(\"data-breadcrumb\")).toBe(\"wb.content-reviews\");\n\n const menu = screen.getByTestId(\"menu\");\n expect(menu.getAttribute(\"data-name\")).toBe(\"workflows.wb.contentReviews\");\n expect(menu.getAttribute(\"data-parent\")).toBe(\"wb\");\n expect(menu.getAttribute(\"data-route\")).toBe(Routes.Pages.WorkflowStateList.name);\n\n const widgets = screen.getByTestId(\"widgets\");\n expect(widgets.getAttribute(\"data-prefix\")).toBe(\"wb\");\n expect(widgets.getAttribute(\"data-namespaces\")).toBe(\"wb.page\");\n expect(widgets.getAttribute(\"data-route\")).toBe(Routes.Pages.WorkflowStateList.name);\n });\n});\n"],"names":["vi","React","props","String","JSON","describe","afterEach","cleanup","it","container","Container","rowProvider","WbReviewContentAdapter","WbReviewRowProvider","render","DiContainerProvider","WbContentReviews","route","screen","expect","Routes","menu","widgets"],"mappings":";;;;;;;;;AAuCAA,GAAG,IAAI,CACH,iFACA;IACI,MAAMC,QAAQ,MAAM,MAAM,CAAC;IAC3B,OAAO;QACH,2BAA2B,CAACC,QACjBD,MAAM,aAAa,CAAC,OAAO;gBAC9B,eAAe;gBACf,cAAcC,MAAM,KAAK,CAAC,IAAI;gBAC9B,YAAYA,MAAM,GAAG;gBACrB,mBAAmBA,MAAM,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBACzD,0BAA0BC,OAAOD,MAAM,eAAe;gBACtD,gBAAgBC,OAAOD,MAAM,YAAY,CAAC,EAAE,CAAC,OAAO;gBACpD,gBAAgBE,KAAK,SAAS,CAACF,MAAM,YAAY,CAAC,EAAE,CAAC,OAAO;gBAC5D,mBAAmBA,MAAM,cAAc;YAC3C;IAER;AACJ;AAGJF,GAAG,IAAI,CACH,gFACA;IACI,MAAMC,QAAQ,MAAM,MAAM,CAAC;IAC3B,OAAO;QACH,0BAA0B,CAACC,QAChBD,MAAM,aAAa,CAAC,OAAO;gBAC9B,eAAe;gBACf,aAAaC,MAAM,IAAI;gBACvB,cAAcA,MAAM,KAAK,CAAC,IAAI;gBAC9B,eAAeA,MAAM,MAAM,IAAI;YACnC;IAER;AACJ;AAGJF,GAAG,IAAI,CAAC,8EAA8E;IAClF,MAAMC,QAAQ,MAAM,MAAM,CAAC;IAC3B,OAAO;QACH,wBAAwB,CAACC,QACdD,MAAM,aAAa,CAAC,OAAO;gBAC9B,eAAe;gBACf,eAAeC,MAAM,MAAM;gBAC3B,mBAAmBA,MAAM,UAAU,CAAC,IAAI,CAAC;gBACzC,cAAcA,MAAM,YAAY,CAAC,IAAI;YACzC;IAER;AACJ;AAEAG,SAAS,oBAAoB;IACzBC,UAAU;QACNC;IACJ;IAEAC,GAAG,gFAAgF;QAC/E,MAAMC,YAAY,IAAIC;QACtB,MAAMC,cAAkC;YAAE,YAAY,IAAM;QAAK;QACjEF,UAAU,gBAAgB,CAACG,wBAAwB,CAAC;QACpDH,UAAU,gBAAgB,CAACI,qBAAqBF;QAEhDG,OAAO,WAADA,GACF,oBAACC,qBAAmBA;YAAC,WAAWN;yBAC5B,oBAACO,kBAAgBA;QAIzB,MAAMC,QAAQC,OAAO,WAAW,CAAC;QACjCC,OAAOF,MAAM,YAAY,CAAC,eAAe,IAAI,CAACG,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI;QACjFD,OAAOF,MAAM,YAAY,CAAC,aAAa,IAAI,CAAC;QAC5CE,OAAOF,MAAM,YAAY,CAAC,oBAAoB,IAAI,CAAC;QACnDE,OAAOF,MAAM,YAAY,CAAC,2BAA2B,IAAI,CAAC;QAC1DE,OAAOF,MAAM,YAAY,CAAC,iBAAiB,IAAI,CAAC;QAChDE,OAAOF,MAAM,YAAY,CAAC,iBAAiB,IAAI,CAAC;QAChDE,OAAOF,MAAM,YAAY,CAAC,oBAAoB,IAAI,CAAC;QAEnD,MAAMI,OAAOH,OAAO,WAAW,CAAC;QAChCC,OAAOE,KAAK,YAAY,CAAC,cAAc,IAAI,CAAC;QAC5CF,OAAOE,KAAK,YAAY,CAAC,gBAAgB,IAAI,CAAC;QAC9CF,OAAOE,KAAK,YAAY,CAAC,eAAe,IAAI,CAACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI;QAEhF,MAAME,UAAUJ,OAAO,WAAW,CAAC;QACnCC,OAAOG,QAAQ,YAAY,CAAC,gBAAgB,IAAI,CAAC;QACjDH,OAAOG,QAAQ,YAAY,CAAC,oBAAoB,IAAI,CAAC;QACrDH,OAAOG,QAAQ,YAAY,CAAC,eAAe,IAAI,CAACF,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI;IACvF;AACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { PageListConfig } from "@webiny/app-website-builder";
|
|
3
|
+
import { ReactComponent } from "@webiny/icons/flowchart.svg";
|
|
4
|
+
import { ReviewContentReviewsSidebarItem } from "@webiny/app-workflows/review/mounting/components/ReviewContentReviewsSidebarItem.js";
|
|
5
|
+
import { Routes } from "../../routes.js";
|
|
6
|
+
const { Browser: Browser } = PageListConfig;
|
|
7
|
+
const ContentReviewsSidebarLink = ()=>/*#__PURE__*/ react.createElement(ReviewContentReviewsSidebarItem, {
|
|
8
|
+
className: "w-full",
|
|
9
|
+
route: Routes.Pages.WorkflowStateList,
|
|
10
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null)
|
|
11
|
+
});
|
|
12
|
+
const WbContentReviewsSidebarItem = ()=>/*#__PURE__*/ react.createElement(Browser.Sidebar.Footer, {
|
|
13
|
+
name: "contentReviews",
|
|
14
|
+
element: /*#__PURE__*/ react.createElement(ContentReviewsSidebarLink, null)
|
|
15
|
+
});
|
|
16
|
+
export { WbContentReviewsSidebarItem };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=WbContentReviewsSidebarItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/ContentReviews/WbContentReviewsSidebarItem.js","sources":["../../../src/Components/ContentReviews/WbContentReviewsSidebarItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageListConfig } from \"@webiny/app-website-builder\";\nimport { ReactComponent as ContentReviewsIcon } from \"@webiny/icons/flowchart.svg\";\nimport { ReviewContentReviewsSidebarItem } from \"@webiny/app-workflows/review/mounting/components/ReviewContentReviewsSidebarItem.js\";\nimport { Routes } from \"~/routes.js\";\n\nconst { Browser } = PageListConfig;\n\nconst ContentReviewsSidebarLink = () => {\n return (\n <ReviewContentReviewsSidebarItem\n className={\"w-full\"}\n route={Routes.Pages.WorkflowStateList}\n icon={<ContentReviewsIcon />}\n />\n );\n};\n\n// The \"Content Reviews\" item of the page list sidebar; it opens the route (replaces the overlay).\nexport const WbContentReviewsSidebarItem = () => {\n return (\n <Browser.Sidebar.Footer name={\"contentReviews\"} element={<ContentReviewsSidebarLink />} />\n );\n};\n"],"names":["Browser","PageListConfig","ContentReviewsSidebarLink","ReviewContentReviewsSidebarItem","Routes","ContentReviewsIcon","WbContentReviewsSidebarItem"],"mappings":";;;;;AAMA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,4BAA4B,IACvB,WAAP,GACI,oBAACC,iCAA+BA;QAC5B,WAAW;QACX,OAAOC,OAAO,KAAK,CAAC,iBAAiB;QACrC,oBAAM,oBAACC,gBAAkBA;;AAM9B,MAAMC,8BAA8B,IAChC,WAAP,GACI,oBAACN,QAAQ,OAAO,CAAC,MAAM;QAAC,MAAM;QAAkB,uBAAS,oBAACE,2BAAyBA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
|
4
|
+
import { Routes } from "../../routes.js";
|
|
5
|
+
import { WbContentReviewsSidebarItem } from "./WbContentReviewsSidebarItem.js";
|
|
6
|
+
const goToRoute = vi.hoisted(()=>vi.fn());
|
|
7
|
+
vi.mock("@webiny/icons/work_outline.svg", ()=>({
|
|
8
|
+
ReactComponent: ()=>null
|
|
9
|
+
}));
|
|
10
|
+
vi.mock("@webiny/app-admin", async (importOriginal)=>{
|
|
11
|
+
const actual = await importOriginal();
|
|
12
|
+
return {
|
|
13
|
+
...actual,
|
|
14
|
+
useRouter: ()=>({
|
|
15
|
+
goToRoute: goToRoute
|
|
16
|
+
})
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
vi.mock("@webiny/app-website-builder", async ()=>{
|
|
20
|
+
const React = await import("react");
|
|
21
|
+
const Footer = (props)=>React.createElement("div", {
|
|
22
|
+
"data-testid": "footer",
|
|
23
|
+
"data-name": props.name
|
|
24
|
+
}, props.element);
|
|
25
|
+
return {
|
|
26
|
+
PageListConfig: {
|
|
27
|
+
Browser: {
|
|
28
|
+
Sidebar: {
|
|
29
|
+
Footer
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
vi.mock("@webiny/admin-ui", async (importOriginal)=>{
|
|
36
|
+
const actual = await importOriginal();
|
|
37
|
+
const React = await import("react");
|
|
38
|
+
const Item = (props)=>React.createElement("button", {
|
|
39
|
+
onClick: props.onClick
|
|
40
|
+
}, props.text);
|
|
41
|
+
const ItemIcon = ()=>React.createElement("span");
|
|
42
|
+
return {
|
|
43
|
+
...actual,
|
|
44
|
+
Sidebar: {
|
|
45
|
+
...actual.Sidebar,
|
|
46
|
+
Item: Object.assign(Item, {
|
|
47
|
+
Icon: ItemIcon
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
describe("WbContentReviewsSidebarItem", ()=>{
|
|
53
|
+
afterEach(()=>{
|
|
54
|
+
cleanup();
|
|
55
|
+
});
|
|
56
|
+
it("adds a Content Reviews item to the page list footer that opens the route", ()=>{
|
|
57
|
+
render(/*#__PURE__*/ react.createElement(WbContentReviewsSidebarItem, null));
|
|
58
|
+
expect(screen.getByTestId("footer").getAttribute("data-name")).toBe("contentReviews");
|
|
59
|
+
fireEvent.click(screen.getByRole("button", {
|
|
60
|
+
name: "Content Reviews"
|
|
61
|
+
}));
|
|
62
|
+
expect(goToRoute).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(goToRoute).toHaveBeenCalledWith(Routes.Pages.WorkflowStateList);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=WbContentReviewsSidebarItem.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/ContentReviews/WbContentReviewsSidebarItem.test.js","sources":["../../../src/Components/ContentReviews/WbContentReviewsSidebarItem.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { afterEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { cleanup } from \"@testing-library/react\";\nimport { fireEvent } from \"@testing-library/react\";\nimport { render } from \"@testing-library/react\";\nimport { screen } from \"@testing-library/react\";\nimport { Routes } from \"~/routes.js\";\nimport { WbContentReviewsSidebarItem } from \"./WbContentReviewsSidebarItem.js\";\n\ninterface FooterStubProps {\n name: string;\n element: React.ReactElement;\n}\n\ninterface SidebarItemStubProps {\n text: string;\n onClick: () => void;\n}\n\nconst goToRoute = vi.hoisted(() => vi.fn());\n\nvi.mock(\"@webiny/icons/work_outline.svg\", () => {\n return { ReactComponent: () => null };\n});\n\nvi.mock(\"@webiny/app-admin\", async importOriginal => {\n const actual = await importOriginal<typeof import(\"@webiny/app-admin\")>();\n return {\n ...actual,\n useRouter: () => {\n return { goToRoute };\n }\n };\n});\n\nvi.mock(\"@webiny/app-website-builder\", async () => {\n const React = await import(\"react\");\n const Footer = (props: FooterStubProps) => {\n return React.createElement(\n \"div\",\n { \"data-testid\": \"footer\", \"data-name\": props.name },\n props.element\n );\n };\n return { PageListConfig: { Browser: { Sidebar: { Footer } } } };\n});\n\nvi.mock(\"@webiny/admin-ui\", async importOriginal => {\n const actual = await importOriginal<typeof import(\"@webiny/admin-ui\")>();\n const React = await import(\"react\");\n const Item = (props: SidebarItemStubProps) => {\n return React.createElement(\"button\", { onClick: props.onClick }, props.text);\n };\n const ItemIcon = () => React.createElement(\"span\");\n return {\n ...actual,\n Sidebar: { ...actual.Sidebar, Item: Object.assign(Item, { Icon: ItemIcon }) }\n };\n});\n\ndescribe(\"WbContentReviewsSidebarItem\", () => {\n afterEach(() => {\n cleanup();\n });\n\n it(\"adds a Content Reviews item to the page list footer that opens the route\", () => {\n render(<WbContentReviewsSidebarItem />);\n\n expect(screen.getByTestId(\"footer\").getAttribute(\"data-name\")).toBe(\"contentReviews\");\n fireEvent.click(screen.getByRole(\"button\", { name: \"Content Reviews\" }));\n\n expect(goToRoute).toHaveBeenCalledTimes(1);\n expect(goToRoute).toHaveBeenCalledWith(Routes.Pages.WorkflowStateList);\n });\n});\n"],"names":["goToRoute","vi","importOriginal","actual","React","Footer","props","Item","ItemIcon","Object","describe","afterEach","cleanup","it","render","WbContentReviewsSidebarItem","expect","screen","fireEvent","Routes"],"mappings":";;;;;AAuBA,MAAMA,YAAYC,GAAG,OAAO,CAAC,IAAMA,GAAG,EAAE;AAExCA,GAAG,IAAI,CAAC,kCAAkC,IAC/B;QAAE,gBAAgB,IAAM;IAAK;AAGxCA,GAAG,IAAI,CAAC,qBAAqB,OAAMC;IAC/B,MAAMC,SAAS,MAAMD;IACrB,OAAO;QACH,GAAGC,MAAM;QACT,WAAW,IACA;gBAAEH,WAAAA;YAAU;IAE3B;AACJ;AAEAC,GAAG,IAAI,CAAC,+BAA+B;IACnC,MAAMG,QAAQ,MAAM,MAAM,CAAC;IAC3B,MAAMC,SAAS,CAACC,QACLF,MAAM,aAAa,CACtB,OACA;YAAE,eAAe;YAAU,aAAaE,MAAM,IAAI;QAAC,GACnDA,MAAM,OAAO;IAGrB,OAAO;QAAE,gBAAgB;YAAE,SAAS;gBAAE,SAAS;oBAAED;gBAAO;YAAE;QAAE;IAAE;AAClE;AAEAJ,GAAG,IAAI,CAAC,oBAAoB,OAAMC;IAC9B,MAAMC,SAAS,MAAMD;IACrB,MAAME,QAAQ,MAAM,MAAM,CAAC;IAC3B,MAAMG,OAAO,CAACD,QACHF,MAAM,aAAa,CAAC,UAAU;YAAE,SAASE,MAAM,OAAO;QAAC,GAAGA,MAAM,IAAI;IAE/E,MAAME,WAAW,IAAMJ,MAAM,aAAa,CAAC;IAC3C,OAAO;QACH,GAAGD,MAAM;QACT,SAAS;YAAE,GAAGA,OAAO,OAAO;YAAE,MAAMM,OAAO,MAAM,CAACF,MAAM;gBAAE,MAAMC;YAAS;QAAG;IAChF;AACJ;AAEAE,SAAS,+BAA+B;IACpCC,UAAU;QACNC;IACJ;IAEAC,GAAG,4EAA4E;QAC3EC,OAAO,WAADA,GAAC,oBAACC,6BAA2BA;QAEnCC,OAAOC,OAAO,WAAW,CAAC,UAAU,YAAY,CAAC,cAAc,IAAI,CAAC;QACpEC,UAAU,KAAK,CAACD,OAAO,SAAS,CAAC,UAAU;YAAE,MAAM;QAAkB;QAErED,OAAOhB,WAAW,qBAAqB,CAAC;QACxCgB,OAAOhB,WAAW,oBAAoB,CAACmB,OAAO,KAAK,CAAC,iBAAiB;IACzE;AACJ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { TargetReviewPresenter } from "@webiny/app-workflows/review/presentation/targetReview/abstractions.js";
|
|
3
|
+
export interface DisabledPublishButtonProps {
|
|
4
|
+
presenter: TargetReviewPresenter.Interface;
|
|
5
|
+
}
|
|
6
|
+
export declare const DisabledPublishButton: ({ presenter }: DisabledPublishButtonProps) => React.JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { Button } from "@webiny/admin-ui";
|
|
3
|
+
import { ReviewTooltip } from "@webiny/app-workflows/review/presentation/targetReview/components/ReviewTooltip.js";
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/publish.svg";
|
|
5
|
+
const DisabledPublishButton = ({ presenter })=>/*#__PURE__*/ react.createElement(ReviewTooltip, {
|
|
6
|
+
presenter: presenter
|
|
7
|
+
}, (describedBy)=>/*#__PURE__*/ react.createElement(Button, {
|
|
8
|
+
type: "button",
|
|
9
|
+
variant: "primary",
|
|
10
|
+
text: "Publish",
|
|
11
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
12
|
+
"aria-disabled": "true",
|
|
13
|
+
"aria-describedby": describedBy
|
|
14
|
+
}));
|
|
15
|
+
export { DisabledPublishButton };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=DisabledPublishButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/PageEditor/DisabledPublishButton.js","sources":["../../../src/Components/PageEditor/DisabledPublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@webiny/admin-ui\";\nimport type { TargetReviewPresenter } from \"@webiny/app-workflows/review/presentation/targetReview/abstractions.js\";\nimport { ReviewTooltip } from \"@webiny/app-workflows/review/presentation/targetReview/components/ReviewTooltip.js\";\nimport { ReactComponent as PublishIcon } from \"@webiny/icons/publish.svg\";\n\nexport interface DisabledPublishButtonProps {\n presenter: TargetReviewPresenter.Interface;\n}\n\n/*\n * A disabled Publish that stays focusable (QBZ-36): `aria-disabled` instead of the `disabled`\n * attribute and no click handler. The shared `ReviewTooltip` gives it the reason on hover and\n * focus and through `aria-describedby`.\n */\nexport const DisabledPublishButton = ({ presenter }: DisabledPublishButtonProps) => {\n return (\n <ReviewTooltip presenter={presenter}>\n {describedBy => (\n <Button\n type={\"button\"}\n variant={\"primary\"}\n text={\"Publish\"}\n icon={<PublishIcon />}\n aria-disabled={\"true\"}\n aria-describedby={describedBy}\n />\n )}\n </ReviewTooltip>\n );\n};\n"],"names":["DisabledPublishButton","presenter","ReviewTooltip","describedBy","Button","PublishIcon"],"mappings":";;;;AAeO,MAAMA,wBAAwB,CAAC,EAAEC,SAAS,EAA8B,GACpE,WAAP,GACI,oBAACC,eAAaA;QAAC,WAAWD;OACrBE,CAAAA,cAAAA,WAAAA,GACG,oBAACC,QAAMA;YACH,MAAM;YACN,SAAS;YACT,MAAM;YACN,oBAAM,oBAACC,gBAAWA;YAClB,iBAAe;YACf,oBAAkBF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { cleanup, fireEvent, render, screen } from "@testing-library/react";
|
|
3
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
import { createFakeSession } from "../../testing/createFakeSession.js";
|
|
5
|
+
import { DisabledPublishButton } from "./DisabledPublishButton.js";
|
|
6
|
+
vi.mock("@webiny/icons/publish.svg", ()=>({
|
|
7
|
+
ReactComponent: ()=>null
|
|
8
|
+
}));
|
|
9
|
+
vi.mock("@webiny/app-workflows/review/presentation/targetReview/components/ReviewTooltip.js", async ()=>{
|
|
10
|
+
const React = await import("react");
|
|
11
|
+
const ReviewTooltip = (props)=>{
|
|
12
|
+
const reason = props.presenter.vm.publishDisabledReason ?? "";
|
|
13
|
+
return React.createElement("span", {
|
|
14
|
+
"data-testid": "review-tooltip",
|
|
15
|
+
"data-reason": reason
|
|
16
|
+
}, props.children("tooltip-description"));
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
ReviewTooltip
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
describe("DisabledPublishButton", ()=>{
|
|
23
|
+
afterEach(()=>{
|
|
24
|
+
cleanup();
|
|
25
|
+
});
|
|
26
|
+
it("stays focusable: aria-disabled, never the disabled attribute", ()=>{
|
|
27
|
+
const { presenter } = createFakeSession("none");
|
|
28
|
+
render(/*#__PURE__*/ react.createElement(DisabledPublishButton, {
|
|
29
|
+
presenter: presenter
|
|
30
|
+
}));
|
|
31
|
+
const button = screen.getByRole("button", {
|
|
32
|
+
name: "Publish"
|
|
33
|
+
});
|
|
34
|
+
expect(button.getAttribute("aria-disabled")).toBe("true");
|
|
35
|
+
expect(button.hasAttribute("disabled")).toBe(false);
|
|
36
|
+
expect(button.getAttribute("aria-describedby")).toBe("tooltip-description");
|
|
37
|
+
});
|
|
38
|
+
it("is wrapped in the shared review tooltip of the same presenter", ()=>{
|
|
39
|
+
const { presenter } = createFakeSession("none");
|
|
40
|
+
render(/*#__PURE__*/ react.createElement(DisabledPublishButton, {
|
|
41
|
+
presenter: presenter
|
|
42
|
+
}));
|
|
43
|
+
const button = screen.getByRole("button", {
|
|
44
|
+
name: "Publish"
|
|
45
|
+
});
|
|
46
|
+
const tooltip = button.closest("[data-testid='review-tooltip']");
|
|
47
|
+
const reason = presenter.vm.publishDisabledReason;
|
|
48
|
+
expect(reason).not.toBeNull();
|
|
49
|
+
expect(tooltip?.getAttribute("data-reason")).toBe(reason);
|
|
50
|
+
});
|
|
51
|
+
it("does nothing when activated, not even a form submit", ()=>{
|
|
52
|
+
const { presenter } = createFakeSession("none");
|
|
53
|
+
const onSubmit = vi.fn();
|
|
54
|
+
render(/*#__PURE__*/ react.createElement("form", {
|
|
55
|
+
onSubmit: onSubmit
|
|
56
|
+
}, /*#__PURE__*/ react.createElement(DisabledPublishButton, {
|
|
57
|
+
presenter: presenter
|
|
58
|
+
})));
|
|
59
|
+
const button = screen.getByRole("button", {
|
|
60
|
+
name: "Publish"
|
|
61
|
+
});
|
|
62
|
+
fireEvent.click(button);
|
|
63
|
+
expect(onSubmit).not.toHaveBeenCalled();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=DisabledPublishButton.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/PageEditor/DisabledPublishButton.test.js","sources":["../../../src/Components/PageEditor/DisabledPublishButton.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { cleanup } from \"@testing-library/react\";\nimport { fireEvent } from \"@testing-library/react\";\nimport { render } from \"@testing-library/react\";\nimport { screen } from \"@testing-library/react\";\nimport { afterEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { createFakeSession } from \"~/testing/createFakeSession.js\";\nimport { DisabledPublishButton } from \"./DisabledPublishButton.js\";\n\nvi.mock(\"@webiny/icons/publish.svg\", () => {\n return { ReactComponent: () => null };\n});\n\nvi.mock(\n \"@webiny/app-workflows/review/presentation/targetReview/components/ReviewTooltip.js\",\n async () => {\n const React = await import(\"react\");\n interface StubProps {\n presenter: { vm: { publishDisabledReason: string | null } };\n children: (describedBy: string) => React.ReactNode;\n }\n const ReviewTooltip = (props: StubProps) => {\n const reason = props.presenter.vm.publishDisabledReason ?? \"\";\n return React.createElement(\n \"span\",\n { \"data-testid\": \"review-tooltip\", \"data-reason\": reason },\n props.children(\"tooltip-description\")\n );\n };\n return { ReviewTooltip };\n }\n);\n\ndescribe(\"DisabledPublishButton\", () => {\n afterEach(() => {\n cleanup();\n });\n\n it(\"stays focusable: aria-disabled, never the disabled attribute\", () => {\n const { presenter } = createFakeSession(\"none\");\n\n render(<DisabledPublishButton presenter={presenter} />);\n\n const button = screen.getByRole(\"button\", { name: \"Publish\" });\n expect(button.getAttribute(\"aria-disabled\")).toBe(\"true\");\n expect(button.hasAttribute(\"disabled\")).toBe(false);\n expect(button.getAttribute(\"aria-describedby\")).toBe(\"tooltip-description\");\n });\n\n it(\"is wrapped in the shared review tooltip of the same presenter\", () => {\n const { presenter } = createFakeSession(\"none\");\n\n render(<DisabledPublishButton presenter={presenter} />);\n\n const button = screen.getByRole(\"button\", { name: \"Publish\" });\n const tooltip = button.closest(\"[data-testid='review-tooltip']\");\n const reason = presenter.vm.publishDisabledReason;\n expect(reason).not.toBeNull();\n expect(tooltip?.getAttribute(\"data-reason\")).toBe(reason);\n });\n\n it(\"does nothing when activated, not even a form submit\", () => {\n const { presenter } = createFakeSession(\"none\");\n const onSubmit = vi.fn();\n\n render(\n <form onSubmit={onSubmit}>\n <DisabledPublishButton presenter={presenter} />\n </form>\n );\n const button = screen.getByRole(\"button\", { name: \"Publish\" });\n fireEvent.click(button);\n\n expect(onSubmit).not.toHaveBeenCalled();\n });\n});\n"],"names":["vi","React","ReviewTooltip","props","reason","describe","afterEach","cleanup","it","presenter","createFakeSession","render","DisabledPublishButton","button","screen","expect","tooltip","onSubmit","fireEvent"],"mappings":";;;;;AAaAA,GAAG,IAAI,CAAC,6BAA6B,IAC1B;QAAE,gBAAgB,IAAM;IAAK;AAGxCA,GAAG,IAAI,CACH,sFACA;IACI,MAAMC,QAAQ,MAAM,MAAM,CAAC;IAK3B,MAAMC,gBAAgB,CAACC;QACnB,MAAMC,SAASD,MAAM,SAAS,CAAC,EAAE,CAAC,qBAAqB,IAAI;QAC3D,OAAOF,MAAM,aAAa,CACtB,QACA;YAAE,eAAe;YAAkB,eAAeG;QAAO,GACzDD,MAAM,QAAQ,CAAC;IAEvB;IACA,OAAO;QAAED;IAAc;AAC3B;AAGJG,SAAS,yBAAyB;IAC9BC,UAAU;QACNC;IACJ;IAEAC,GAAG,gEAAgE;QAC/D,MAAM,EAAEC,SAAS,EAAE,GAAGC,kBAAkB;QAExCC,OAAO,WAADA,GAAC,oBAACC,uBAAqBA;YAAC,WAAWH;;QAEzC,MAAMI,SAASC,OAAO,SAAS,CAAC,UAAU;YAAE,MAAM;QAAU;QAC5DC,OAAOF,OAAO,YAAY,CAAC,kBAAkB,IAAI,CAAC;QAClDE,OAAOF,OAAO,YAAY,CAAC,aAAa,IAAI,CAAC;QAC7CE,OAAOF,OAAO,YAAY,CAAC,qBAAqB,IAAI,CAAC;IACzD;IAEAL,GAAG,iEAAiE;QAChE,MAAM,EAAEC,SAAS,EAAE,GAAGC,kBAAkB;QAExCC,OAAO,WAADA,GAAC,oBAACC,uBAAqBA;YAAC,WAAWH;;QAEzC,MAAMI,SAASC,OAAO,SAAS,CAAC,UAAU;YAAE,MAAM;QAAU;QAC5D,MAAME,UAAUH,OAAO,OAAO,CAAC;QAC/B,MAAMT,SAASK,UAAU,EAAE,CAAC,qBAAqB;QACjDM,OAAOX,QAAQ,GAAG,CAAC,QAAQ;QAC3BW,OAAOC,SAAS,aAAa,gBAAgB,IAAI,CAACZ;IACtD;IAEAI,GAAG,uDAAuD;QACtD,MAAM,EAAEC,SAAS,EAAE,GAAGC,kBAAkB;QACxC,MAAMO,WAAWjB,GAAG,EAAE;QAEtBW,OAAO,WAADA,GACF,oBAAC;YAAK,UAAUM;yBACZ,oBAACL,uBAAqBA;YAAC,WAAWH;;QAG1C,MAAMI,SAASC,OAAO,SAAS,CAAC,UAAU;YAAE,MAAM;QAAU;QAC5DI,UAAU,KAAK,CAACL;QAEhBE,OAAOE,UAAU,GAAG,CAAC,gBAAgB;IACzC;AACJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app";
|
|
3
|
+
import { createReactiveComponent } from "@webiny/app-admin";
|
|
4
|
+
import { PageEditorConfig } from "@webiny/app-website-builder/presentation/pages/PageEditor/PageEditorConfig.js";
|
|
5
|
+
import { WbPageReviewFeature } from "../../features/editorReview/feature.js";
|
|
6
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
7
|
+
const BasePublishGate = createReactiveComponent((props)=>{
|
|
8
|
+
const { session } = useFeature(WbPageReviewFeature);
|
|
9
|
+
if ("noWorkflow" === session.presenter.vm.status) return props.element ?? null;
|
|
10
|
+
return null;
|
|
11
|
+
});
|
|
12
|
+
const PageBasePublishDecorator = Ui.TopBar.Action.createDecorator((Original)=>function(props) {
|
|
13
|
+
if ("buttonPublish" === props.name) return /*#__PURE__*/ react.createElement(Original, {
|
|
14
|
+
...props,
|
|
15
|
+
element: /*#__PURE__*/ react.createElement(BasePublishGate, {
|
|
16
|
+
element: props.element
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
return /*#__PURE__*/ react.createElement(Original, props);
|
|
20
|
+
});
|
|
21
|
+
export { PageBasePublishDecorator };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=PageBasePublishDecorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Components/PageEditor/PageBasePublishDecorator.js","sources":["../../../src/Components/PageEditor/PageBasePublishDecorator.tsx"],"sourcesContent":["import React from \"react\";\nimport { useFeature } from \"@webiny/app\";\nimport { createReactiveComponent } from \"@webiny/app-admin\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder/presentation/pages/PageEditor/PageEditorConfig.js\";\nimport { WbPageReviewFeature } from \"~/features/editorReview/feature.js\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface BasePublishGateProps {\n element?: React.ReactElement | null;\n}\n\nconst BasePublishGate = createReactiveComponent((props: BasePublishGateProps) => {\n const { session } = useFeature(WbPageReviewFeature);\n\n if (session.presenter.vm.status === \"noWorkflow\") {\n return props.element ?? null;\n }\n\n return null;\n});\n\n/*\n * Hides the base Publish for every page of a namespace that has a workflow; the workflows Publish\n * (`buttonWorkflowPublish`) takes over there. The one decoration of `buttonPublish` (A78).\n */\nexport const PageBasePublishDecorator = Ui.TopBar.Action.createDecorator(Original => {\n return function PageBasePublishDecoratorAction(props) {\n if (props.name === \"buttonPublish\") {\n return <Original {...props} element={<BasePublishGate element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","BasePublishGate","createReactiveComponent","props","session","useFeature","WbPageReviewFeature","PageBasePublishDecorator","Original"],"mappings":";;;;;AAMA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAMf,MAAMC,kBAAkBC,wBAAwB,CAACC;IAC7C,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAE/B,IAAIF,AAAgC,iBAAhCA,QAAQ,SAAS,CAAC,EAAE,CAAC,MAAM,EAC3B,OAAOD,MAAM,OAAO,IAAI;IAG5B,OAAO;AACX;AAMO,MAAMI,2BAA2BR,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAACS,CAAAA,WAC9D,SAAwCL,KAAK;QAChD,IAAIA,AAAe,oBAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACK,UAAAA;YAAU,GAAGL,KAAK;YAAE,uBAAS,oBAACF,iBAAeA;gBAAC,SAASE,MAAM,OAAO;;;QAEhF,OAAO,WAAP,GAAO,oBAACK,UAAaL;IACzB"}
|
|
@@ -1,33 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} = useWorkflowState();
|
|
12
|
-
/**
|
|
13
|
-
* Autosave should work only when the page does not have a workflow state assigned.
|
|
14
|
-
*/
|
|
15
|
-
if (!presenter.vm.state?.state) {
|
|
16
|
-
return props.element;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
});
|
|
20
|
-
export const PageEditorAutoSave = Ui.TopBar.Element.createDecorator(Original => {
|
|
21
|
-
return function PageEditorAutoSaveDecorated(props) {
|
|
22
|
-
if (props.name === "autoSave") {
|
|
23
|
-
return /*#__PURE__*/React.createElement(Original, Object.assign({}, props, {
|
|
24
|
-
element: /*#__PURE__*/React.createElement(WrappedAutoSave, {
|
|
25
|
-
element: props.element
|
|
26
|
-
})
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
return /*#__PURE__*/React.createElement(Original, props);
|
|
30
|
-
};
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { useFeature } from "@webiny/app";
|
|
3
|
+
import { createReactiveComponent } from "@webiny/app-admin";
|
|
4
|
+
import { PageEditorConfig } from "@webiny/app-website-builder/presentation/pages/PageEditor/PageEditorConfig.js";
|
|
5
|
+
import { WbPageReviewFeature } from "../../features/editorReview/feature.js";
|
|
6
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
7
|
+
const AutoSaveGate = createReactiveComponent((props)=>{
|
|
8
|
+
const { session } = useFeature(WbPageReviewFeature);
|
|
9
|
+
if (session.presenter.vm.allowsEditing) return props.element ?? null;
|
|
10
|
+
return null;
|
|
31
11
|
});
|
|
12
|
+
const PageEditorAutoSave = Ui.TopBar.Element.createDecorator((Original)=>function(props) {
|
|
13
|
+
if ("autoSave" === props.name) return /*#__PURE__*/ react.createElement(Original, {
|
|
14
|
+
...props,
|
|
15
|
+
element: /*#__PURE__*/ react.createElement(AutoSaveGate, {
|
|
16
|
+
element: props.element
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
return /*#__PURE__*/ react.createElement(Original, props);
|
|
20
|
+
});
|
|
21
|
+
export { PageEditorAutoSave };
|
|
32
22
|
|
|
33
23
|
//# sourceMappingURL=PageEditorAutoSave.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Components/PageEditor/PageEditorAutoSave.js","sources":["../../../src/Components/PageEditor/PageEditorAutoSave.tsx"],"sourcesContent":["import React from \"react\";\nimport { useFeature } from \"@webiny/app\";\nimport { createReactiveComponent } from \"@webiny/app-admin\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder/presentation/pages/PageEditor/PageEditorConfig.js\";\nimport { WbPageReviewFeature } from \"~/features/editorReview/feature.js\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface AutoSaveGateProps {\n element?: React.ReactElement | null;\n}\n\nconst AutoSaveGate = createReactiveComponent((props: AutoSaveGateProps) => {\n const { session } = useFeature(WbPageReviewFeature);\n\n /*\n * Autosave runs only while editing is allowed: never while a review exists and never while the\n * review status is loading or failed.\n */\n if (session.presenter.vm.allowsEditing) {\n return props.element ?? null;\n }\n\n return null;\n});\n\nexport const PageEditorAutoSave = Ui.TopBar.Element.createDecorator(Original => {\n return function PageEditorAutoSaveDecorated(props) {\n if (props.name === \"autoSave\") {\n return <Original {...props} element={<AutoSaveGate element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","AutoSaveGate","createReactiveComponent","props","session","useFeature","WbPageReviewFeature","PageEditorAutoSave","Original"],"mappings":";;;;;AAMA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAMf,MAAMC,eAAeC,wBAAwB,CAACC;IAC1C,MAAM,EAAEC,OAAO,EAAE,GAAGC,WAAWC;IAM/B,IAAIF,QAAQ,SAAS,CAAC,EAAE,CAAC,aAAa,EAClC,OAAOD,MAAM,OAAO,IAAI;IAG5B,OAAO;AACX;AAEO,MAAMI,qBAAqBR,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAACS,CAAAA,WACzD,SAAqCL,KAAK;QAC7C,IAAIA,AAAe,eAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACK,UAAAA;YAAU,GAAGL,KAAK;YAAE,uBAAS,oBAACF,cAAYA;gBAAC,SAASE,MAAM,OAAO;;;QAE7E,OAAO,WAAP,GAAO,oBAACK,UAAaL;IACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|