@webiny/app-headless-cms-workflows 0.0.0-unstable.0156a4c312

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.d.ts +2 -0
  2. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js +43 -0
  3. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.js.map +1 -0
  4. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.d.ts +1 -0
  5. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js +118 -0
  6. package/Components/CmsEntriesList/CmsReviewMoveEntryAction.test.js.map +1 -0
  7. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.d.ts +2 -0
  8. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js +22 -0
  9. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js.map +1 -0
  10. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.d.ts +1 -0
  11. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js +98 -0
  12. package/Components/CmsEntriesList/CmsReviewScheduleEntryAction.test.js.map +1 -0
  13. package/Components/ContentEntryForm/CmsEntryReviewBar.d.ts +2 -0
  14. package/Components/ContentEntryForm/CmsEntryReviewBar.js +32 -0
  15. package/Components/ContentEntryForm/CmsEntryReviewBar.js.map +1 -0
  16. package/Components/ContentEntryForm/CmsEntryReviewBar.test.d.ts +1 -0
  17. package/Components/ContentEntryForm/CmsEntryReviewBar.test.js +128 -0
  18. package/Components/ContentEntryForm/CmsEntryReviewBar.test.js.map +1 -0
  19. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.d.ts +2 -0
  20. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js +46 -0
  21. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.js.map +1 -0
  22. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.d.ts +1 -0
  23. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js +222 -0
  24. package/Components/ContentEntryForm/CmsEntryReviewBlockedActions.test.js.map +1 -0
  25. package/Components/ContentEntryForm/CmsEntryReviewFormLock.d.ts +2 -0
  26. package/Components/ContentEntryForm/CmsEntryReviewFormLock.js +32 -0
  27. package/Components/ContentEntryForm/CmsEntryReviewFormLock.js.map +1 -0
  28. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.d.ts +1 -0
  29. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js +94 -0
  30. package/Components/ContentEntryForm/CmsEntryReviewFormLock.test.js.map +1 -0
  31. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.d.ts +2 -0
  32. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js +56 -0
  33. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.js.map +1 -0
  34. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.d.ts +1 -0
  35. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js +186 -0
  36. package/Components/ContentEntryForm/CmsEntryReviewNewRevision.test.js.map +1 -0
  37. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.d.ts +2 -0
  38. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js +26 -0
  39. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.js.map +1 -0
  40. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.d.ts +1 -0
  41. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js +78 -0
  42. package/Components/ContentEntryForm/CmsEntryReviewScheduleMenuItem.test.js.map +1 -0
  43. package/Components/ContentEntryForm/getModelFieldLabels.d.ts +3 -0
  44. package/Components/ContentEntryForm/getModelFieldLabels.js +8 -0
  45. package/Components/ContentEntryForm/getModelFieldLabels.js.map +1 -0
  46. package/Components/ContentEntryForm/index.d.ts +5 -0
  47. package/Components/ContentEntryForm/index.js +5 -0
  48. package/Components/ContentReviews/CmsContentReviews.d.ts +2 -0
  49. package/Components/ContentReviews/CmsContentReviews.js +11 -0
  50. package/Components/ContentReviews/CmsContentReviews.js.map +1 -0
  51. package/Components/ContentReviews/CmsContentReviews.test.d.ts +1 -0
  52. package/Components/ContentReviews/CmsContentReviews.test.js +214 -0
  53. package/Components/ContentReviews/CmsContentReviews.test.js.map +1 -0
  54. package/Components/ContentReviews/CmsContentReviewsMount.d.ts +4 -0
  55. package/Components/ContentReviews/CmsContentReviewsMount.js +44 -0
  56. package/Components/ContentReviews/CmsContentReviewsMount.js.map +1 -0
  57. package/Components/ContentReviews/CmsContentReviewsSidebarItem.d.ts +2 -0
  58. package/Components/ContentReviews/CmsContentReviewsSidebarItem.js +20 -0
  59. package/Components/ContentReviews/CmsContentReviewsSidebarItem.js.map +1 -0
  60. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.d.ts +1 -0
  61. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js +83 -0
  62. package/Components/ContentReviews/CmsContentReviewsSidebarItem.test.js.map +1 -0
  63. package/Components/ModelDelete/ModelBoundToWorkflowErrorData.d.ts +8 -0
  64. package/Components/ModelDelete/ModelBoundToWorkflowErrorData.js +0 -0
  65. package/Components/ModelDelete/ModelDeleteWorkflowCopy.d.ts +10 -0
  66. package/Components/ModelDelete/ModelDeleteWorkflowCopy.js +0 -0
  67. package/Components/ModelDelete/ModelDeleteWorkflowError.d.ts +2 -0
  68. package/Components/ModelDelete/ModelDeleteWorkflowError.js +34 -0
  69. package/Components/ModelDelete/ModelDeleteWorkflowError.js.map +1 -0
  70. package/Components/ModelDelete/ModelDeleteWorkflowError.test.d.ts +1 -0
  71. package/Components/ModelDelete/ModelDeleteWorkflowError.test.js +73 -0
  72. package/Components/ModelDelete/ModelDeleteWorkflowError.test.js.map +1 -0
  73. package/Components/ModelDelete/getModelDeleteWorkflowCopy.d.ts +3 -0
  74. package/Components/ModelDelete/getModelDeleteWorkflowCopy.js +17 -0
  75. package/Components/ModelDelete/getModelDeleteWorkflowCopy.js.map +1 -0
  76. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.d.ts +1 -0
  77. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js +28 -0
  78. package/Components/ModelDelete/getModelDeleteWorkflowCopy.test.js.map +1 -0
  79. package/Components/ignoreAction.d.ts +1 -0
  80. package/Components/ignoreAction.js +4 -0
  81. package/Components/ignoreAction.js.map +1 -0
  82. package/LICENSE +21 -0
  83. package/README.md +11 -0
  84. package/Routes/CmsWorkflowEditor.d.ts +2 -0
  85. package/Routes/CmsWorkflowEditor.js +23 -0
  86. package/Routes/CmsWorkflowEditor.js.map +1 -0
  87. package/Routes/CmsWorkflowEditor.test.d.ts +1 -0
  88. package/Routes/CmsWorkflowEditor.test.js +141 -0
  89. package/Routes/CmsWorkflowEditor.test.js.map +1 -0
  90. package/Routes/index.d.ts +1 -0
  91. package/Routes/index.js +1 -0
  92. package/features/cache/CmsReviewCacheSyncHandler.d.ts +8 -0
  93. package/features/cache/CmsReviewCacheSyncHandler.js +14 -0
  94. package/features/cache/CmsReviewCacheSyncHandler.js.map +1 -0
  95. package/features/cache/CmsReviewCacheWriter.d.ts +14 -0
  96. package/features/cache/CmsReviewCacheWriter.js +39 -0
  97. package/features/cache/CmsReviewCacheWriter.js.map +1 -0
  98. package/features/cache/CmsReviewCacheWriter.test.d.ts +1 -0
  99. package/features/cache/CmsReviewCacheWriter.test.js +207 -0
  100. package/features/cache/CmsReviewCacheWriter.test.js.map +1 -0
  101. package/features/cache/CmsReviewEntriesCacheProviderDecorator.d.ts +12 -0
  102. package/features/cache/CmsReviewEntriesCacheProviderDecorator.js +17 -0
  103. package/features/cache/CmsReviewEntriesCacheProviderDecorator.js.map +1 -0
  104. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.d.ts +1 -0
  105. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js +129 -0
  106. package/features/cache/CmsReviewEntriesCacheProviderDecorator.test.js.map +1 -0
  107. package/features/cache/ReviewPreservingEntriesCache.d.ts +18 -0
  108. package/features/cache/ReviewPreservingEntriesCache.js +54 -0
  109. package/features/cache/ReviewPreservingEntriesCache.js.map +1 -0
  110. package/features/cache/abstractions.d.ts +5 -0
  111. package/features/cache/abstractions.js +5 -0
  112. package/features/cache/abstractions.js.map +1 -0
  113. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.d.ts +26 -0
  114. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js +104 -0
  115. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.js.map +1 -0
  116. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.d.ts +1 -0
  117. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js +589 -0
  118. package/features/editorGateway/CmsWorkflowEditorGateway/CmsWorkflowEditorGateway.test.js.map +1 -0
  119. package/features/editorGateway/feature.d.ts +1 -0
  120. package/features/editorGateway/feature.js +11 -0
  121. package/features/editorGateway/feature.js.map +1 -0
  122. package/features/editorGateway/feature.test.d.ts +1 -0
  123. package/features/editorGateway/feature.test.js +272 -0
  124. package/features/editorGateway/feature.test.js.map +1 -0
  125. package/features/editorGateway/graphql/cmsEntryFolderExists.d.ts +1 -0
  126. package/features/editorGateway/graphql/cmsEntryFolderExists.js +16 -0
  127. package/features/editorGateway/graphql/cmsEntryFolderExists.js.map +1 -0
  128. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.d.ts +1 -0
  129. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js +19 -0
  130. package/features/editorGateway/graphql/deleteCmsEntryWorkflow.js.map +1 -0
  131. package/features/editorGateway/graphql/getCmsEntryWorkflow.d.ts +1 -0
  132. package/features/editorGateway/graphql/getCmsEntryWorkflow.js +19 -0
  133. package/features/editorGateway/graphql/getCmsEntryWorkflow.js.map +1 -0
  134. package/features/editorGateway/graphql/inspectCmsEntryRouting.d.ts +1 -0
  135. package/features/editorGateway/graphql/inspectCmsEntryRouting.js +19 -0
  136. package/features/editorGateway/graphql/inspectCmsEntryRouting.js.map +1 -0
  137. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.d.ts +1 -0
  138. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js +29 -0
  139. package/features/editorGateway/graphql/listCmsEntryWorkflowModels.js.map +1 -0
  140. package/features/editorGateway/graphql/storeCmsEntryWorkflow.d.ts +1 -0
  141. package/features/editorGateway/graphql/storeCmsEntryWorkflow.js +19 -0
  142. package/features/editorGateway/graphql/storeCmsEntryWorkflow.js.map +1 -0
  143. package/features/editorMounting/CmsWorkflowEditorAppAdapter.d.ts +25 -0
  144. package/features/editorMounting/CmsWorkflowEditorAppAdapter.js +51 -0
  145. package/features/editorMounting/CmsWorkflowEditorAppAdapter.js.map +1 -0
  146. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.d.ts +1 -0
  147. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js +185 -0
  148. package/features/editorMounting/CmsWorkflowEditorAppAdapter.test.js.map +1 -0
  149. package/features/editorMounting/abstractions.d.ts +5 -0
  150. package/features/editorMounting/abstractions.js +5 -0
  151. package/features/editorMounting/abstractions.js.map +1 -0
  152. package/features/editorMounting/feature.d.ts +3 -0
  153. package/features/editorMounting/feature.js +19 -0
  154. package/features/editorMounting/feature.js.map +1 -0
  155. package/features/editorMounting/feature.test.d.ts +1 -0
  156. package/features/editorMounting/feature.test.js +100 -0
  157. package/features/editorMounting/feature.test.js.map +1 -0
  158. package/features/editorReview/CmsEntryReview.d.ts +8 -0
  159. package/features/editorReview/CmsEntryReview.js +14 -0
  160. package/features/editorReview/CmsEntryReview.js.map +1 -0
  161. package/features/editorReview/abstractions.d.ts +5 -0
  162. package/features/editorReview/abstractions.js +5 -0
  163. package/features/editorReview/abstractions.js.map +1 -0
  164. package/features/editorReview/feature.d.ts +3 -0
  165. package/features/editorReview/feature.js +17 -0
  166. package/features/editorReview/feature.js.map +1 -0
  167. package/features/editorReview/feature.test.d.ts +1 -0
  168. package/features/editorReview/feature.test.js +46 -0
  169. package/features/editorReview/feature.test.js.map +1 -0
  170. package/features/editorReview/useCmsEntryReview.d.ts +2 -0
  171. package/features/editorReview/useCmsEntryReview.js +8 -0
  172. package/features/editorReview/useCmsEntryReview.js.map +1 -0
  173. package/features/feature.d.ts +1 -0
  174. package/features/feature.js +15 -0
  175. package/features/feature.js.map +1 -0
  176. package/features/gateway/CmsReviewChangeMessageHandler.d.ts +8 -0
  177. package/features/gateway/CmsReviewChangeMessageHandler.js +16 -0
  178. package/features/gateway/CmsReviewChangeMessageHandler.js.map +1 -0
  179. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.d.ts +16 -0
  180. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js +39 -0
  181. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.js.map +1 -0
  182. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.d.ts +1 -0
  183. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js +83 -0
  184. package/features/gateway/CmsReviewContentAdapter/CmsReviewContentAdapter.test.js.map +1 -0
  185. package/features/gateway/CmsReviewContentAdapter/abstractions.d.ts +5 -0
  186. package/features/gateway/CmsReviewContentAdapter/abstractions.js +5 -0
  187. package/features/gateway/CmsReviewContentAdapter/abstractions.js.map +1 -0
  188. package/features/gateway/CmsReviewGateway/CmsReviewGateway.d.ts +52 -0
  189. package/features/gateway/CmsReviewGateway/CmsReviewGateway.js +221 -0
  190. package/features/gateway/CmsReviewGateway/CmsReviewGateway.js.map +1 -0
  191. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.d.ts +1 -0
  192. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js +689 -0
  193. package/features/gateway/CmsReviewGateway/CmsReviewGateway.test.js.map +1 -0
  194. package/features/gateway/CmsReviewNotificationHandler.d.ts +8 -0
  195. package/features/gateway/CmsReviewNotificationHandler.js +16 -0
  196. package/features/gateway/CmsReviewNotificationHandler.js.map +1 -0
  197. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.d.ts +8 -0
  198. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js +14 -0
  199. package/features/gateway/CmsReviewRowProvider/CmsReviewRowProvider.js.map +1 -0
  200. package/features/gateway/CmsReviewRowProvider/abstractions.d.ts +5 -0
  201. package/features/gateway/CmsReviewRowProvider/abstractions.js +5 -0
  202. package/features/gateway/CmsReviewRowProvider/abstractions.js.map +1 -0
  203. package/features/gateway/contentReviewsBindings.test.d.ts +1 -0
  204. package/features/gateway/contentReviewsBindings.test.js +125 -0
  205. package/features/gateway/contentReviewsBindings.test.js.map +1 -0
  206. package/features/gateway/feature.d.ts +4 -0
  207. package/features/gateway/feature.js +27 -0
  208. package/features/gateway/feature.js.map +1 -0
  209. package/features/gateway/feature.test.d.ts +1 -0
  210. package/features/gateway/feature.test.js +79 -0
  211. package/features/gateway/feature.test.js.map +1 -0
  212. package/features/gateway/graphql/CmsOperationResponse.d.ts +3 -0
  213. package/features/gateway/graphql/CmsOperationResponse.js +0 -0
  214. package/features/gateway/graphql/approveCmsEntryReviewStep.d.ts +1 -0
  215. package/features/gateway/graphql/approveCmsEntryReviewStep.js +18 -0
  216. package/features/gateway/graphql/approveCmsEntryReviewStep.js.map +1 -0
  217. package/features/gateway/graphql/cancelCmsEntryReview.d.ts +1 -0
  218. package/features/gateway/graphql/cancelCmsEntryReview.js +18 -0
  219. package/features/gateway/graphql/cancelCmsEntryReview.js.map +1 -0
  220. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.d.ts +1 -0
  221. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js +28 -0
  222. package/features/gateway/graphql/cancelCmsEntryReviewsForDelete.js.map +1 -0
  223. package/features/gateway/graphql/getCmsEntryReview.d.ts +1 -0
  224. package/features/gateway/graphql/getCmsEntryReview.js +18 -0
  225. package/features/gateway/graphql/getCmsEntryReview.js.map +1 -0
  226. package/features/gateway/graphql/getCmsEntryReviewStepRun.d.ts +1 -0
  227. package/features/gateway/graphql/getCmsEntryReviewStepRun.js +18 -0
  228. package/features/gateway/graphql/getCmsEntryReviewStepRun.js.map +1 -0
  229. package/features/gateway/graphql/getCmsEntryTargetReview.d.ts +1 -0
  230. package/features/gateway/graphql/getCmsEntryTargetReview.js +18 -0
  231. package/features/gateway/graphql/getCmsEntryTargetReview.js.map +1 -0
  232. package/features/gateway/graphql/listCmsEntryBlockingReviews.d.ts +1 -0
  233. package/features/gateway/graphql/listCmsEntryBlockingReviews.js +18 -0
  234. package/features/gateway/graphql/listCmsEntryBlockingReviews.js.map +1 -0
  235. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.d.ts +1 -0
  236. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js +18 -0
  237. package/features/gateway/graphql/listCmsEntryReviewStepCandidates.js.map +1 -0
  238. package/features/gateway/graphql/listCmsEntryReviews.d.ts +1 -0
  239. package/features/gateway/graphql/listCmsEntryReviews.js +34 -0
  240. package/features/gateway/graphql/listCmsEntryReviews.js.map +1 -0
  241. package/features/gateway/graphql/listCmsEntryStepCandidates.d.ts +1 -0
  242. package/features/gateway/graphql/listCmsEntryStepCandidates.js +28 -0
  243. package/features/gateway/graphql/listCmsEntryStepCandidates.js.map +1 -0
  244. package/features/gateway/graphql/listCmsEntryWorkflows.d.ts +1 -0
  245. package/features/gateway/graphql/listCmsEntryWorkflows.js +18 -0
  246. package/features/gateway/graphql/listCmsEntryWorkflows.js.map +1 -0
  247. package/features/gateway/graphql/reassignCmsEntryReviewStep.d.ts +1 -0
  248. package/features/gateway/graphql/reassignCmsEntryReviewStep.js +18 -0
  249. package/features/gateway/graphql/reassignCmsEntryReviewStep.js.map +1 -0
  250. package/features/gateway/graphql/rejectCmsEntryReviewStep.d.ts +1 -0
  251. package/features/gateway/graphql/rejectCmsEntryReviewStep.js +18 -0
  252. package/features/gateway/graphql/rejectCmsEntryReviewStep.js.map +1 -0
  253. package/features/gateway/graphql/requestCmsEntryReview.d.ts +1 -0
  254. package/features/gateway/graphql/requestCmsEntryReview.js +28 -0
  255. package/features/gateway/graphql/requestCmsEntryReview.js.map +1 -0
  256. package/features/gateway/graphql/restartCmsEntryReviewStep.d.ts +1 -0
  257. package/features/gateway/graphql/restartCmsEntryReviewStep.js +18 -0
  258. package/features/gateway/graphql/restartCmsEntryReviewStep.js.map +1 -0
  259. package/features/gateway/graphql/startCmsEntryReviewStep.d.ts +1 -0
  260. package/features/gateway/graphql/startCmsEntryReviewStep.js +18 -0
  261. package/features/gateway/graphql/startCmsEntryReviewStep.js.map +1 -0
  262. package/features/gateway/graphql/takeOverCmsEntryReviewStep.d.ts +1 -0
  263. package/features/gateway/graphql/takeOverCmsEntryReviewStep.js +22 -0
  264. package/features/gateway/graphql/takeOverCmsEntryReviewStep.js.map +1 -0
  265. package/features/trash/BulkDeletePresenterReviewDecorator.d.ts +20 -0
  266. package/features/trash/BulkDeletePresenterReviewDecorator.js +81 -0
  267. package/features/trash/BulkDeletePresenterReviewDecorator.js.map +1 -0
  268. package/features/trash/BulkDeletePresenterReviewDecorator.test.d.ts +1 -0
  269. package/features/trash/BulkDeletePresenterReviewDecorator.test.js +693 -0
  270. package/features/trash/BulkDeletePresenterReviewDecorator.test.js.map +1 -0
  271. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.d.ts +13 -0
  272. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js +23 -0
  273. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.js.map +1 -0
  274. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.d.ts +1 -0
  275. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js +123 -0
  276. package/features/trash/DeleteEntryRevisionUseCaseReviewDecorator.test.js.map +1 -0
  277. package/features/trash/DeleteEntryUseCaseReviewDecorator.d.ts +13 -0
  278. package/features/trash/DeleteEntryUseCaseReviewDecorator.js +23 -0
  279. package/features/trash/DeleteEntryUseCaseReviewDecorator.js.map +1 -0
  280. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
  281. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js +139 -0
  282. package/features/trash/DeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
  283. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.d.ts +13 -0
  284. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js +23 -0
  285. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.js.map +1 -0
  286. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.d.ts +1 -0
  287. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js +122 -0
  288. package/features/trash/PermanentlyDeleteEntryUseCaseReviewDecorator.test.js.map +1 -0
  289. package/features/trash/feature.d.ts +1 -0
  290. package/features/trash/feature.js +17 -0
  291. package/features/trash/feature.js.map +1 -0
  292. package/features/trash/feature.test.d.ts +1 -0
  293. package/features/trash/feature.test.js +213 -0
  294. package/features/trash/feature.test.js.map +1 -0
  295. package/index.d.ts +2 -0
  296. package/index.editor.test.d.ts +1 -0
  297. package/index.editor.test.js +149 -0
  298. package/index.editor.test.js.map +1 -0
  299. package/index.js +41 -0
  300. package/index.js.map +1 -0
  301. package/index.lists.test.d.ts +1 -0
  302. package/index.lists.test.js +172 -0
  303. package/index.lists.test.js.map +1 -0
  304. package/index.mount.test.d.ts +1 -0
  305. package/index.mount.test.js +49 -0
  306. package/index.mount.test.js.map +1 -0
  307. package/index.test.d.ts +1 -0
  308. package/index.test.js +414 -0
  309. package/index.test.js.map +1 -0
  310. package/package.json +54 -0
  311. package/presentation/CmsEntryContentReloader.d.ts +8 -0
  312. package/presentation/CmsEntryContentReloader.js +20 -0
  313. package/presentation/CmsEntryContentReloader.js.map +1 -0
  314. package/presentation/CmsEntryContentReloader.test.d.ts +1 -0
  315. package/presentation/CmsEntryContentReloader.test.js +118 -0
  316. package/presentation/CmsEntryContentReloader.test.js.map +1 -0
  317. package/presentation/CmsEntryFormPresenterReviewDecorator.d.ts +27 -0
  318. package/presentation/CmsEntryFormPresenterReviewDecorator.js +167 -0
  319. package/presentation/CmsEntryFormPresenterReviewDecorator.js.map +1 -0
  320. package/presentation/CmsEntryFormPresenterReviewDecorator.test.d.ts +1 -0
  321. package/presentation/CmsEntryFormPresenterReviewDecorator.test.js +601 -0
  322. package/presentation/CmsEntryFormPresenterReviewDecorator.test.js.map +1 -0
  323. package/presentation/CmsEntryUnsavedChanges.d.ts +7 -0
  324. package/presentation/CmsEntryUnsavedChanges.js +12 -0
  325. package/presentation/CmsEntryUnsavedChanges.js.map +1 -0
  326. package/presentation/CmsEntryUnsavedChanges.test.d.ts +1 -0
  327. package/presentation/CmsEntryUnsavedChanges.test.js +23 -0
  328. package/presentation/CmsEntryUnsavedChanges.test.js.map +1 -0
  329. package/presentation/CmsReviewFieldSelections.test.d.ts +1 -0
  330. package/presentation/CmsReviewFieldSelections.test.js +27 -0
  331. package/presentation/CmsReviewFieldSelections.test.js.map +1 -0
  332. package/presentation/CmsReviewGetEntryFieldSelection.d.ts +8 -0
  333. package/presentation/CmsReviewGetEntryFieldSelection.js +16 -0
  334. package/presentation/CmsReviewGetEntryFieldSelection.js.map +1 -0
  335. package/presentation/CmsReviewListEntriesFieldSelection.d.ts +8 -0
  336. package/presentation/CmsReviewListEntriesFieldSelection.js +16 -0
  337. package/presentation/CmsReviewListEntriesFieldSelection.js.map +1 -0
  338. package/presentation/CmsReviewTableRowMapperDecorator.d.ts +11 -0
  339. package/presentation/CmsReviewTableRowMapperDecorator.js +24 -0
  340. package/presentation/CmsReviewTableRowMapperDecorator.js.map +1 -0
  341. package/presentation/CmsReviewTableRowMapperDecorator.test.d.ts +1 -0
  342. package/presentation/CmsReviewTableRowMapperDecorator.test.js +120 -0
  343. package/presentation/CmsReviewTableRowMapperDecorator.test.js.map +1 -0
  344. package/presentation/CmsRevisionsListPresenterDecorator.d.ts +24 -0
  345. package/presentation/CmsRevisionsListPresenterDecorator.js +66 -0
  346. package/presentation/CmsRevisionsListPresenterDecorator.js.map +1 -0
  347. package/presentation/CmsRevisionsListPresenterDecorator.test.d.ts +1 -0
  348. package/presentation/CmsRevisionsListPresenterDecorator.test.js +174 -0
  349. package/presentation/CmsRevisionsListPresenterDecorator.test.js.map +1 -0
  350. package/presentation/contentReviews/CmsContentReviewsPresenter.d.ts +28 -0
  351. package/presentation/contentReviews/CmsContentReviewsPresenter.js +103 -0
  352. package/presentation/contentReviews/CmsContentReviewsPresenter.js.map +1 -0
  353. package/presentation/contentReviews/CmsContentReviewsPresenter.test.d.ts +1 -0
  354. package/presentation/contentReviews/CmsContentReviewsPresenter.test.js +238 -0
  355. package/presentation/contentReviews/CmsContentReviewsPresenter.test.js.map +1 -0
  356. package/presentation/contentReviews/abstractions.d.ts +31 -0
  357. package/presentation/contentReviews/abstractions.js +5 -0
  358. package/presentation/contentReviews/abstractions.js.map +1 -0
  359. package/presentation/contentReviews/feature.d.ts +3 -0
  360. package/presentation/contentReviews/feature.js +17 -0
  361. package/presentation/contentReviews/feature.js.map +1 -0
  362. package/presentation/contentReviews/toContentTypes.d.ts +3 -0
  363. package/presentation/contentReviews/toContentTypes.js +14 -0
  364. package/presentation/contentReviews/toContentTypes.js.map +1 -0
  365. package/presentation/contentReviews/toContentTypes.test.d.ts +1 -0
  366. package/presentation/contentReviews/toContentTypes.test.js +20 -0
  367. package/presentation/contentReviews/toContentTypes.test.js.map +1 -0
  368. package/presentation/feature.d.ts +1 -0
  369. package/presentation/feature.js +19 -0
  370. package/presentation/feature.js.map +1 -0
  371. package/presentation/getCmsEntryReviewContext.d.ts +4 -0
  372. package/presentation/getCmsEntryReviewContext.js +12 -0
  373. package/presentation/getCmsEntryReviewContext.js.map +1 -0
  374. package/presentation/getCmsEntryReviewInitParams.d.ts +13 -0
  375. package/presentation/getCmsEntryReviewInitParams.js +18 -0
  376. package/presentation/getCmsEntryReviewInitParams.js.map +1 -0
  377. package/presentation/getCmsEntryReviewInitParams.test.d.ts +1 -0
  378. package/presentation/getCmsEntryReviewInitParams.test.js +69 -0
  379. package/presentation/getCmsEntryReviewInitParams.test.js.map +1 -0
  380. package/routes.d.ts +11 -0
  381. package/routes.js +21 -0
  382. package/routes.js.map +1 -0
  383. package/testing/createEntry.d.ts +3 -0
  384. package/testing/createEntry.js +22 -0
  385. package/testing/createEntry.js.map +1 -0
  386. package/testing/createEntrySession.d.ts +9 -0
  387. package/testing/createEntrySession.js +29 -0
  388. package/testing/createEntrySession.js.map +1 -0
  389. package/testing/createFolder.d.ts +2 -0
  390. package/testing/createFolder.js +13 -0
  391. package/testing/createFolder.js.map +1 -0
  392. package/testing/createFormVm.d.ts +2 -0
  393. package/testing/createFormVm.js +22 -0
  394. package/testing/createFormVm.js.map +1 -0
  395. package/testing/models.d.ts +4 -0
  396. package/testing/models.js +23 -0
  397. package/testing/models.js.map +1 -0
  398. package/testing/renderEditorTree.d.ts +17 -0
  399. package/testing/renderEditorTree.js +93 -0
  400. package/testing/renderEditorTree.js.map +1 -0
  401. package/testing/reviewStates.d.ts +17 -0
  402. package/testing/reviewStates.js +65 -0
  403. package/testing/reviewStates.js.map +1 -0
  404. package/types.d.ts +10 -0
  405. package/types.js +0 -0
  406. package/utils/appName.d.ts +4 -0
  407. package/utils/appName.js +13 -0
  408. package/utils/appName.js.map +1 -0
  409. package/utils/isReviewableModel.d.ts +2 -0
  410. package/utils/isReviewableModel.js +7 -0
  411. package/utils/isReviewableModel.js.map +1 -0
  412. package/utils/renderModelIcon.d.ts +3 -0
  413. package/utils/renderModelIcon.js +19 -0
  414. package/utils/renderModelIcon.js.map +1 -0
  415. package/utils/renderModelIconOrFallback.d.ts +3 -0
  416. package/utils/renderModelIconOrFallback.js +17 -0
  417. package/utils/renderModelIconOrFallback.js.map +1 -0
package/index.js ADDED
@@ -0,0 +1,41 @@
1
+ import react from "react";
2
+ import { RegisterFeature, useFeatureFlags } from "@webiny/app-admin";
3
+ import { CmsWorkflowEditor } from "./Routes/index.js";
4
+ import { CmsEntryReviewBar, CmsEntryReviewBlockedActions, CmsEntryReviewFormLock, CmsEntryReviewNewRevision, CmsEntryReviewScheduleMenuItem } from "./Components/ContentEntryForm/index.js";
5
+ import { CmsContentReviews } from "./Components/ContentReviews/CmsContentReviews.js";
6
+ import { CmsContentReviewsSidebarItem } from "./Components/ContentReviews/CmsContentReviewsSidebarItem.js";
7
+ import { CmsEntryReviewFeature } from "./features/editorReview/feature.js";
8
+ import { CmsReviewMoveEntryAction } from "./Components/CmsEntriesList/CmsReviewMoveEntryAction.js";
9
+ import { CmsReviewScheduleEntryAction } from "./Components/CmsEntriesList/CmsReviewScheduleEntryAction.js";
10
+ import { CmsWorkflowsFeature } from "./presentation/feature.js";
11
+ import { CmsWorkflowsCacheFeature } from "./features/feature.js";
12
+ import { CmsWorkflowEditorMountingFeature } from "./features/editorMounting/feature.js";
13
+ import { CmsReviewFeature } from "./features/gateway/feature.js";
14
+ import { CmsWorkflowEditorFeature } from "./features/editorGateway/feature.js";
15
+ import { CmsContentReviewsPresenterFeature } from "./presentation/contentReviews/feature.js";
16
+ import { CmsReviewTrashFeature } from "./features/trash/feature.js";
17
+ import { ModelDeleteWorkflowError } from "./Components/ModelDelete/ModelDeleteWorkflowError.js";
18
+ const CmsWorkflows = ()=>{
19
+ const featureFlags = useFeatureFlags();
20
+ if (!featureFlags.isEnabled("advancedPublishingWorkflow")) return null;
21
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
22
+ feature: CmsReviewFeature
23
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
24
+ feature: CmsWorkflowEditorFeature
25
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
26
+ feature: CmsContentReviewsPresenterFeature
27
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
28
+ feature: CmsWorkflowsFeature
29
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
30
+ feature: CmsWorkflowsCacheFeature
31
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
32
+ feature: CmsWorkflowEditorMountingFeature
33
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
34
+ feature: CmsEntryReviewFeature
35
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
36
+ feature: CmsReviewTrashFeature
37
+ }), /*#__PURE__*/ react.createElement(CmsContentReviews, null), /*#__PURE__*/ react.createElement(CmsContentReviewsSidebarItem, null), /*#__PURE__*/ react.createElement(CmsWorkflowEditor, null), /*#__PURE__*/ react.createElement(CmsEntryReviewBar, null), /*#__PURE__*/ react.createElement(CmsEntryReviewFormLock, null), /*#__PURE__*/ react.createElement(CmsEntryReviewBlockedActions, null), /*#__PURE__*/ react.createElement(CmsEntryReviewScheduleMenuItem, null), /*#__PURE__*/ react.createElement(CmsEntryReviewNewRevision, null), /*#__PURE__*/ react.createElement(CmsReviewMoveEntryAction, null), /*#__PURE__*/ react.createElement(CmsReviewScheduleEntryAction, null), /*#__PURE__*/ react.createElement(ModelDeleteWorkflowError, null));
38
+ };
39
+ export { CmsWorkflows };
40
+
41
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { RegisterFeature, useFeatureFlags } from \"@webiny/app-admin\";\nimport { CmsWorkflowEditor } from \"~/Routes/index.js\";\nimport { CmsEntryReviewBar } from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntryReviewBlockedActions } from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntryReviewFormLock } from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntryReviewNewRevision } from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntryReviewScheduleMenuItem } from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsContentReviews } from \"~/Components/ContentReviews/CmsContentReviews.js\";\nimport { CmsContentReviewsSidebarItem } from \"~/Components/ContentReviews/CmsContentReviewsSidebarItem.js\";\nimport { CmsEntryReviewFeature } from \"~/features/editorReview/feature.js\";\nimport { CmsReviewMoveEntryAction } from \"~/Components/CmsEntriesList/CmsReviewMoveEntryAction.js\";\nimport { CmsReviewScheduleEntryAction } from \"~/Components/CmsEntriesList/CmsReviewScheduleEntryAction.js\";\nimport { CmsWorkflowsFeature } from \"~/presentation/feature.js\";\nimport { CmsWorkflowsCacheFeature } from \"~/features/feature.js\";\nimport { CmsWorkflowEditorMountingFeature } from \"~/features/editorMounting/feature.js\";\nimport { CmsReviewFeature } from \"~/features/gateway/feature.js\";\nimport { CmsWorkflowEditorFeature } from \"~/features/editorGateway/feature.js\";\nimport { CmsContentReviewsPresenterFeature } from \"~/presentation/contentReviews/feature.js\";\nimport { CmsReviewTrashFeature } from \"~/features/trash/feature.js\";\nimport { ModelDeleteWorkflowError } from \"~/Components/ModelDelete/ModelDeleteWorkflowError.js\";\n\nexport const CmsWorkflows = () => {\n const featureFlags = useFeatureFlags();\n\n if (!featureFlags.isEnabled(\"advancedPublishingWorkflow\")) {\n return null;\n }\n\n return (\n <>\n <RegisterFeature feature={CmsReviewFeature} />\n <RegisterFeature feature={CmsWorkflowEditorFeature} />\n <RegisterFeature feature={CmsContentReviewsPresenterFeature} />\n <RegisterFeature feature={CmsWorkflowsFeature} />\n <RegisterFeature feature={CmsWorkflowsCacheFeature} />\n <RegisterFeature feature={CmsWorkflowEditorMountingFeature} />\n <RegisterFeature feature={CmsEntryReviewFeature} />\n <RegisterFeature feature={CmsReviewTrashFeature} />\n <CmsContentReviews />\n <CmsContentReviewsSidebarItem />\n <CmsWorkflowEditor />\n <CmsEntryReviewBar />\n <CmsEntryReviewFormLock />\n <CmsEntryReviewBlockedActions />\n <CmsEntryReviewScheduleMenuItem />\n <CmsEntryReviewNewRevision />\n <CmsReviewMoveEntryAction />\n <CmsReviewScheduleEntryAction />\n <ModelDeleteWorkflowError />\n </>\n );\n};\n"],"names":["CmsWorkflows","featureFlags","useFeatureFlags","RegisterFeature","CmsReviewFeature","CmsWorkflowEditorFeature","CmsContentReviewsPresenterFeature","CmsWorkflowsFeature","CmsWorkflowsCacheFeature","CmsWorkflowEditorMountingFeature","CmsEntryReviewFeature","CmsReviewTrashFeature","CmsContentReviews","CmsContentReviewsSidebarItem","CmsWorkflowEditor","CmsEntryReviewBar","CmsEntryReviewFormLock","CmsEntryReviewBlockedActions","CmsEntryReviewScheduleMenuItem","CmsEntryReviewNewRevision","CmsReviewMoveEntryAction","CmsReviewScheduleEntryAction","ModelDeleteWorkflowError"],"mappings":";;;;;;;;;;;;;;;;;AAsBO,MAAMA,eAAe;IACxB,MAAMC,eAAeC;IAErB,IAAI,CAACD,aAAa,SAAS,CAAC,+BACxB,OAAO;IAGX,OAAO,WAAP,GACI,wDACI,oBAACE,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACC,mBAAiBA,OAAAA,WAAAA,GAClB,oBAACC,8BAA4BA,OAAAA,WAAAA,GAC7B,oBAACC,mBAAiBA,OAAAA,WAAAA,GAClB,oBAACC,mBAAiBA,OAAAA,WAAAA,GAClB,oBAACC,wBAAsBA,OAAAA,WAAAA,GACvB,oBAACC,8BAA4BA,OAAAA,WAAAA,GAC7B,oBAACC,gCAA8BA,OAAAA,WAAAA,GAC/B,oBAACC,2BAAyBA,OAAAA,WAAAA,GAC1B,oBAACC,0BAAwBA,OAAAA,WAAAA,GACzB,oBAACC,8BAA4BA,OAAAA,WAAAA,GAC7B,oBAACC,0BAAwBA;AAGrC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,172 @@
1
+ import react from "react";
2
+ import { describe, expect, it, vi } from "vitest";
3
+ import { render, screen } from "@testing-library/react";
4
+ import { Container } from "@webiny/di";
5
+ import { CompositionProvider } from "@webiny/react-composition";
6
+ import { DiContainerProvider } from "@webiny/app/shared/di/DiContainerProvider.js";
7
+ import { FeatureFlagsService } from "@webiny/app-admin/features/featureFlags/abstractions.js";
8
+ import { FeatureFlags } from "@webiny/feature-flags";
9
+ import { AdminUiProvider } from "@webiny/admin-ui";
10
+ import { ModelContext } from "@webiny/app-headless-cms/admin/components/ModelProvider/index.js";
11
+ import { ContentEntryEditorConfig, ContentEntryEditorWithConfig } from "@webiny/app-headless-cms/admin/config/contentEntries/index.js";
12
+ import { EntryProvider } from "@webiny/app-headless-cms/admin/hooks/useEntry.js";
13
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
14
+ import { ContentEntriesCacheProvider as ContentEntriesCacheProvider_js_ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/ContentEntriesCacheProvider.js";
15
+ import { ContentEntryListConfig, GetEntryGraphQLFieldSelection, ListEntriesGraphQLFieldSelection, TableRowMapper } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
16
+ import { toSystemWorkflow } from "@webiny/app-workflows/review/domain/toSystemWorkflow.js";
17
+ import { ReviewChangedEvent } from "@webiny/app-workflows/review/events/ReviewChangedEvent.js";
18
+ import { ReviewChangedHandler } from "@webiny/app-workflows/review/events/ReviewChangedHandler.js";
19
+ import { createReview } from "@webiny/app-workflows/review/testing/reviewFixtures.js";
20
+ import { CmsWorkflows } from "./index.js";
21
+ import { MODEL } from "./testing/models.js";
22
+ vi.mock("@webiny/app-aco", async (importOriginal)=>{
23
+ const actual = await importOriginal();
24
+ const React = await import("react");
25
+ const Action = Object.assign((props)=>React.createElement("div", {
26
+ "data-action": props.name
27
+ }, props.element), {
28
+ OptionsMenuItem: ()=>null,
29
+ OptionsMenuLink: ()=>null
30
+ });
31
+ return {
32
+ ...actual,
33
+ AcoConfig: {
34
+ ...actual.AcoConfig,
35
+ Record: {
36
+ ...actual.AcoConfig.Record,
37
+ Action
38
+ }
39
+ }
40
+ };
41
+ });
42
+ vi.mock("@webiny/app-admin", async (importOriginal)=>{
43
+ const actual = await importOriginal();
44
+ const React = await import("react");
45
+ return {
46
+ ...actual,
47
+ OptionsMenuItem: (props)=>React.createElement("button", {
48
+ "data-testid": "blocked-move"
49
+ }, props.label)
50
+ };
51
+ });
52
+ vi.mock("~/Routes/index.js", ()=>({
53
+ CmsWorkflowEditor: ()=>null
54
+ }));
55
+ vi.mock("~/Components/ContentReviews/CmsContentReviews.js", ()=>({
56
+ CmsContentReviews: ()=>null
57
+ }));
58
+ vi.mock("~/Components/ContentReviews/CmsContentReviewsSidebarItem.js", ()=>({
59
+ CmsContentReviewsSidebarItem: ()=>null
60
+ }));
61
+ class FakeRowMapper {
62
+ fromEntry(entry) {
63
+ return {
64
+ id: entry.id,
65
+ $selectable: true,
66
+ $type: "RECORD",
67
+ data: entry
68
+ };
69
+ }
70
+ }
71
+ const BaseRowMapper = TableRowMapper.createImplementation({
72
+ implementation: FakeRowMapper,
73
+ dependencies: []
74
+ });
75
+ const EntryAction = ContentEntryListConfig.Browser.Entry.Action;
76
+ function createEntry(reviewState) {
77
+ const workflow = null === reviewState ? null : {
78
+ reviewState
79
+ };
80
+ return {
81
+ id: "entry-1#0001",
82
+ entryId: "entry-1",
83
+ meta: {
84
+ title: "Hello",
85
+ status: "draft",
86
+ version: 1,
87
+ locked: false,
88
+ system: {
89
+ workflow
90
+ }
91
+ }
92
+ };
93
+ }
94
+ function mountRoot(isEnabled) {
95
+ const flagsService = {
96
+ getFlags: ()=>new FeatureFlags({
97
+ advancedPublishingWorkflow: isEnabled
98
+ }),
99
+ isLoaded: ()=>true,
100
+ loadFlags: async ()=>void 0
101
+ };
102
+ const container = new Container();
103
+ container.registerInstance(FeatureFlagsService, flagsService);
104
+ container.register(ContentEntriesCacheProvider_js_ContentEntriesCacheProvider).inSingletonScope();
105
+ container.register(BaseRowMapper);
106
+ render(/*#__PURE__*/ react.createElement(AdminUiProvider, null, /*#__PURE__*/ react.createElement(CompositionProvider, null, /*#__PURE__*/ react.createElement(DiContainerProvider, {
107
+ container: container
108
+ }, /*#__PURE__*/ react.createElement(ModelContext.Provider, {
109
+ value: MODEL
110
+ }, /*#__PURE__*/ react.createElement(CmsWorkflows, null), /*#__PURE__*/ react.createElement(ContentEntryEditorConfig, null, /*#__PURE__*/ react.createElement(ContentEntryEditorConfig.Width, {
111
+ value: "1020px"
112
+ })), /*#__PURE__*/ react.createElement(ContentEntryEditorWithConfig, null, /*#__PURE__*/ react.createElement(EntryProvider, {
113
+ entry: createEntry("inProgress")
114
+ }, /*#__PURE__*/ react.createElement(EntryAction, {
115
+ name: "move",
116
+ element: /*#__PURE__*/ react.createElement("span", {
117
+ "data-testid": "move-item"
118
+ })
119
+ }))))))));
120
+ return container;
121
+ }
122
+ function getCachedSystem(container) {
123
+ const provider = container.resolve(ContentEntriesCacheProvider);
124
+ const entry = provider.get("article").getItem((item)=>"entry-1" === item.entryId);
125
+ return (entry?.meta).system;
126
+ }
127
+ describe("CmsWorkflows list and cache wiring", ()=>{
128
+ it("registers the selections, the row mapper, the Move gate and the cache sync with the flag on", async ()=>{
129
+ const container = mountRoot(true);
130
+ const listSelections = container.resolveAll(ListEntriesGraphQLFieldSelection).flatMap((selection)=>selection.getSelection());
131
+ const getSelections = container.resolveAll(GetEntryGraphQLFieldSelection).flatMap((selection)=>selection.getSelection());
132
+ expect(listSelections).toHaveLength(1);
133
+ expect(listSelections[0]).toContain("reviewState");
134
+ expect(getSelections).toHaveLength(1);
135
+ expect(getSelections[0]).toContain("stepState");
136
+ const mapper = container.resolve(TableRowMapper);
137
+ expect(mapper.fromEntry(createEntry("inProgress")).$selectable).toBe(false);
138
+ expect(mapper.fromEntry(createEntry(null)).$selectable).toBe(true);
139
+ expect(await screen.findByTestId("blocked-move")).toBeTruthy();
140
+ expect(screen.queryByTestId("move-item")).toBeNull();
141
+ const provider = container.resolve(ContentEntriesCacheProvider);
142
+ provider.get("article").setItems([
143
+ createEntry(null)
144
+ ]);
145
+ const handlers = container.resolveAll(ReviewChangedHandler);
146
+ expect(handlers).toHaveLength(1);
147
+ const review = createReview({
148
+ namespace: "cms.article"
149
+ });
150
+ await handlers[0].handle(new ReviewChangedEvent({
151
+ namespace: "cms.article",
152
+ targetId: "entry-1",
153
+ targetRevisionId: "entry-1#0001",
154
+ review
155
+ }));
156
+ expect(getCachedSystem(container)).toEqual({
157
+ workflow: toSystemWorkflow(review)
158
+ });
159
+ });
160
+ it("registers none of it with the flag off", async ()=>{
161
+ const container = mountRoot(false);
162
+ expect(container.resolveAll(ListEntriesGraphQLFieldSelection)).toHaveLength(0);
163
+ expect(container.resolveAll(GetEntryGraphQLFieldSelection)).toHaveLength(0);
164
+ expect(container.resolveAll(ReviewChangedHandler)).toHaveLength(0);
165
+ const mapper = container.resolve(TableRowMapper);
166
+ expect(mapper.fromEntry(createEntry("inProgress")).$selectable).toBe(true);
167
+ expect(await screen.findByTestId("move-item")).toBeTruthy();
168
+ expect(screen.queryByTestId("blocked-move")).toBeNull();
169
+ });
170
+ });
171
+
172
+ //# sourceMappingURL=index.lists.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.lists.test.js","sources":["../src/index.lists.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { render } from \"@testing-library/react\";\nimport { screen } from \"@testing-library/react\";\nimport { Container } from \"@webiny/di\";\nimport { CompositionProvider } from \"@webiny/react-composition\";\nimport { DiContainerProvider } from \"@webiny/app/shared/di/DiContainerProvider.js\";\nimport { FeatureFlagsService } from \"@webiny/app-admin/features/featureFlags/abstractions.js\";\nimport { FeatureFlags } from \"@webiny/feature-flags\";\nimport { AdminUiProvider } from \"@webiny/admin-ui\";\nimport { ModelContext } from \"@webiny/app-headless-cms/admin/components/ModelProvider/index.js\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport { ContentEntryEditorWithConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport { EntryProvider } from \"@webiny/app-headless-cms/admin/hooks/useEntry.js\";\nimport { ContentEntriesCacheProvider as ContentEntriesCacheProviderAbstraction } from \"@webiny/app-headless-cms/features/contentEntry/abstractions.js\";\nimport { ContentEntriesCacheProvider } from \"@webiny/app-headless-cms/features/contentEntry/ContentEntriesCacheProvider.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { GetEntryGraphQLFieldSelection } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { ListEntriesGraphQLFieldSelection } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { TableRowMapper } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport type { CmsContentEntry } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport { toSystemWorkflow } from \"@webiny/app-workflows/review/domain/toSystemWorkflow.js\";\nimport { ReviewChangedEvent } from \"@webiny/app-workflows/review/events/ReviewChangedEvent.js\";\nimport { ReviewChangedHandler } from \"@webiny/app-workflows/review/events/ReviewChangedHandler.js\";\nimport { createReview } from \"@webiny/app-workflows/review/testing/reviewFixtures.js\";\nimport { CmsWorkflows } from \"./index.js\";\nimport { MODEL } from \"~/testing/models.js\";\n\ninterface FakeActionProps {\n name: string;\n element: React.ReactElement;\n}\n\ninterface FakeMenuItemProps {\n label: string;\n}\n\nvi.mock(\"@webiny/app-aco\", async importOriginal => {\n const actual = await importOriginal<typeof import(\"@webiny/app-aco\")>();\n const React = await import(\"react\");\n const Action = Object.assign(\n (props: FakeActionProps) => {\n return React.createElement(\"div\", { \"data-action\": props.name }, props.element);\n },\n { OptionsMenuItem: () => null, OptionsMenuLink: () => null }\n );\n\n return {\n ...actual,\n AcoConfig: { ...actual.AcoConfig, Record: { ...actual.AcoConfig.Record, Action } }\n };\n});\n\nvi.mock(\"@webiny/app-admin\", async importOriginal => {\n const actual = await importOriginal<typeof import(\"@webiny/app-admin\")>();\n const React = await import(\"react\");\n\n return {\n ...actual,\n OptionsMenuItem: (props: FakeMenuItemProps) => {\n return React.createElement(\"button\", { \"data-testid\": \"blocked-move\" }, props.label);\n }\n };\n});\n\nvi.mock(\"~/Routes/index.js\", () => {\n return { CmsWorkflowEditor: () => null };\n});\n\nvi.mock(\"~/Components/ContentReviews/CmsContentReviews.js\", () => {\n return { CmsContentReviews: () => null };\n});\n\nvi.mock(\"~/Components/ContentReviews/CmsContentReviewsSidebarItem.js\", () => {\n return { CmsContentReviewsSidebarItem: () => null };\n});\n\nclass FakeRowMapper implements TableRowMapper.Interface {\n fromEntry(entry: CmsContentEntry): TableRowMapper.EntryTableRow {\n return { id: entry.id, $selectable: true, $type: \"RECORD\", data: entry };\n }\n}\n\nconst BaseRowMapper = TableRowMapper.createImplementation({\n implementation: FakeRowMapper,\n dependencies: []\n});\n\nconst EntryAction = ContentEntryListConfig.Browser.Entry.Action;\n\nfunction createEntry(reviewState: string | null): CmsContentEntry {\n const workflow = reviewState === null ? null : { reviewState };\n\n return {\n id: \"entry-1#0001\",\n entryId: \"entry-1\",\n meta: { title: \"Hello\", status: \"draft\", version: 1, locked: false, system: { workflow } }\n } as unknown as CmsContentEntry;\n}\n\nfunction mountRoot(isEnabled: boolean): Container {\n const flagsService: FeatureFlagsService.Interface = {\n getFlags: () => new FeatureFlags({ advancedPublishingWorkflow: isEnabled }),\n isLoaded: () => true,\n loadFlags: async () => undefined\n };\n const container = new Container();\n container.registerInstance(FeatureFlagsService, flagsService);\n container.register(ContentEntriesCacheProvider).inSingletonScope();\n container.register(BaseRowMapper);\n\n render(\n <AdminUiProvider>\n <CompositionProvider>\n <DiContainerProvider container={container}>\n <ModelContext.Provider value={MODEL}>\n <CmsWorkflows />\n {/* The editor config needs one property so the flag-off mount collects its config. */}\n <ContentEntryEditorConfig>\n <ContentEntryEditorConfig.Width value={\"1020px\"} />\n </ContentEntryEditorConfig>\n <ContentEntryEditorWithConfig>\n <EntryProvider entry={createEntry(\"inProgress\")}>\n <EntryAction\n name=\"move\"\n element={<span data-testid=\"move-item\" />}\n />\n </EntryProvider>\n </ContentEntryEditorWithConfig>\n </ModelContext.Provider>\n </DiContainerProvider>\n </CompositionProvider>\n </AdminUiProvider>\n );\n\n return container;\n}\n\nfunction getCachedSystem(container: Container): unknown {\n const provider = container.resolve(ContentEntriesCacheProviderAbstraction);\n const entry = provider.get(\"article\").getItem(item => item.entryId === \"entry-1\");\n return (entry?.meta as unknown as { system?: unknown }).system;\n}\n\ndescribe(\"CmsWorkflows list and cache wiring\", () => {\n it(\"registers the selections, the row mapper, the Move gate and the cache sync with the flag on\", async () => {\n const container = mountRoot(true);\n\n const listSelections = container\n .resolveAll(ListEntriesGraphQLFieldSelection)\n .flatMap(selection => selection.getSelection());\n const getSelections = container\n .resolveAll(GetEntryGraphQLFieldSelection)\n .flatMap(selection => selection.getSelection());\n expect(listSelections).toHaveLength(1);\n expect(listSelections[0]).toContain(\"reviewState\");\n expect(getSelections).toHaveLength(1);\n expect(getSelections[0]).toContain(\"stepState\");\n\n const mapper = container.resolve(TableRowMapper);\n expect(mapper.fromEntry(createEntry(\"inProgress\")).$selectable).toBe(false);\n expect(mapper.fromEntry(createEntry(null)).$selectable).toBe(true);\n\n expect(await screen.findByTestId(\"blocked-move\")).toBeTruthy();\n expect(screen.queryByTestId(\"move-item\")).toBeNull();\n\n const provider = container.resolve(ContentEntriesCacheProviderAbstraction);\n provider.get(\"article\").setItems([createEntry(null)]);\n const handlers = container.resolveAll(ReviewChangedHandler);\n expect(handlers).toHaveLength(1);\n const review = createReview({ namespace: \"cms.article\" });\n await handlers[0].handle(\n new ReviewChangedEvent({\n namespace: \"cms.article\",\n targetId: \"entry-1\",\n targetRevisionId: \"entry-1#0001\",\n review\n })\n );\n expect(getCachedSystem(container)).toEqual({ workflow: toSystemWorkflow(review) });\n });\n\n it(\"registers none of it with the flag off\", async () => {\n const container = mountRoot(false);\n\n expect(container.resolveAll(ListEntriesGraphQLFieldSelection)).toHaveLength(0);\n expect(container.resolveAll(GetEntryGraphQLFieldSelection)).toHaveLength(0);\n expect(container.resolveAll(ReviewChangedHandler)).toHaveLength(0);\n\n const mapper = container.resolve(TableRowMapper);\n expect(mapper.fromEntry(createEntry(\"inProgress\")).$selectable).toBe(true);\n\n expect(await screen.findByTestId(\"move-item\")).toBeTruthy();\n expect(screen.queryByTestId(\"blocked-move\")).toBeNull();\n });\n});\n"],"names":["vi","importOriginal","actual","React","Action","Object","props","FakeRowMapper","entry","BaseRowMapper","TableRowMapper","EntryAction","ContentEntryListConfig","createEntry","reviewState","workflow","mountRoot","isEnabled","flagsService","FeatureFlags","undefined","container","Container","FeatureFlagsService","ContentEntriesCacheProvider","render","AdminUiProvider","CompositionProvider","DiContainerProvider","ModelContext","MODEL","CmsWorkflows","ContentEntryEditorConfig","ContentEntryEditorWithConfig","EntryProvider","getCachedSystem","provider","ContentEntriesCacheProviderAbstraction","item","describe","it","listSelections","ListEntriesGraphQLFieldSelection","selection","getSelections","GetEntryGraphQLFieldSelection","expect","mapper","screen","handlers","ReviewChangedHandler","review","createReview","ReviewChangedEvent","toSystemWorkflow"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ import react from "react";
2
+ import { describe, expect, it, vi } from "vitest";
3
+ import { CmsWorkflows } from "./index.js";
4
+ vi.mock("@webiny/app-admin", async (importOriginal)=>{
5
+ const original = await importOriginal();
6
+ const RegisterFeature = ()=>null;
7
+ const useFeatureFlags = ()=>({
8
+ isEnabled: ()=>true
9
+ });
10
+ return {
11
+ ...original,
12
+ RegisterFeature,
13
+ useFeatureFlags
14
+ };
15
+ });
16
+ const getTypeName = (type)=>{
17
+ if ("string" == typeof type) return type;
18
+ if (type === react.Fragment) return "Fragment";
19
+ const named = type;
20
+ return named.displayName || named.name || "Anonymous";
21
+ };
22
+ const collectTree = (node, entries)=>{
23
+ react.Children.forEach(node, (child)=>{
24
+ if (!/*#__PURE__*/ react.isValidElement(child)) return;
25
+ const featureName = child.props.feature ? child.props.feature.name : null;
26
+ entries.push({
27
+ typeName: getTypeName(child.type),
28
+ featureName
29
+ });
30
+ collectTree(child.props.children, entries);
31
+ });
32
+ };
33
+ const renderRoot = ()=>{
34
+ const entries = [];
35
+ collectTree(CmsWorkflows(), entries);
36
+ return entries;
37
+ };
38
+ describe("CmsWorkflows root", ()=>{
39
+ it("mounts the workflow editor route and registers its mounting feature", ()=>{
40
+ const entries = renderRoot();
41
+ const typeNames = entries.map((entry)=>entry.typeName);
42
+ const featureNames = entries.map((entry)=>entry.featureName).filter((name)=>null !== name);
43
+ expect(typeNames).toContain("CmsWorkflowEditor");
44
+ expect(featureNames).toContain("CmsWorkflows/EditorMounting");
45
+ expect(featureNames).toContain("CmsWorkflows");
46
+ });
47
+ });
48
+
49
+ //# sourceMappingURL=index.mount.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mount.test.js","sources":["../src/index.mount.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { describe } from \"vitest\";\nimport { expect } from \"vitest\";\nimport { it } from \"vitest\";\nimport { vi } from \"vitest\";\nimport { CmsWorkflows } from \"~/index.js\";\n\nvi.mock(\"@webiny/app-admin\", async importOriginal => {\n const original = await importOriginal<typeof import(\"@webiny/app-admin\")>();\n const RegisterFeature = () => null;\n const useFeatureFlags = () => {\n return { isEnabled: () => true };\n };\n return { ...original, RegisterFeature, useFeatureFlags };\n});\n\ninterface TreeProps {\n children?: React.ReactNode;\n feature?: { name: string };\n}\n\ninterface NamedType {\n displayName?: string;\n name?: string;\n}\n\ninterface TreeEntry {\n typeName: string;\n featureName: string | null;\n}\n\nconst getTypeName = (type: React.ReactElement[\"type\"]): string => {\n if (typeof type === \"string\") {\n return type;\n }\n if (type === React.Fragment) {\n return \"Fragment\";\n }\n const named = type as NamedType;\n return named.displayName || named.name || \"Anonymous\";\n};\n\nconst collectTree = (node: React.ReactNode, entries: TreeEntry[]): void => {\n React.Children.forEach(node, child => {\n if (!React.isValidElement<TreeProps>(child)) {\n return;\n }\n const featureName = child.props.feature ? child.props.feature.name : null;\n entries.push({ typeName: getTypeName(child.type), featureName });\n collectTree(child.props.children, entries);\n });\n};\n\nconst renderRoot = (): TreeEntry[] => {\n const entries: TreeEntry[] = [];\n collectTree(CmsWorkflows(), entries);\n return entries;\n};\n\ndescribe(\"CmsWorkflows root\", () => {\n it(\"mounts the workflow editor route and registers its mounting feature\", () => {\n const entries = renderRoot();\n const typeNames = entries.map(entry => entry.typeName);\n const featureNames = entries.map(entry => entry.featureName).filter(name => name !== null);\n\n expect(typeNames).toContain(\"CmsWorkflowEditor\");\n expect(featureNames).toContain(\"CmsWorkflows/EditorMounting\");\n // The feature that gates Publish in the revisions drawer.\n expect(featureNames).toContain(\"CmsWorkflows\");\n });\n});\n"],"names":["vi","importOriginal","original","RegisterFeature","useFeatureFlags","getTypeName","type","React","named","collectTree","node","entries","child","featureName","renderRoot","CmsWorkflows","describe","it","typeNames","entry","featureNames","name","expect"],"mappings":";;;AAOAA,GAAG,IAAI,CAAC,qBAAqB,OAAMC;IAC/B,MAAMC,WAAW,MAAMD;IACvB,MAAME,kBAAkB,IAAM;IAC9B,MAAMC,kBAAkB,IACb;YAAE,WAAW,IAAM;QAAK;IAEnC,OAAO;QAAE,GAAGF,QAAQ;QAAEC;QAAiBC;IAAgB;AAC3D;AAiBA,MAAMC,cAAc,CAACC;IACjB,IAAI,AAAgB,YAAhB,OAAOA,MACP,OAAOA;IAEX,IAAIA,SAASC,MAAAA,QAAc,EACvB,OAAO;IAEX,MAAMC,QAAQF;IACd,OAAOE,MAAM,WAAW,IAAIA,MAAM,IAAI,IAAI;AAC9C;AAEA,MAAMC,cAAc,CAACC,MAAuBC;IACxCJ,MAAAA,QAAAA,CAAAA,OAAsB,CAACG,MAAME,CAAAA;QACzB,IAAI,CAAC,WAAD,GAACL,MAAAA,cAAoB,CAAYK,QACjC;QAEJ,MAAMC,cAAcD,MAAM,KAAK,CAAC,OAAO,GAAGA,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,GAAG;QACrED,QAAQ,IAAI,CAAC;YAAE,UAAUN,YAAYO,MAAM,IAAI;YAAGC;QAAY;QAC9DJ,YAAYG,MAAM,KAAK,CAAC,QAAQ,EAAED;IACtC;AACJ;AAEA,MAAMG,aAAa;IACf,MAAMH,UAAuB,EAAE;IAC/BF,YAAYM,gBAAgBJ;IAC5B,OAAOA;AACX;AAEAK,SAAS,qBAAqB;IAC1BC,GAAG,uEAAuE;QACtE,MAAMN,UAAUG;QAChB,MAAMI,YAAYP,QAAQ,GAAG,CAACQ,CAAAA,QAASA,MAAM,QAAQ;QACrD,MAAMC,eAAeT,QAAQ,GAAG,CAACQ,CAAAA,QAASA,MAAM,WAAW,EAAE,MAAM,CAACE,CAAAA,OAAQA,AAAS,SAATA;QAE5EC,OAAOJ,WAAW,SAAS,CAAC;QAC5BI,OAAOF,cAAc,SAAS,CAAC;QAE/BE,OAAOF,cAAc,SAAS,CAAC;IACnC;AACJ"}
@@ -0,0 +1 @@
1
+ export {};