@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.
Files changed (402) hide show
  1. package/Components/ContentReviews/WbContentReviews.d.ts +2 -0
  2. package/Components/ContentReviews/WbContentReviews.js +41 -0
  3. package/Components/ContentReviews/WbContentReviews.js.map +1 -0
  4. package/Components/ContentReviews/WbContentReviews.smoke.test.d.ts +1 -0
  5. package/Components/ContentReviews/WbContentReviews.smoke.test.js +59 -0
  6. package/Components/ContentReviews/WbContentReviews.smoke.test.js.map +1 -0
  7. package/Components/ContentReviews/WbContentReviews.test.d.ts +1 -0
  8. package/Components/ContentReviews/WbContentReviews.test.js +80 -0
  9. package/Components/ContentReviews/WbContentReviews.test.js.map +1 -0
  10. package/Components/ContentReviews/WbContentReviewsSidebarItem.d.ts +2 -0
  11. package/Components/ContentReviews/WbContentReviewsSidebarItem.js +18 -0
  12. package/Components/ContentReviews/WbContentReviewsSidebarItem.js.map +1 -0
  13. package/Components/ContentReviews/WbContentReviewsSidebarItem.test.d.ts +1 -0
  14. package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js +67 -0
  15. package/Components/ContentReviews/WbContentReviewsSidebarItem.test.js.map +1 -0
  16. package/Components/PageEditor/DisabledPublishButton.d.ts +6 -0
  17. package/Components/PageEditor/DisabledPublishButton.js +17 -0
  18. package/Components/PageEditor/DisabledPublishButton.js.map +1 -0
  19. package/Components/PageEditor/DisabledPublishButton.test.d.ts +1 -0
  20. package/Components/PageEditor/DisabledPublishButton.test.js +67 -0
  21. package/Components/PageEditor/DisabledPublishButton.test.js.map +1 -0
  22. package/Components/PageEditor/PageBasePublishDecorator.d.ts +2 -0
  23. package/Components/PageEditor/PageBasePublishDecorator.js +23 -0
  24. package/Components/PageEditor/PageBasePublishDecorator.js.map +1 -0
  25. package/Components/PageEditor/PageEditorAutoSave.d.ts +2 -0
  26. package/Components/PageEditor/PageEditorAutoSave.js +23 -0
  27. package/Components/PageEditor/PageEditorAutoSave.js.map +1 -0
  28. package/Components/PageEditor/PageEditorAutoSave.test.d.ts +1 -0
  29. package/Components/PageEditor/PageEditorAutoSave.test.js +111 -0
  30. package/Components/PageEditor/PageEditorAutoSave.test.js.map +1 -0
  31. package/Components/PageEditor/PageEditorConfig.d.ts +2 -0
  32. package/Components/PageEditor/PageEditorConfig.js +13 -0
  33. package/Components/PageEditor/PageEditorConfig.js.map +1 -0
  34. package/Components/PageEditor/PageEditorLayout.d.ts +2 -0
  35. package/Components/PageEditor/PageEditorLayout.js +10 -0
  36. package/Components/PageEditor/PageEditorLayout.js.map +1 -0
  37. package/Components/PageEditor/PageEditorLayout.test.d.ts +1 -0
  38. package/Components/PageEditor/PageEditorLayout.test.js +121 -0
  39. package/Components/PageEditor/PageEditorLayout.test.js.map +1 -0
  40. package/Components/PageEditor/PageEditorTopBar.d.ts +2 -0
  41. package/Components/PageEditor/PageEditorTopBar.js +10 -0
  42. package/Components/PageEditor/PageEditorTopBar.js.map +1 -0
  43. package/Components/PageEditor/PageEditorTopBar.test.d.ts +1 -0
  44. package/Components/PageEditor/PageEditorTopBar.test.js +175 -0
  45. package/Components/PageEditor/PageEditorTopBar.test.js.map +1 -0
  46. package/Components/PageEditor/PageNewRevisionDecorator.d.ts +2 -0
  47. package/Components/PageEditor/PageNewRevisionDecorator.js +24 -0
  48. package/Components/PageEditor/PageNewRevisionDecorator.js.map +1 -0
  49. package/Components/PageEditor/PageNewRevisionDecorator.test.d.ts +1 -0
  50. package/Components/PageEditor/PageNewRevisionDecorator.test.js +107 -0
  51. package/Components/PageEditor/PageNewRevisionDecorator.test.js.map +1 -0
  52. package/Components/PageEditor/PageReadOnlySync.d.ts +3 -0
  53. package/Components/PageEditor/PageReadOnlySync.js +23 -0
  54. package/Components/PageEditor/PageReadOnlySync.js.map +1 -0
  55. package/Components/PageEditor/PageReviewBar.d.ts +4 -0
  56. package/Components/PageEditor/PageReviewBar.js +93 -0
  57. package/Components/PageEditor/PageReviewBar.js.map +1 -0
  58. package/Components/PageEditor/PageReviewBar.test.d.ts +1 -0
  59. package/Components/PageEditor/PageReviewBar.test.js +135 -0
  60. package/Components/PageEditor/PageReviewBar.test.js.map +1 -0
  61. package/Components/PageEditor/PageReviewPublishAction.d.ts +2 -0
  62. package/Components/PageEditor/PageReviewPublishAction.js +15 -0
  63. package/Components/PageEditor/PageReviewPublishAction.js.map +1 -0
  64. package/Components/PageEditor/PageReviewPublishButton.d.ts +4 -0
  65. package/Components/PageEditor/PageReviewPublishButton.js +23 -0
  66. package/Components/PageEditor/PageReviewPublishButton.js.map +1 -0
  67. package/Components/PageEditor/PageScheduleDecorator.d.ts +2 -0
  68. package/Components/PageEditor/PageScheduleDecorator.js +23 -0
  69. package/Components/PageEditor/PageScheduleDecorator.js.map +1 -0
  70. package/Components/PageEditor/PageScheduleDecorator.test.d.ts +1 -0
  71. package/Components/PageEditor/PageScheduleDecorator.test.js +75 -0
  72. package/Components/PageEditor/PageScheduleDecorator.test.js.map +1 -0
  73. package/Components/PageEditor/getPageReadOnlyReason.d.ts +4 -0
  74. package/Components/PageEditor/getPageReadOnlyReason.js +20 -0
  75. package/Components/PageEditor/getPageReadOnlyReason.js.map +1 -0
  76. package/Components/PageEditor/getPageReadOnlyReason.test.d.ts +1 -0
  77. package/Components/PageEditor/getPageReadOnlyReason.test.js +122 -0
  78. package/Components/PageEditor/getPageReadOnlyReason.test.js.map +1 -0
  79. package/Components/PageEditor/getPageReviewContext.d.ts +9 -0
  80. package/Components/PageEditor/getPageReviewContext.js +13 -0
  81. package/Components/PageEditor/getPageReviewContext.js.map +1 -0
  82. package/Components/PageEditor/getPageReviewContext.test.d.ts +1 -0
  83. package/Components/PageEditor/getPageReviewContext.test.js +42 -0
  84. package/Components/PageEditor/getPageReviewContext.test.js.map +1 -0
  85. package/Components/PageEditor/pageEditorDocument.d.ts +17 -0
  86. package/Components/PageEditor/pageEditorDocument.js +0 -0
  87. package/Components/PageEditor/pageReviewMatrix.test.d.ts +1 -0
  88. package/Components/PageEditor/pageReviewMatrix.test.js +223 -0
  89. package/Components/PageEditor/pageReviewMatrix.test.js.map +1 -0
  90. package/Components/PageEditor/publishMatrix.test.d.ts +1 -0
  91. package/Components/PageEditor/publishMatrix.test.js +313 -0
  92. package/Components/PageEditor/publishMatrix.test.js.map +1 -0
  93. package/Components/PagesList/PageListReviewGatedActions.d.ts +2 -0
  94. package/Components/PagesList/PageListReviewGatedActions.js +27 -0
  95. package/Components/PagesList/PageListReviewGatedActions.js.map +1 -0
  96. package/Components/PagesList/PageListReviewGatedActions.test.d.ts +1 -0
  97. package/Components/PagesList/PageListReviewGatedActions.test.js +94 -0
  98. package/Components/PagesList/PageListReviewGatedActions.test.js.map +1 -0
  99. package/Components/PagesList/PagesList.d.ts +2 -0
  100. package/Components/PagesList/PagesList.js +8 -0
  101. package/Components/PagesList/PagesList.js.map +1 -0
  102. package/Components/PagesList/PagesList.test.d.ts +1 -0
  103. package/Components/PagesList/PagesList.test.js +47 -0
  104. package/Components/PagesList/PagesList.test.js.map +1 -0
  105. package/Components/PagesList/index.d.ts +1 -0
  106. package/Components/PagesList/index.js +1 -0
  107. package/Components/index.d.ts +2 -0
  108. package/Components/index.js +2 -0
  109. package/LICENSE +21 -0
  110. package/README.md +11 -0
  111. package/Routes/WebsiteBuilderWorkflowsMenu.d.ts +2 -0
  112. package/Routes/WebsiteBuilderWorkflowsMenu.js +23 -0
  113. package/Routes/WebsiteBuilderWorkflowsMenu.js.map +1 -0
  114. package/Routes/WebsiteBuilderWorkflowsMenu.test.d.ts +1 -0
  115. package/Routes/WebsiteBuilderWorkflowsMenu.test.js +141 -0
  116. package/Routes/WebsiteBuilderWorkflowsMenu.test.js.map +1 -0
  117. package/Routes/index.d.ts +1 -0
  118. package/Routes/index.js +1 -0
  119. package/constants.d.ts +1 -0
  120. package/constants.js +4 -0
  121. package/constants.js.map +1 -0
  122. package/editorGlue.wiring.test.d.ts +1 -0
  123. package/editorGlue.wiring.test.js +128 -0
  124. package/editorGlue.wiring.test.js.map +1 -0
  125. package/features/cache/WbReviewCacheSyncHandler.d.ts +8 -0
  126. package/features/cache/WbReviewCacheSyncHandler.js +14 -0
  127. package/features/cache/WbReviewCacheSyncHandler.js.map +1 -0
  128. package/features/cache/WbReviewPageCacheWriter.d.ts +17 -0
  129. package/features/cache/WbReviewPageCacheWriter.js +39 -0
  130. package/features/cache/WbReviewPageCacheWriter.js.map +1 -0
  131. package/features/cache/WbReviewPageCacheWriter.test.d.ts +1 -0
  132. package/features/cache/WbReviewPageCacheWriter.test.js +115 -0
  133. package/features/cache/WbReviewPageCacheWriter.test.js.map +1 -0
  134. package/features/cache/abstractions.d.ts +5 -0
  135. package/features/cache/abstractions.js +5 -0
  136. package/features/cache/abstractions.js.map +1 -0
  137. package/features/cache/feature.d.ts +1 -0
  138. package/features/cache/feature.js +13 -0
  139. package/features/cache/feature.js.map +1 -0
  140. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.d.ts +25 -0
  141. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js +112 -0
  142. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.js.map +1 -0
  143. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.d.ts +1 -0
  144. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.js +632 -0
  145. package/features/editorGateway/WbWorkflowEditorGateway/WbWorkflowEditorGateway.test.js.map +1 -0
  146. package/features/editorGateway/feature.d.ts +1 -0
  147. package/features/editorGateway/feature.js +11 -0
  148. package/features/editorGateway/feature.js.map +1 -0
  149. package/features/editorGateway/feature.test.d.ts +1 -0
  150. package/features/editorGateway/feature.test.js +244 -0
  151. package/features/editorGateway/feature.test.js.map +1 -0
  152. package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.d.ts +1 -0
  153. package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js +19 -0
  154. package/features/editorGateway/graphql/deleteWebsiteBuilderPageWorkflow.js.map +1 -0
  155. package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.d.ts +1 -0
  156. package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js +19 -0
  157. package/features/editorGateway/graphql/getWebsiteBuilderPageWorkflow.js.map +1 -0
  158. package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.d.ts +1 -0
  159. package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js +19 -0
  160. package/features/editorGateway/graphql/inspectWebsiteBuilderPageRouting.js.map +1 -0
  161. package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.d.ts +1 -0
  162. package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js +23 -0
  163. package/features/editorGateway/graphql/listWebsiteBuilderPageWorkflowNames.js.map +1 -0
  164. package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.d.ts +1 -0
  165. package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js +19 -0
  166. package/features/editorGateway/graphql/storeWebsiteBuilderPageWorkflow.js.map +1 -0
  167. package/features/editorGateway/graphql/websiteBuilderPageFolderExists.d.ts +1 -0
  168. package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js +16 -0
  169. package/features/editorGateway/graphql/websiteBuilderPageFolderExists.js.map +1 -0
  170. package/features/editorMounting/WbWorkflowEditorAppAdapter.d.ts +21 -0
  171. package/features/editorMounting/WbWorkflowEditorAppAdapter.js +45 -0
  172. package/features/editorMounting/WbWorkflowEditorAppAdapter.js.map +1 -0
  173. package/features/editorMounting/WbWorkflowEditorAppAdapter.test.d.ts +1 -0
  174. package/features/editorMounting/WbWorkflowEditorAppAdapter.test.js +115 -0
  175. package/features/editorMounting/WbWorkflowEditorAppAdapter.test.js.map +1 -0
  176. package/features/editorMounting/abstractions.d.ts +5 -0
  177. package/features/editorMounting/abstractions.js +5 -0
  178. package/features/editorMounting/abstractions.js.map +1 -0
  179. package/features/editorMounting/feature.d.ts +3 -0
  180. package/features/editorMounting/feature.js +19 -0
  181. package/features/editorMounting/feature.js.map +1 -0
  182. package/features/editorMounting/feature.test.d.ts +1 -0
  183. package/features/editorMounting/feature.test.js +93 -0
  184. package/features/editorMounting/feature.test.js.map +1 -0
  185. package/features/editorReview/WbPageContentReloader.d.ts +12 -0
  186. package/features/editorReview/WbPageContentReloader.js +40 -0
  187. package/features/editorReview/WbPageContentReloader.js.map +1 -0
  188. package/features/editorReview/WbPageContentReloader.test.d.ts +1 -0
  189. package/features/editorReview/WbPageContentReloader.test.js +222 -0
  190. package/features/editorReview/WbPageContentReloader.test.js.map +1 -0
  191. package/features/editorReview/WbPageReview.d.ts +8 -0
  192. package/features/editorReview/WbPageReview.js +14 -0
  193. package/features/editorReview/WbPageReview.js.map +1 -0
  194. package/features/editorReview/WbPageUnsavedChanges.d.ts +8 -0
  195. package/features/editorReview/WbPageUnsavedChanges.js +12 -0
  196. package/features/editorReview/WbPageUnsavedChanges.js.map +1 -0
  197. package/features/editorReview/WbPageUnsavedChanges.test.d.ts +1 -0
  198. package/features/editorReview/WbPageUnsavedChanges.test.js +33 -0
  199. package/features/editorReview/WbPageUnsavedChanges.test.js.map +1 -0
  200. package/features/editorReview/abstractions.d.ts +5 -0
  201. package/features/editorReview/abstractions.js +5 -0
  202. package/features/editorReview/abstractions.js.map +1 -0
  203. package/features/editorReview/feature.d.ts +3 -0
  204. package/features/editorReview/feature.js +17 -0
  205. package/features/editorReview/feature.js.map +1 -0
  206. package/features/gateway/WbReviewChangeMessageHandler.d.ts +8 -0
  207. package/features/gateway/WbReviewChangeMessageHandler.js +16 -0
  208. package/features/gateway/WbReviewChangeMessageHandler.js.map +1 -0
  209. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.d.ts +13 -0
  210. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js +35 -0
  211. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.js.map +1 -0
  212. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.d.ts +1 -0
  213. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js +47 -0
  214. package/features/gateway/WbReviewContentAdapter/WbReviewContentAdapter.test.js.map +1 -0
  215. package/features/gateway/WbReviewContentAdapter/abstractions.d.ts +5 -0
  216. package/features/gateway/WbReviewContentAdapter/abstractions.js +5 -0
  217. package/features/gateway/WbReviewContentAdapter/abstractions.js.map +1 -0
  218. package/features/gateway/WbReviewGateway/WbReviewGateway.d.ts +51 -0
  219. package/features/gateway/WbReviewGateway/WbReviewGateway.js +216 -0
  220. package/features/gateway/WbReviewGateway/WbReviewGateway.js.map +1 -0
  221. package/features/gateway/WbReviewGateway/WbReviewGateway.test.d.ts +1 -0
  222. package/features/gateway/WbReviewGateway/WbReviewGateway.test.js +647 -0
  223. package/features/gateway/WbReviewGateway/WbReviewGateway.test.js.map +1 -0
  224. package/features/gateway/WbReviewNotificationHandler.d.ts +8 -0
  225. package/features/gateway/WbReviewNotificationHandler.js +16 -0
  226. package/features/gateway/WbReviewNotificationHandler.js.map +1 -0
  227. package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.d.ts +8 -0
  228. package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js +14 -0
  229. package/features/gateway/WbReviewRowProvider/WbReviewRowProvider.js.map +1 -0
  230. package/features/gateway/WbReviewRowProvider/abstractions.d.ts +5 -0
  231. package/features/gateway/WbReviewRowProvider/abstractions.js +5 -0
  232. package/features/gateway/WbReviewRowProvider/abstractions.js.map +1 -0
  233. package/features/gateway/assertWbPageNamespace.d.ts +1 -0
  234. package/features/gateway/assertWbPageNamespace.js +7 -0
  235. package/features/gateway/assertWbPageNamespace.js.map +1 -0
  236. package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
  237. package/features/gateway/contentReviewsBindings.test.js +159 -0
  238. package/features/gateway/contentReviewsBindings.test.js.map +1 -0
  239. package/features/gateway/feature.d.ts +4 -0
  240. package/features/gateway/feature.js +27 -0
  241. package/features/gateway/feature.js.map +1 -0
  242. package/features/gateway/feature.test.d.ts +1 -0
  243. package/features/gateway/feature.test.js +85 -0
  244. package/features/gateway/feature.test.js.map +1 -0
  245. package/features/gateway/graphql/WbOperationResponse.d.ts +3 -0
  246. package/features/gateway/graphql/WbOperationResponse.js +0 -0
  247. package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.d.ts +1 -0
  248. package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js +22 -0
  249. package/features/gateway/graphql/approveWebsiteBuilderPageReviewStep.js.map +1 -0
  250. package/features/gateway/graphql/cancelWebsiteBuilderPageReview.d.ts +1 -0
  251. package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js +18 -0
  252. package/features/gateway/graphql/cancelWebsiteBuilderPageReview.js.map +1 -0
  253. package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.d.ts +1 -0
  254. package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js +26 -0
  255. package/features/gateway/graphql/cancelWebsiteBuilderPageReviewsForDelete.js.map +1 -0
  256. package/features/gateway/graphql/getWebsiteBuilderPageReview.d.ts +1 -0
  257. package/features/gateway/graphql/getWebsiteBuilderPageReview.js +18 -0
  258. package/features/gateway/graphql/getWebsiteBuilderPageReview.js.map +1 -0
  259. package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.d.ts +1 -0
  260. package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js +18 -0
  261. package/features/gateway/graphql/getWebsiteBuilderPageReviewStepRun.js.map +1 -0
  262. package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.d.ts +1 -0
  263. package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js +18 -0
  264. package/features/gateway/graphql/getWebsiteBuilderPageTargetReview.js.map +1 -0
  265. package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.d.ts +1 -0
  266. package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js +18 -0
  267. package/features/gateway/graphql/listWebsiteBuilderPageReviewStepCandidates.js.map +1 -0
  268. package/features/gateway/graphql/listWebsiteBuilderPageReviews.d.ts +1 -0
  269. package/features/gateway/graphql/listWebsiteBuilderPageReviews.js +34 -0
  270. package/features/gateway/graphql/listWebsiteBuilderPageReviews.js.map +1 -0
  271. package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.d.ts +1 -0
  272. package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js +22 -0
  273. package/features/gateway/graphql/listWebsiteBuilderPageStepCandidates.js.map +1 -0
  274. package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.d.ts +1 -0
  275. package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js +18 -0
  276. package/features/gateway/graphql/listWebsiteBuilderPageWorkflows.js.map +1 -0
  277. package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.d.ts +1 -0
  278. package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js +22 -0
  279. package/features/gateway/graphql/reassignWebsiteBuilderPageReviewStep.js.map +1 -0
  280. package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.d.ts +1 -0
  281. package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js +22 -0
  282. package/features/gateway/graphql/rejectWebsiteBuilderPageReviewStep.js.map +1 -0
  283. package/features/gateway/graphql/requestWebsiteBuilderPageReview.d.ts +1 -0
  284. package/features/gateway/graphql/requestWebsiteBuilderPageReview.js +26 -0
  285. package/features/gateway/graphql/requestWebsiteBuilderPageReview.js.map +1 -0
  286. package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.d.ts +1 -0
  287. package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js +18 -0
  288. package/features/gateway/graphql/restartWebsiteBuilderPageReviewStep.js.map +1 -0
  289. package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.d.ts +1 -0
  290. package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js +18 -0
  291. package/features/gateway/graphql/startWebsiteBuilderPageReviewStep.js.map +1 -0
  292. package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.d.ts +1 -0
  293. package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js +26 -0
  294. package/features/gateway/graphql/takeOverWebsiteBuilderPageReviewStep.js.map +1 -0
  295. package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +14 -0
  296. package/features/trash/BulkDeletePresenterReviewDecorator.js +27 -0
  297. package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
  298. package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
  299. package/features/trash/BulkDeletePresenterReviewDecorator.test.js +234 -0
  300. package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
  301. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.d.ts +13 -0
  302. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js +23 -0
  303. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.js.map +1 -0
  304. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.d.ts +1 -0
  305. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js +114 -0
  306. package/features/trash/DeletePageRevisionUseCaseReviewDecorator.test.js.map +1 -0
  307. package/features/trash/DeletePageUseCaseReviewDecorator.d.ts +13 -0
  308. package/features/trash/DeletePageUseCaseReviewDecorator.js +23 -0
  309. package/features/trash/DeletePageUseCaseReviewDecorator.js.map +1 -0
  310. package/features/trash/DeletePageUseCaseReviewDecorator.test.d.ts +1 -0
  311. package/features/trash/DeletePageUseCaseReviewDecorator.test.js +134 -0
  312. package/features/trash/DeletePageUseCaseReviewDecorator.test.js.map +1 -0
  313. package/features/trash/feature.d.ts +1 -0
  314. package/features/trash/feature.js +15 -0
  315. package/features/trash/feature.js.map +1 -0
  316. package/features/trash/feature.test.d.ts +1 -0
  317. package/features/trash/feature.test.js +183 -0
  318. package/features/trash/feature.test.js.map +1 -0
  319. package/hooks/usePage.d.ts +5 -0
  320. package/hooks/usePage.js +15 -0
  321. package/hooks/usePage.js.map +1 -0
  322. package/hooks/usePage.test.d.ts +1 -0
  323. package/hooks/usePage.test.js +49 -0
  324. package/hooks/usePage.test.js.map +1 -0
  325. package/index.d.ts +2 -0
  326. package/index.js +40 -0
  327. package/index.js.map +1 -0
  328. package/index.mount.test.d.ts +1 -0
  329. package/index.mount.test.js +50 -0
  330. package/index.mount.test.js.map +1 -0
  331. package/index.test.d.ts +1 -0
  332. package/index.test.js +523 -0
  333. package/index.test.js.map +1 -0
  334. package/package.json +54 -0
  335. package/pageListChangeStatus.wiring.test.d.ts +1 -0
  336. package/pageListChangeStatus.wiring.test.js +175 -0
  337. package/pageListChangeStatus.wiring.test.js.map +1 -0
  338. package/pageListGlue.wiring.test.d.ts +1 -0
  339. package/pageListGlue.wiring.test.js +220 -0
  340. package/pageListGlue.wiring.test.js.map +1 -0
  341. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.d.ts +8 -0
  342. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js +16 -0
  343. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.js.map +1 -0
  344. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.d.ts +1 -0
  345. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js +19 -0
  346. package/presentation/page/PageGet/WbReviewGetPageFieldSelection.test.js.map +1 -0
  347. package/presentation/page/PageGet/feature.d.ts +1 -0
  348. package/presentation/page/PageGet/feature.js +11 -0
  349. package/presentation/page/PageGet/feature.js.map +1 -0
  350. package/presentation/page/PageList/WbReviewListPagesFieldSelection.d.ts +8 -0
  351. package/presentation/page/PageList/WbReviewListPagesFieldSelection.js +16 -0
  352. package/presentation/page/PageList/WbReviewListPagesFieldSelection.js.map +1 -0
  353. package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.d.ts +1 -0
  354. package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js +19 -0
  355. package/presentation/page/PageList/WbReviewListPagesFieldSelection.test.js.map +1 -0
  356. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.d.ts +12 -0
  357. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js +24 -0
  358. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.js.map +1 -0
  359. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.d.ts +1 -0
  360. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js +70 -0
  361. package/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js.map +1 -0
  362. package/presentation/page/PageList/feature.d.ts +1 -0
  363. package/presentation/page/PageList/feature.js +13 -0
  364. package/presentation/page/PageList/feature.js.map +1 -0
  365. package/presentation/page/RevisionList/RevisionListPresenterDecorator.d.ts +15 -0
  366. package/presentation/page/RevisionList/RevisionListPresenterDecorator.js +36 -0
  367. package/presentation/page/RevisionList/RevisionListPresenterDecorator.js.map +1 -0
  368. package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.d.ts +1 -0
  369. package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js +119 -0
  370. package/presentation/page/RevisionList/RevisionListPresenterDecorator.test.js.map +1 -0
  371. package/presentation/page/RevisionList/feature.d.ts +1 -0
  372. package/presentation/page/RevisionList/feature.js +11 -0
  373. package/presentation/page/RevisionList/feature.js.map +1 -0
  374. package/presentation/page/wbReviewPageSelection.d.ts +1 -0
  375. package/presentation/page/wbReviewPageSelection.js +9 -0
  376. package/presentation/page/wbReviewPageSelection.js.map +1 -0
  377. package/publishAutosave.wiring.test.d.ts +1 -0
  378. package/publishAutosave.wiring.test.js +162 -0
  379. package/publishAutosave.wiring.test.js.map +1 -0
  380. package/routes.d.ts +9 -0
  381. package/routes.js +19 -0
  382. package/routes.js.map +1 -0
  383. package/testing/WbEditorHarness.d.ts +11 -0
  384. package/testing/WbEditorHarness.js +22 -0
  385. package/testing/WbEditorHarness.js.map +1 -0
  386. package/testing/createFakeSession.d.ts +9 -0
  387. package/testing/createFakeSession.js +29 -0
  388. package/testing/createFakeSession.js.map +1 -0
  389. package/testing/createFakeVm.d.ts +3 -0
  390. package/testing/createFakeVm.js +51 -0
  391. package/testing/createFakeVm.js.map +1 -0
  392. package/testing/createFolder.d.ts +2 -0
  393. package/testing/createFolder.js +13 -0
  394. package/testing/createFolder.js.map +1 -0
  395. package/testing/createPageEditor.d.ts +4 -0
  396. package/testing/createPageEditor.js +26 -0
  397. package/testing/createPageEditor.js.map +1 -0
  398. package/testing/registerPageContent.d.ts +20 -0
  399. package/testing/registerPageContent.js +28 -0
  400. package/testing/registerPageContent.js.map +1 -0
  401. package/types.d.ts +9 -0
  402. package/types.js +0 -0
@@ -0,0 +1,16 @@
1
+ import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/listPages/abstractions.js";
2
+ import { WB_REVIEW_PAGE_SELECTION } from "../wbReviewPageSelection.js";
3
+ class WbReviewListPagesFieldSelectionImpl {
4
+ getSelection() {
5
+ return [
6
+ WB_REVIEW_PAGE_SELECTION
7
+ ];
8
+ }
9
+ }
10
+ const WbReviewListPagesFieldSelection = ListPagesGraphQLFieldSelection.createImplementation({
11
+ dependencies: [],
12
+ implementation: WbReviewListPagesFieldSelectionImpl
13
+ });
14
+ export { WbReviewListPagesFieldSelection };
15
+
16
+ //# sourceMappingURL=WbReviewListPagesFieldSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/WbReviewListPagesFieldSelection.js","sources":["../../../../src/presentation/page/PageList/WbReviewListPagesFieldSelection.ts"],"sourcesContent":["import { ListPagesGraphQLFieldSelection } from \"@webiny/app-website-builder/features/pages/listPages/abstractions.js\";\nimport { WB_REVIEW_PAGE_SELECTION } from \"../wbReviewPageSelection.js\";\n\nclass WbReviewListPagesFieldSelectionImpl implements ListPagesGraphQLFieldSelection.Interface {\n getSelection(): string[] {\n return [WB_REVIEW_PAGE_SELECTION];\n }\n}\n\nexport const WbReviewListPagesFieldSelection = ListPagesGraphQLFieldSelection.createImplementation({\n dependencies: [],\n implementation: WbReviewListPagesFieldSelectionImpl\n});\n"],"names":["WbReviewListPagesFieldSelectionImpl","WB_REVIEW_PAGE_SELECTION","WbReviewListPagesFieldSelection","ListPagesGraphQLFieldSelection"],"mappings":";;AAGA,MAAMA;IACF,eAAyB;QACrB,OAAO;YAACC;SAAyB;IACrC;AACJ;AAEO,MAAMC,kCAAkCC,+BAA+B,oBAAoB,CAAC;IAC/F,cAAc,EAAE;IAChB,gBAAgBH;AACpB"}
@@ -0,0 +1,19 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { Container } from "@webiny/di";
3
+ import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/listPages/abstractions.js";
4
+ import { REVIEW_SYSTEM_WORKFLOW_SELECTION } from "@webiny/app-workflows/review/gateway/reviewFields.js";
5
+ import { WbReviewListPagesFieldSelection } from "./WbReviewListPagesFieldSelection.js";
6
+ describe("WbReviewListPagesFieldSelection", ()=>{
7
+ it("selects system.workflow with the shared selection constant", ()=>{
8
+ const container = new Container();
9
+ container.register(WbReviewListPagesFieldSelection);
10
+ const selections = container.resolveAll(ListPagesGraphQLFieldSelection);
11
+ expect(selections).toHaveLength(1);
12
+ const fields = selections[0].getSelection();
13
+ expect(fields).toHaveLength(1);
14
+ const normalized = fields[0].replace(/\s+/g, " ").trim();
15
+ expect(normalized).toBe(`system { workflow { ${REVIEW_SYSTEM_WORKFLOW_SELECTION} } }`);
16
+ });
17
+ });
18
+
19
+ //# sourceMappingURL=WbReviewListPagesFieldSelection.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/WbReviewListPagesFieldSelection.test.js","sources":["../../../../src/presentation/page/PageList/WbReviewListPagesFieldSelection.test.ts"],"sourcesContent":["import { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { ListPagesGraphQLFieldSelection } from \"@webiny/app-website-builder/features/pages/listPages/abstractions.js\";\nimport { REVIEW_SYSTEM_WORKFLOW_SELECTION } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\nimport { WbReviewListPagesFieldSelection } from \"./WbReviewListPagesFieldSelection.js\";\n\ndescribe(\"WbReviewListPagesFieldSelection\", () => {\n it(\"selects system.workflow with the shared selection constant\", () => {\n const container = new Container();\n container.register(WbReviewListPagesFieldSelection);\n\n const selections = container.resolveAll(ListPagesGraphQLFieldSelection);\n\n expect(selections).toHaveLength(1);\n const fields = selections[0].getSelection();\n expect(fields).toHaveLength(1);\n const normalized = fields[0].replace(/\\s+/g, \" \").trim();\n expect(normalized).toBe(`system { workflow { ${REVIEW_SYSTEM_WORKFLOW_SELECTION} } }`);\n });\n});\n"],"names":["describe","it","container","Container","WbReviewListPagesFieldSelection","selections","ListPagesGraphQLFieldSelection","expect","fields","normalized","REVIEW_SYSTEM_WORKFLOW_SELECTION"],"mappings":";;;;;AAQAA,SAAS,mCAAmC;IACxCC,GAAG,8DAA8D;QAC7D,MAAMC,YAAY,IAAIC;QACtBD,UAAU,QAAQ,CAACE;QAEnB,MAAMC,aAAaH,UAAU,UAAU,CAACI;QAExCC,OAAOF,YAAY,YAAY,CAAC;QAChC,MAAMG,SAASH,UAAU,CAAC,EAAE,CAAC,YAAY;QACzCE,OAAOC,QAAQ,YAAY,CAAC;QAC5B,MAAMC,aAAaD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI;QACtDD,OAAOE,YAAY,IAAI,CAAC,CAAC,oBAAoB,EAAEC,iCAAiC,IAAI,CAAC;IACzF;AACJ"}
@@ -0,0 +1,12 @@
1
+ import type { Page } from "@webiny/app-website-builder/domain/Page/Page.js";
2
+ import { TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js";
3
+ import "~/types.js";
4
+ declare class WbReviewTableRowMapperDecoratorImpl implements TableRowMapper.Interface {
5
+ private decoratee;
6
+ constructor(decoratee: TableRowMapper.Interface);
7
+ fromPage(page: Page): TableRowMapper.TableRow;
8
+ }
9
+ export declare const WbReviewTableRowMapperDecorator: typeof WbReviewTableRowMapperDecoratorImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js").ITableRowMapper>;
11
+ };
12
+ export {};
@@ -0,0 +1,24 @@
1
+ import { TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js";
2
+ import { isReviewSelectable } from "@webiny/app-workflows/review/domain/isReviewSelectable.js";
3
+ import "../../../types.js";
4
+ class WbReviewTableRowMapperDecoratorImpl {
5
+ constructor(decoratee){
6
+ this.decoratee = decoratee;
7
+ }
8
+ fromPage(page) {
9
+ const row = this.decoratee.fromPage(page);
10
+ const reviewState = page.system?.workflow?.reviewState ?? null;
11
+ if (isReviewSelectable(reviewState)) return row;
12
+ return {
13
+ ...row,
14
+ $selectable: false
15
+ };
16
+ }
17
+ }
18
+ const WbReviewTableRowMapperDecorator = TableRowMapper.createDecorator({
19
+ decorator: WbReviewTableRowMapperDecoratorImpl,
20
+ dependencies: []
21
+ });
22
+ export { WbReviewTableRowMapperDecorator };
23
+
24
+ //# sourceMappingURL=WbReviewTableRowMapperDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/WbReviewTableRowMapperDecorator.js","sources":["../../../../src/presentation/page/PageList/WbReviewTableRowMapperDecorator.ts"],"sourcesContent":["import type { Page } from \"@webiny/app-website-builder/domain/Page/Page.js\";\nimport { TableRowMapper } from \"@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js\";\nimport { isReviewSelectable } from \"@webiny/app-workflows/review/domain/isReviewSelectable.js\";\nimport \"~/types.js\";\n\nclass WbReviewTableRowMapperDecoratorImpl implements TableRowMapper.Interface {\n constructor(private decoratee: TableRowMapper.Interface) {}\n\n fromPage(page: Page): TableRowMapper.TableRow {\n const row = this.decoratee.fromPage(page);\n\n const reviewState = page.system?.workflow?.reviewState ?? null;\n if (isReviewSelectable(reviewState)) {\n return row;\n }\n\n return { ...row, $selectable: false };\n }\n}\n\nexport const WbReviewTableRowMapperDecorator = TableRowMapper.createDecorator({\n decorator: WbReviewTableRowMapperDecoratorImpl,\n dependencies: []\n});\n"],"names":["WbReviewTableRowMapperDecoratorImpl","decoratee","page","row","reviewState","isReviewSelectable","WbReviewTableRowMapperDecorator","TableRowMapper"],"mappings":";;;AAKA,MAAMA;IACF,YAAoBC,SAAmC,CAAE;aAArCA,SAAS,GAATA;IAAsC;IAE1D,SAASC,IAAU,EAA2B;QAC1C,MAAMC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACD;QAEpC,MAAME,cAAcF,KAAK,MAAM,EAAE,UAAU,eAAe;QAC1D,IAAIG,mBAAmBD,cACnB,OAAOD;QAGX,OAAO;YAAE,GAAGA,GAAG;YAAE,aAAa;QAAM;IACxC;AACJ;AAEO,MAAMG,kCAAkCC,eAAe,eAAe,CAAC;IAC1E,WAAWP;IACX,cAAc,EAAE;AACpB"}
@@ -0,0 +1,70 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { Container } from "@webiny/di";
3
+ import { Page } from "@webiny/app-website-builder/domain/Page/index.js";
4
+ import { WbPageStatus } from "@webiny/app-website-builder/constants.js";
5
+ import { TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js";
6
+ import { TableRowMapper as TableRowMapper_js_TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/components/Table/TableRowMapper.js";
7
+ import { ReviewState } from "@webiny/app-workflows/review/domain/ReviewState.js";
8
+ import { StepState } from "@webiny/app-workflows/review/domain/StepState.js";
9
+ import "../../../types.js";
10
+ import { WbReviewTableRowMapperDecorator } from "./WbReviewTableRowMapperDecorator.js";
11
+ const createMapper = ()=>{
12
+ const container = new Container();
13
+ container.register(TableRowMapper_js_TableRowMapper);
14
+ container.registerDecorator(WbReviewTableRowMapperDecorator);
15
+ return container.resolve(TableRowMapper);
16
+ };
17
+ const createPage = (reviewState)=>{
18
+ const system = null === reviewState ? null : {
19
+ workflow: {
20
+ workflowId: "workflow-1",
21
+ reviewState,
22
+ stepId: "step-1",
23
+ stepName: "Legal",
24
+ stepState: StepState.InReview
25
+ }
26
+ };
27
+ return Page.create({
28
+ id: "page-1#0001",
29
+ entryId: "page-1",
30
+ status: WbPageStatus.Draft,
31
+ system
32
+ });
33
+ };
34
+ const CASES = [
35
+ {
36
+ reviewState: null,
37
+ selectable: true
38
+ },
39
+ {
40
+ reviewState: ReviewState.Approved,
41
+ selectable: true
42
+ },
43
+ {
44
+ reviewState: ReviewState.InProgress,
45
+ selectable: false
46
+ },
47
+ {
48
+ reviewState: ReviewState.Rejected,
49
+ selectable: false
50
+ },
51
+ {
52
+ reviewState: ReviewState.Cancelled,
53
+ selectable: false
54
+ }
55
+ ];
56
+ describe("WbReviewTableRowMapperDecorator", ()=>{
57
+ it.each(CASES)("review state $reviewState: selectable is $selectable", ({ reviewState, selectable })=>{
58
+ const mapper = createMapper();
59
+ const row = mapper.fromPage(createPage(reviewState));
60
+ expect(row.$selectable).toBe(selectable);
61
+ });
62
+ it("keeps everything else of the base row", ()=>{
63
+ const mapper = createMapper();
64
+ const row = mapper.fromPage(createPage(ReviewState.InProgress));
65
+ expect(row.id).toBe("page-1");
66
+ expect(row.$type).toBe("RECORD");
67
+ });
68
+ });
69
+
70
+ //# sourceMappingURL=WbReviewTableRowMapperDecorator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/WbReviewTableRowMapperDecorator.test.js","sources":["../../../../src/presentation/page/PageList/WbReviewTableRowMapperDecorator.test.ts"],"sourcesContent":["import { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { Page } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport { WbPageStatus } from \"@webiny/app-website-builder/constants.js\";\nimport { TableRowMapper as TableRowMapperAbstraction } from \"@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions.js\";\nimport { TableRowMapper as BaseTableRowMapper } from \"@webiny/app-website-builder/presentation/pages/PageList/components/Table/TableRowMapper.js\";\nimport { ReviewState } from \"@webiny/app-workflows/review/domain/ReviewState.js\";\nimport type { ReviewStateValue } from \"@webiny/app-workflows/review/domain/ReviewState.js\";\nimport { StepState } from \"@webiny/app-workflows/review/domain/StepState.js\";\nimport \"~/types.js\";\nimport { WbReviewTableRowMapperDecorator } from \"./WbReviewTableRowMapperDecorator.js\";\n\nconst createMapper = (): TableRowMapperAbstraction.Interface => {\n const container = new Container();\n container.register(BaseTableRowMapper);\n container.registerDecorator(WbReviewTableRowMapperDecorator);\n return container.resolve(TableRowMapperAbstraction);\n};\n\nconst createPage = (reviewState: ReviewStateValue | null): Page => {\n const system =\n reviewState === null\n ? null\n : {\n workflow: {\n workflowId: \"workflow-1\",\n reviewState,\n stepId: \"step-1\",\n stepName: \"Legal\",\n stepState: StepState.InReview\n }\n };\n\n return Page.create({\n id: \"page-1#0001\",\n entryId: \"page-1\",\n status: WbPageStatus.Draft,\n system\n });\n};\n\ninterface SelectableCase {\n reviewState: ReviewStateValue | null;\n selectable: boolean;\n}\n\nconst CASES: SelectableCase[] = [\n { reviewState: null, selectable: true },\n { reviewState: ReviewState.Approved, selectable: true },\n { reviewState: ReviewState.InProgress, selectable: false },\n { reviewState: ReviewState.Rejected, selectable: false },\n { reviewState: ReviewState.Cancelled, selectable: false }\n];\n\ndescribe(\"WbReviewTableRowMapperDecorator\", () => {\n it.each(CASES)(\n \"review state $reviewState: selectable is $selectable\",\n ({ reviewState, selectable }) => {\n const mapper = createMapper();\n\n const row = mapper.fromPage(createPage(reviewState));\n\n expect(row.$selectable).toBe(selectable);\n }\n );\n\n it(\"keeps everything else of the base row\", () => {\n const mapper = createMapper();\n\n const row = mapper.fromPage(createPage(ReviewState.InProgress));\n\n expect(row.id).toBe(\"page-1\");\n expect(row.$type).toBe(\"RECORD\");\n });\n});\n"],"names":["createMapper","container","Container","BaseTableRowMapper","WbReviewTableRowMapperDecorator","TableRowMapperAbstraction","createPage","reviewState","system","StepState","Page","WbPageStatus","CASES","ReviewState","describe","it","selectable","mapper","row","expect"],"mappings":";;;;;;;;;;AAcA,MAAMA,eAAe;IACjB,MAAMC,YAAY,IAAIC;IACtBD,UAAU,QAAQ,CAACE;IACnBF,UAAU,iBAAiB,CAACG;IAC5B,OAAOH,UAAU,OAAO,CAACI;AAC7B;AAEA,MAAMC,aAAa,CAACC;IAChB,MAAMC,SACFD,AAAgB,SAAhBA,cACM,OACA;QACI,UAAU;YACN,YAAY;YACZA;YACA,QAAQ;YACR,UAAU;YACV,WAAWE,UAAU,QAAQ;QACjC;IACJ;IAEV,OAAOC,KAAK,MAAM,CAAC;QACf,IAAI;QACJ,SAAS;QACT,QAAQC,aAAa,KAAK;QAC1BH;IACJ;AACJ;AAOA,MAAMI,QAA0B;IAC5B;QAAE,aAAa;QAAM,YAAY;IAAK;IACtC;QAAE,aAAaC,YAAY,QAAQ;QAAE,YAAY;IAAK;IACtD;QAAE,aAAaA,YAAY,UAAU;QAAE,YAAY;IAAM;IACzD;QAAE,aAAaA,YAAY,QAAQ;QAAE,YAAY;IAAM;IACvD;QAAE,aAAaA,YAAY,SAAS;QAAE,YAAY;IAAM;CAC3D;AAEDC,SAAS,mCAAmC;IACxCC,GAAG,IAAI,CAACH,OACJ,wDACA,CAAC,EAAEL,WAAW,EAAES,UAAU,EAAE;QACxB,MAAMC,SAASjB;QAEf,MAAMkB,MAAMD,OAAO,QAAQ,CAACX,WAAWC;QAEvCY,OAAOD,IAAI,WAAW,EAAE,IAAI,CAACF;IACjC;IAGJD,GAAG,yCAAyC;QACxC,MAAME,SAASjB;QAEf,MAAMkB,MAAMD,OAAO,QAAQ,CAACX,WAAWO,YAAY,UAAU;QAE7DM,OAAOD,IAAI,EAAE,EAAE,IAAI,CAAC;QACpBC,OAAOD,IAAI,KAAK,EAAE,IAAI,CAAC;IAC3B;AACJ"}
@@ -0,0 +1 @@
1
+ export declare const PageListWorkflowsFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { WbReviewListPagesFieldSelection } from "./WbReviewListPagesFieldSelection.js";
3
+ import { WbReviewTableRowMapperDecorator } from "./WbReviewTableRowMapperDecorator.js";
4
+ const PageListWorkflowsFeature = createFeature({
5
+ name: "PageListWorkflows",
6
+ register (container) {
7
+ container.register(WbReviewListPagesFieldSelection);
8
+ container.registerDecorator(WbReviewTableRowMapperDecorator);
9
+ }
10
+ });
11
+ export { PageListWorkflowsFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/feature.js","sources":["../../../../src/presentation/page/PageList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { WbReviewListPagesFieldSelection } from \"./WbReviewListPagesFieldSelection.js\";\nimport { WbReviewTableRowMapperDecorator } from \"./WbReviewTableRowMapperDecorator.js\";\n\nexport const PageListWorkflowsFeature = createFeature({\n name: \"PageListWorkflows\",\n register(container) {\n container.register(WbReviewListPagesFieldSelection);\n container.registerDecorator(WbReviewTableRowMapperDecorator);\n }\n});\n"],"names":["PageListWorkflowsFeature","createFeature","container","WbReviewListPagesFieldSelection","WbReviewTableRowMapperDecorator"],"mappings":";;;AAIO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,iBAAiB,CAACE;IAChC;AACJ"}
@@ -0,0 +1,15 @@
1
+ import { RevisionListPresenter } from "@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js";
2
+ import type { IRevisionListPresenterInit } from "@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js";
3
+ import type { IRevisionListVm } from "@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js";
4
+ import { WbPageReview } from "../../../features/editorReview/abstractions.js";
5
+ declare class RevisionListPresenterWithWorkflows implements RevisionListPresenter.Interface {
6
+ private session;
7
+ private decoratee;
8
+ constructor(session: WbPageReview.Interface, decoratee: RevisionListPresenter.Interface);
9
+ get vm(): IRevisionListVm;
10
+ init(params: IRevisionListPresenterInit): void;
11
+ }
12
+ export declare const RevisionListPresenterDecorator: typeof RevisionListPresenterWithWorkflows & {
13
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js").IRevisionListPresenter>;
14
+ };
15
+ export {};
@@ -0,0 +1,36 @@
1
+ import { makeAutoObservable } from "mobx";
2
+ import { RevisionListPresenter } from "@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js";
3
+ import { WbPageReview } from "../../../features/editorReview/abstractions.js";
4
+ class RevisionListPresenterWithWorkflows {
5
+ constructor(session, decoratee){
6
+ this.session = session;
7
+ this.decoratee = decoratee;
8
+ makeAutoObservable(this, {
9
+ session: false,
10
+ decoratee: false
11
+ });
12
+ }
13
+ get vm() {
14
+ const vm = this.decoratee.vm;
15
+ const noWorkflow = "noWorkflow" === this.session.presenter.vm.status;
16
+ return {
17
+ ...vm,
18
+ revisions: vm.revisions.map((item)=>({
19
+ ...item,
20
+ canPublish: item.canPublish && noWorkflow
21
+ }))
22
+ };
23
+ }
24
+ init(params) {
25
+ this.decoratee.init(params);
26
+ }
27
+ }
28
+ const RevisionListPresenterDecorator = RevisionListPresenter.createDecorator({
29
+ decorator: RevisionListPresenterWithWorkflows,
30
+ dependencies: [
31
+ WbPageReview
32
+ ]
33
+ });
34
+ export { RevisionListPresenterDecorator };
35
+
36
+ //# sourceMappingURL=RevisionListPresenterDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/RevisionList/RevisionListPresenterDecorator.js","sources":["../../../../src/presentation/page/RevisionList/RevisionListPresenterDecorator.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { RevisionListPresenter } from \"@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js\";\nimport type { IRevisionListPresenterInit } from \"@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js\";\nimport type { IRevisionListVm } from \"@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js\";\nimport { WbPageReview } from \"~/features/editorReview/abstractions.js\";\n\n/*\n * Publishing a revision straight from the editor's revisions drawer would bypass the review: the\n * drawer only offers Publish when the page's namespace has no workflow. While the review state\n * loads, fails or a workflow exists, the workflows Publish of the top bar is the only one, as with\n * `PageBasePublishDecorator`.\n */\nclass RevisionListPresenterWithWorkflows implements RevisionListPresenter.Interface {\n public constructor(\n private session: WbPageReview.Interface,\n private decoratee: RevisionListPresenter.Interface\n ) {\n makeAutoObservable<this, \"session\" | \"decoratee\">(this, {\n session: false,\n decoratee: false\n });\n }\n\n public get vm(): IRevisionListVm {\n const vm = this.decoratee.vm;\n const noWorkflow = this.session.presenter.vm.status === \"noWorkflow\";\n\n return {\n ...vm,\n revisions: vm.revisions.map(item => {\n return {\n ...item,\n canPublish: item.canPublish && noWorkflow\n };\n })\n };\n }\n\n public init(params: IRevisionListPresenterInit): void {\n this.decoratee.init(params);\n }\n}\n\nexport const RevisionListPresenterDecorator = RevisionListPresenter.createDecorator({\n decorator: RevisionListPresenterWithWorkflows,\n dependencies: [WbPageReview]\n});\n"],"names":["RevisionListPresenterWithWorkflows","session","decoratee","makeAutoObservable","vm","noWorkflow","item","params","RevisionListPresenterDecorator","RevisionListPresenter","WbPageReview"],"mappings":";;;AAYA,MAAMA;IACF,YACYC,OAA+B,EAC/BC,SAA0C,CACpD;aAFUD,OAAO,GAAPA;aACAC,SAAS,GAATA;QAERC,mBAAkD,IAAI,EAAE;YACpD,SAAS;YACT,WAAW;QACf;IACJ;IAEA,IAAW,KAAsB;QAC7B,MAAMC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;QAC5B,MAAMC,aAAa,AAAqC,iBAArC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM;QAEnD,OAAO;YACH,GAAGD,EAAE;YACL,WAAWA,GAAG,SAAS,CAAC,GAAG,CAACE,CAAAA,OACjB;oBACH,GAAGA,IAAI;oBACP,YAAYA,KAAK,UAAU,IAAID;gBACnC;QAER;IACJ;IAEO,KAAKE,MAAkC,EAAQ;QAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAACA;IACxB;AACJ;AAEO,MAAMC,iCAAiCC,sBAAsB,eAAe,CAAC;IAChF,WAAWT;IACX,cAAc;QAACU;KAAa;AAChC"}
@@ -0,0 +1,119 @@
1
+ import { beforeEach, describe, expect, it } from "vitest";
2
+ import { Container } from "@webiny/di";
3
+ import { RevisionListPresenter } from "@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js";
4
+ import { WbPageReview } from "../../../features/editorReview/abstractions.js";
5
+ import { createFakeSession } from "../../../testing/createFakeSession.js";
6
+ import { RevisionListPresenterDecorator } from "./RevisionListPresenterDecorator.js";
7
+ import { RevisionListWorkflowsFeature } from "./feature.js";
8
+ const initCalls = [];
9
+ class FakeRevisionListPresenter {
10
+ get vm() {
11
+ return {
12
+ revisions: [
13
+ {
14
+ revision: {
15
+ id: "page-1#0001"
16
+ },
17
+ canCreateFrom: true,
18
+ canEdit: true,
19
+ canPublish: true,
20
+ canUnpublish: false,
21
+ canDelete: true
22
+ },
23
+ {
24
+ revision: {
25
+ id: "page-1#0002"
26
+ },
27
+ canCreateFrom: true,
28
+ canEdit: true,
29
+ canPublish: false,
30
+ canUnpublish: true,
31
+ canDelete: true
32
+ }
33
+ ],
34
+ isLoading: false,
35
+ isMutating: false,
36
+ isEmpty: false
37
+ };
38
+ }
39
+ init(params) {
40
+ initCalls.push(params);
41
+ }
42
+ }
43
+ const FakePresenter = RevisionListPresenter.createImplementation({
44
+ implementation: FakeRevisionListPresenter,
45
+ dependencies: []
46
+ });
47
+ const registerDecorator = (container)=>{
48
+ container.registerDecorator(RevisionListPresenterDecorator);
49
+ };
50
+ const createPresenter = (kind, register = registerDecorator)=>{
51
+ const handle = createFakeSession(kind);
52
+ const container = new Container();
53
+ container.registerInstance(WbPageReview, handle.session);
54
+ container.register(FakePresenter).inSingletonScope();
55
+ register(container);
56
+ return {
57
+ ...handle,
58
+ presenter: container.resolve(RevisionListPresenter)
59
+ };
60
+ };
61
+ describe("RevisionListPresenterDecorator", ()=>{
62
+ beforeEach(()=>{
63
+ initCalls.length = 0;
64
+ });
65
+ it("keeps the base Publish when the page's namespace has no workflow", ()=>{
66
+ const { presenter } = createPresenter("noWorkflow");
67
+ expect(presenter.vm.revisions.map((item)=>item.canPublish)).toEqual([
68
+ true,
69
+ false
70
+ ]);
71
+ });
72
+ const hidden = [
73
+ "loading",
74
+ "failed",
75
+ "none",
76
+ "inProgress",
77
+ "approved",
78
+ "rejected"
79
+ ];
80
+ it.each(hidden)("hides Publish while the review state is %s", (kind)=>{
81
+ const { presenter } = createPresenter(kind);
82
+ expect(presenter.vm.revisions.map((item)=>item.canPublish)).toEqual([
83
+ false,
84
+ false
85
+ ]);
86
+ expect(presenter.vm.revisions.map((item)=>item.canUnpublish)).toEqual([
87
+ false,
88
+ true
89
+ ]);
90
+ });
91
+ it("is registered by the revision list workflows feature", ()=>{
92
+ const { presenter } = createPresenter("none", (container)=>{
93
+ RevisionListWorkflowsFeature.register(container);
94
+ });
95
+ expect(presenter.vm.revisions.map((item)=>item.canPublish)).toEqual([
96
+ false,
97
+ false
98
+ ]);
99
+ });
100
+ it("follows the review state as it changes", ()=>{
101
+ const { presenter, setKind } = createPresenter("loading");
102
+ expect(presenter.vm.revisions[0].canPublish).toBe(false);
103
+ setKind("noWorkflow");
104
+ expect(presenter.vm.revisions[0].canPublish).toBe(true);
105
+ });
106
+ it("passes init to the base presenter", ()=>{
107
+ const { presenter } = createPresenter("noWorkflow");
108
+ presenter.init({
109
+ entryId: "page-1"
110
+ });
111
+ expect(initCalls).toEqual([
112
+ {
113
+ entryId: "page-1"
114
+ }
115
+ ]);
116
+ });
117
+ });
118
+
119
+ //# sourceMappingURL=RevisionListPresenterDecorator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/RevisionList/RevisionListPresenterDecorator.test.js","sources":["../../../../src/presentation/page/RevisionList/RevisionListPresenterDecorator.test.ts"],"sourcesContent":["import { beforeEach } from \"vitest\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { Container } from \"@webiny/di\";\nimport { RevisionListPresenter } from \"@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js\";\nimport type { IRevisionListVm } from \"@webiny/app-website-builder/presentation/pages/RevisionList/abstractions.js\";\nimport type { PageRevision } from \"@webiny/app-website-builder/domain/PageRevision/index.js\";\nimport { WbPageReview } from \"~/features/editorReview/abstractions.js\";\nimport { createFakeSession } from \"~/testing/createFakeSession.js\";\nimport type { FakeReviewKind } from \"~/testing/createFakeVm.js\";\nimport { RevisionListPresenterDecorator } from \"./RevisionListPresenterDecorator.js\";\nimport { RevisionListWorkflowsFeature } from \"./feature.js\";\n\nconst initCalls: RevisionListPresenter.Init[] = [];\n\nclass FakeRevisionListPresenter implements RevisionListPresenter.Interface {\n public get vm(): IRevisionListVm {\n return {\n revisions: [\n {\n revision: { id: \"page-1#0001\" } as PageRevision,\n canCreateFrom: true,\n canEdit: true,\n canPublish: true,\n canUnpublish: false,\n canDelete: true\n },\n {\n revision: { id: \"page-1#0002\" } as PageRevision,\n canCreateFrom: true,\n canEdit: true,\n canPublish: false,\n canUnpublish: true,\n canDelete: true\n }\n ],\n isLoading: false,\n isMutating: false,\n isEmpty: false\n };\n }\n\n public init(params: RevisionListPresenter.Init): void {\n initCalls.push(params);\n }\n}\n\nconst FakePresenter = RevisionListPresenter.createImplementation({\n implementation: FakeRevisionListPresenter,\n dependencies: []\n});\n\nconst registerDecorator = (container: Container): void => {\n container.registerDecorator(RevisionListPresenterDecorator);\n};\n\nconst createPresenter = (\n kind: FakeReviewKind,\n register: (container: Container) => void = registerDecorator\n) => {\n const handle = createFakeSession(kind);\n const container = new Container();\n container.registerInstance(WbPageReview, handle.session);\n container.register(FakePresenter).inSingletonScope();\n register(container);\n return { ...handle, presenter: container.resolve(RevisionListPresenter) };\n};\n\ndescribe(\"RevisionListPresenterDecorator\", () => {\n beforeEach(() => {\n initCalls.length = 0;\n });\n\n it(\"keeps the base Publish when the page's namespace has no workflow\", () => {\n const { presenter } = createPresenter(\"noWorkflow\");\n\n expect(presenter.vm.revisions.map(item => item.canPublish)).toEqual([true, false]);\n });\n\n const hidden: FakeReviewKind[] = [\n \"loading\",\n \"failed\",\n \"none\",\n \"inProgress\",\n \"approved\",\n \"rejected\"\n ];\n it.each(hidden)(\"hides Publish while the review state is %s\", kind => {\n const { presenter } = createPresenter(kind);\n\n expect(presenter.vm.revisions.map(item => item.canPublish)).toEqual([false, false]);\n expect(presenter.vm.revisions.map(item => item.canUnpublish)).toEqual([false, true]);\n });\n\n it(\"is registered by the revision list workflows feature\", () => {\n const { presenter } = createPresenter(\"none\", container => {\n RevisionListWorkflowsFeature.register(container);\n });\n\n expect(presenter.vm.revisions.map(item => item.canPublish)).toEqual([false, false]);\n });\n\n it(\"follows the review state as it changes\", () => {\n const { presenter, setKind } = createPresenter(\"loading\");\n expect(presenter.vm.revisions[0].canPublish).toBe(false);\n\n setKind(\"noWorkflow\");\n\n expect(presenter.vm.revisions[0].canPublish).toBe(true);\n });\n\n it(\"passes init to the base presenter\", () => {\n const { presenter } = createPresenter(\"noWorkflow\");\n\n presenter.init({ entryId: \"page-1\" });\n\n expect(initCalls).toEqual([{ entryId: \"page-1\" }]);\n });\n});\n"],"names":["initCalls","FakeRevisionListPresenter","params","FakePresenter","RevisionListPresenter","registerDecorator","container","RevisionListPresenterDecorator","createPresenter","kind","register","handle","createFakeSession","Container","WbPageReview","describe","beforeEach","it","presenter","expect","item","hidden","RevisionListWorkflowsFeature","setKind"],"mappings":";;;;;;;AAcA,MAAMA,YAA0C,EAAE;AAElD,MAAMC;IACF,IAAW,KAAsB;QAC7B,OAAO;YACH,WAAW;gBACP;oBACI,UAAU;wBAAE,IAAI;oBAAc;oBAC9B,eAAe;oBACf,SAAS;oBACT,YAAY;oBACZ,cAAc;oBACd,WAAW;gBACf;gBACA;oBACI,UAAU;wBAAE,IAAI;oBAAc;oBAC9B,eAAe;oBACf,SAAS;oBACT,YAAY;oBACZ,cAAc;oBACd,WAAW;gBACf;aACH;YACD,WAAW;YACX,YAAY;YACZ,SAAS;QACb;IACJ;IAEO,KAAKC,MAAkC,EAAQ;QAClDF,UAAU,IAAI,CAACE;IACnB;AACJ;AAEA,MAAMC,gBAAgBC,sBAAsB,oBAAoB,CAAC;IAC7D,gBAAgBH;IAChB,cAAc,EAAE;AACpB;AAEA,MAAMI,oBAAoB,CAACC;IACvBA,UAAU,iBAAiB,CAACC;AAChC;AAEA,MAAMC,kBAAkB,CACpBC,MACAC,WAA2CL,iBAAiB;IAE5D,MAAMM,SAASC,kBAAkBH;IACjC,MAAMH,YAAY,IAAIO;IACtBP,UAAU,gBAAgB,CAACQ,cAAcH,OAAO,OAAO;IACvDL,UAAU,QAAQ,CAACH,eAAe,gBAAgB;IAClDO,SAASJ;IACT,OAAO;QAAE,GAAGK,MAAM;QAAE,WAAWL,UAAU,OAAO,CAACF;IAAuB;AAC5E;AAEAW,SAAS,kCAAkC;IACvCC,WAAW;QACPhB,UAAU,MAAM,GAAG;IACvB;IAEAiB,GAAG,oEAAoE;QACnE,MAAM,EAAEC,SAAS,EAAE,GAAGV,gBAAgB;QAEtCW,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAACE,CAAAA,OAAQA,KAAK,UAAU,GAAG,OAAO,CAAC;YAAC;YAAM;SAAM;IACrF;IAEA,MAAMC,SAA2B;QAC7B;QACA;QACA;QACA;QACA;QACA;KACH;IACDJ,GAAG,IAAI,CAACI,QAAQ,8CAA8CZ,CAAAA;QAC1D,MAAM,EAAES,SAAS,EAAE,GAAGV,gBAAgBC;QAEtCU,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAACE,CAAAA,OAAQA,KAAK,UAAU,GAAG,OAAO,CAAC;YAAC;YAAO;SAAM;QAClFD,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAACE,CAAAA,OAAQA,KAAK,YAAY,GAAG,OAAO,CAAC;YAAC;YAAO;SAAK;IACvF;IAEAH,GAAG,wDAAwD;QACvD,MAAM,EAAEC,SAAS,EAAE,GAAGV,gBAAgB,QAAQF,CAAAA;YAC1CgB,6BAA6B,QAAQ,CAAChB;QAC1C;QAEAa,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAACE,CAAAA,OAAQA,KAAK,UAAU,GAAG,OAAO,CAAC;YAAC;YAAO;SAAM;IACtF;IAEAH,GAAG,0CAA0C;QACzC,MAAM,EAAEC,SAAS,EAAEK,OAAO,EAAE,GAAGf,gBAAgB;QAC/CW,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;QAElDK,QAAQ;QAERJ,OAAOD,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;IACtD;IAEAD,GAAG,qCAAqC;QACpC,MAAM,EAAEC,SAAS,EAAE,GAAGV,gBAAgB;QAEtCU,UAAU,IAAI,CAAC;YAAE,SAAS;QAAS;QAEnCC,OAAOnB,WAAW,OAAO,CAAC;YAAC;gBAAE,SAAS;YAAS;SAAE;IACrD;AACJ"}
@@ -0,0 +1 @@
1
+ export declare const RevisionListWorkflowsFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { RevisionListPresenterDecorator } from "./RevisionListPresenterDecorator.js";
3
+ const RevisionListWorkflowsFeature = createFeature({
4
+ name: "RevisionListWorkflows",
5
+ register (container) {
6
+ container.registerDecorator(RevisionListPresenterDecorator);
7
+ }
8
+ });
9
+ export { RevisionListWorkflowsFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/RevisionList/feature.js","sources":["../../../../src/presentation/page/RevisionList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { RevisionListPresenterDecorator } from \"./RevisionListPresenterDecorator.js\";\n\nexport const RevisionListWorkflowsFeature = createFeature({\n name: \"RevisionListWorkflows\",\n register(container) {\n container.registerDecorator(RevisionListPresenterDecorator);\n }\n});\n"],"names":["RevisionListWorkflowsFeature","createFeature","container","RevisionListPresenterDecorator"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,iBAAiB,CAACC;IAChC;AACJ"}
@@ -0,0 +1 @@
1
+ export declare const WB_REVIEW_PAGE_SELECTION = "system {\n workflow {\n workflowId reviewState stepId stepName stepState\n }\n}";
@@ -0,0 +1,9 @@
1
+ import { REVIEW_SYSTEM_WORKFLOW_SELECTION } from "@webiny/app-workflows/review/gateway/reviewFields.js";
2
+ const WB_REVIEW_PAGE_SELECTION = `system {
3
+ workflow {
4
+ ${REVIEW_SYSTEM_WORKFLOW_SELECTION}
5
+ }
6
+ }`;
7
+ export { WB_REVIEW_PAGE_SELECTION };
8
+
9
+ //# sourceMappingURL=wbReviewPageSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/wbReviewPageSelection.js","sources":["../../../src/presentation/page/wbReviewPageSelection.ts"],"sourcesContent":["import { REVIEW_SYSTEM_WORKFLOW_SELECTION } from \"@webiny/app-workflows/review/gateway/reviewFields.js\";\n\nexport const WB_REVIEW_PAGE_SELECTION = `system {\n workflow {\n ${REVIEW_SYSTEM_WORKFLOW_SELECTION}\n }\n}`;\n"],"names":["WB_REVIEW_PAGE_SELECTION","REVIEW_SYSTEM_WORKFLOW_SELECTION"],"mappings":";AAEO,MAAMA,2BAA2B,CAAC;;QAEjC,EAAEC,iCAAiC;;CAE1C,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,162 @@
1
+ import react from "react";
2
+ import { cleanup, render, screen, waitFor } from "@testing-library/react";
3
+ import { afterEach, describe, expect, it, vi } from "vitest";
4
+ import { Container } from "@webiny/di";
5
+ import { MainGraphQLClient } from "@webiny/app/features/mainGraphQLClient/abstractions.js";
6
+ import { InternalPageEditorConfig, PageEditorConfig } from "@webiny/app-website-builder/presentation/pages/PageEditor/PageEditorConfig.js";
7
+ import { TargetReviewPresenter } from "@webiny/app-workflows/review/presentation/targetReview/abstractions.js";
8
+ import { WbEditorHarness } from "./testing/WbEditorHarness.js";
9
+ import { createFakeSession } from "./testing/createFakeSession.js";
10
+ import { createPageEditor } from "./testing/createPageEditor.js";
11
+ import { registerPageContent } from "./testing/registerPageContent.js";
12
+ import { WebsiteBuilderWorkflows } from "./index.js";
13
+ const flags = vi.hoisted(()=>({
14
+ enabled: true
15
+ }));
16
+ vi.mock("@webiny/app-admin", async (importOriginal)=>{
17
+ const actual = await importOriginal();
18
+ return {
19
+ ...actual,
20
+ useFeatureFlags: ()=>({
21
+ isEnabled: ()=>flags.enabled
22
+ })
23
+ };
24
+ });
25
+ vi.mock("~/Routes/index.js", ()=>({
26
+ WebsiteBuilderWorkflowsMenu: ()=>null
27
+ }));
28
+ vi.mock("~/Components/PagesList/index.js", ()=>({
29
+ PagesList: ()=>null
30
+ }));
31
+ vi.mock("~/Components/ContentReviews/WbContentReviews.js", ()=>({
32
+ WbContentReviews: ()=>null
33
+ }));
34
+ vi.mock("@webiny/icons/publish.svg", ()=>({
35
+ ReactComponent: ()=>null
36
+ }));
37
+ vi.mock("@webiny/app-website-builder/presentation/pages/PageEditor/TopBar/PublishButton.js", async ()=>{
38
+ const React = await import("react");
39
+ const PublishButton = ()=>React.createElement("button", {
40
+ "data-testid": "enabled-publish"
41
+ }, "Publish");
42
+ return {
43
+ PublishButton
44
+ };
45
+ });
46
+ vi.mock("@webiny/app-workflows/review/presentation/targetReview/components/ReviewTooltip.js", async ()=>{
47
+ const React = await import("react");
48
+ const ReviewTooltip = (props)=>{
49
+ const reason = props.presenter.vm.publishDisabledReason ?? "";
50
+ return React.createElement("span", {
51
+ "data-testid": "review-tooltip",
52
+ "data-reason": reason
53
+ }, props.children("tooltip-description"));
54
+ };
55
+ return {
56
+ ReviewTooltip
57
+ };
58
+ });
59
+ vi.mock("@webiny/app-website-builder/presentation/security/HasPermission.js", async ()=>{
60
+ const React = await import("react");
61
+ const HasPermission = (props)=>React.createElement(React.Fragment, null, props.children);
62
+ return {
63
+ HasPermission
64
+ };
65
+ });
66
+ vi.mock("@webiny/app-website-builder/BaseEditor/config/Layout.js", async ()=>{
67
+ const React = await import("react");
68
+ const { makeDecoratable } = await import("@webiny/react-composition");
69
+ const Layout = makeDecoratable("EditorLayout", ()=>React.createElement("div", {
70
+ "data-testid": "base-layout"
71
+ }));
72
+ return {
73
+ Layout
74
+ };
75
+ });
76
+ const { Ui: Ui } = PageEditorConfig;
77
+ const mountRoot = (enabled, kind = "inProgress")=>{
78
+ flags.enabled = enabled;
79
+ const handle = createFakeSession(kind);
80
+ const container = new Container();
81
+ container.registerInstance(TargetReviewPresenter, handle.presenter);
82
+ container.registerInstance(MainGraphQLClient, {
83
+ execute: vi.fn()
84
+ });
85
+ registerPageContent(container);
86
+ const editor = createPageEditor("draft");
87
+ render(/*#__PURE__*/ react.createElement(WbEditorHarness, {
88
+ container: container,
89
+ editor: editor,
90
+ groups: [
91
+ "left",
92
+ "actions"
93
+ ]
94
+ }, /*#__PURE__*/ react.createElement(WebsiteBuilderWorkflows, null), /*#__PURE__*/ react.createElement(Ui.Layout, null), /*#__PURE__*/ react.createElement(InternalPageEditorConfig, null, /*#__PURE__*/ react.createElement(Ui.TopBar.Action, {
95
+ name: "sentinel",
96
+ element: /*#__PURE__*/ react.createElement("span", {
97
+ "data-testid": "sentinel"
98
+ })
99
+ }), /*#__PURE__*/ react.createElement(Ui.IsNotReadOnly, null, /*#__PURE__*/ react.createElement(Ui.TopBar.Action, {
100
+ name: "buttonPublish",
101
+ element: /*#__PURE__*/ react.createElement("span", {
102
+ "data-testid": "base-publish"
103
+ })
104
+ })), /*#__PURE__*/ react.createElement(Ui.TopBar.Action, {
105
+ name: "buttonNewRevision",
106
+ element: /*#__PURE__*/ react.createElement("span", {
107
+ "data-testid": "new-revision"
108
+ })
109
+ }), /*#__PURE__*/ react.createElement(Ui.TopBar.Element, {
110
+ group: "left",
111
+ name: "autoSave",
112
+ element: /*#__PURE__*/ react.createElement("span", {
113
+ "data-testid": "autosave"
114
+ })
115
+ }))));
116
+ return handle;
117
+ };
118
+ describe("Website Builder publish and autosave rules from the composition root", ()=>{
119
+ afterEach(()=>{
120
+ cleanup();
121
+ });
122
+ it("flag on: a review in progress hides the base Publish, shows a disabled one and stops autosave", async ()=>{
123
+ mountRoot(true);
124
+ await screen.findByTestId("sentinel");
125
+ await waitFor(()=>{
126
+ expect(screen.queryAllByTestId("base-publish")).toHaveLength(0);
127
+ expect(screen.queryAllByTestId("autosave")).toHaveLength(0);
128
+ const disabled = document.querySelectorAll("button[aria-disabled='true']");
129
+ expect(disabled).toHaveLength(1);
130
+ });
131
+ });
132
+ it("flag off: the base Publish and autosave are untouched and no workflows Publish exists", async ()=>{
133
+ mountRoot(false);
134
+ await screen.findByTestId("sentinel");
135
+ expect(screen.queryAllByTestId("base-publish")).toHaveLength(1);
136
+ expect(screen.queryAllByTestId("autosave")).toHaveLength(1);
137
+ expect(document.querySelectorAll("button[aria-disabled='true']")).toHaveLength(0);
138
+ expect(screen.queryAllByTestId("enabled-publish")).toHaveLength(0);
139
+ });
140
+ it("flag on: New Revision is hidden while a review is in progress", async ()=>{
141
+ mountRoot(true, "inProgress");
142
+ await screen.findByTestId("sentinel");
143
+ await waitFor(()=>{
144
+ expect(screen.queryAllByTestId("autosave")).toHaveLength(0);
145
+ });
146
+ expect(screen.queryAllByTestId("new-revision")).toHaveLength(0);
147
+ });
148
+ it("flag on: New Revision is shown for a rejected review", async ()=>{
149
+ mountRoot(true, "rejected");
150
+ await screen.findByTestId("sentinel");
151
+ await waitFor(()=>{
152
+ expect(screen.queryAllByTestId("new-revision")).toHaveLength(1);
153
+ });
154
+ });
155
+ it("flag off: New Revision is untouched", async ()=>{
156
+ mountRoot(false, "inProgress");
157
+ await screen.findByTestId("sentinel");
158
+ expect(screen.queryAllByTestId("new-revision")).toHaveLength(1);
159
+ });
160
+ });
161
+
162
+ //# sourceMappingURL=publishAutosave.wiring.test.js.map