@webiny/app-website-builder 6.1.0-beta.3 → 6.2.0-beta.0

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 (769) hide show
  1. package/BaseEditor/config/EditorConfig.d.ts +6 -4
  2. package/BaseEditor/config/Elements.d.ts +2 -1
  3. package/BaseEditor/config/Elements.js +10 -6
  4. package/BaseEditor/config/Elements.js.map +1 -1
  5. package/BaseEditor/config/TopBar/Layout.d.ts +1 -0
  6. package/BaseEditor/config/TopBar/Layout.js +15 -2
  7. package/BaseEditor/config/TopBar/Layout.js.map +1 -1
  8. package/BaseEditor/config/TopBar/TopBar.d.ts +2 -1
  9. package/BaseEditor/config/TopBar/TopBar.js +3 -2
  10. package/BaseEditor/config/TopBar/TopBar.js.map +1 -1
  11. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/Border.d.ts +4 -0
  12. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/Border.js +22 -0
  13. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/Border.js.map +1 -0
  14. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderColor.d.ts +8 -0
  15. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderColor.js +51 -0
  16. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderColor.js.map +1 -0
  17. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderRadius.d.ts +8 -0
  18. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderRadius.js +138 -0
  19. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderRadius.js.map +1 -0
  20. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderStyle.d.ts +8 -0
  21. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderStyle.js +60 -0
  22. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderStyle.js.map +1 -0
  23. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderWidth.d.ts +8 -0
  24. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderWidth.js +138 -0
  25. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/BorderWidth.js.map +1 -0
  26. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/LinkedEditing.d.ts +7 -0
  27. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/LinkedEditing.js +28 -0
  28. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border/LinkedEditing.js.map +1 -0
  29. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border.d.ts +6 -0
  30. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border.js +20 -0
  31. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/Groups/Border.js.map +1 -0
  32. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js +3 -0
  33. package/BaseEditor/defaultConfig/Sidebar/StyleSettings/StyleProperties.js.map +1 -1
  34. package/Extension.js +51 -1
  35. package/Extension.js.map +1 -1
  36. package/ecommerce/EcommerceIntegration.d.ts +8 -3
  37. package/ecommerce/EcommerceIntegration.js +33 -14
  38. package/ecommerce/EcommerceIntegration.js.map +1 -1
  39. package/ecommerce/components/ResourcePage.d.ts +24 -3
  40. package/ecommerce/components/ResourcePage.js +66 -73
  41. package/ecommerce/components/ResourcePage.js.map +1 -1
  42. package/exports/admin/website-builder.d.ts +3 -0
  43. package/exports/admin/website-builder.js +3 -0
  44. package/exports/admin/website-builder.js.map +1 -1
  45. package/features/ecommerce/apis/EcommerceApiProvider.d.ts +2 -2
  46. package/features/ecommerce/apis/EcommerceApiProvider.js +2 -0
  47. package/features/ecommerce/apis/EcommerceApiProvider.js.map +1 -1
  48. package/features/ecommerce/apis/index.d.ts +2 -0
  49. package/features/ecommerce/apis/index.js +1 -0
  50. package/features/ecommerce/apis/index.js.map +1 -1
  51. package/features/index.d.ts +2 -2
  52. package/features/index.js +1 -2
  53. package/features/index.js.map +1 -1
  54. package/features/pages/createPage/CreatePage.test.js +11 -2
  55. package/features/pages/createPage/CreatePage.test.js.map +1 -1
  56. package/features/pages/createPage/CreatePageGateway.d.ts +13 -0
  57. package/features/pages/createPage/CreatePageGateway.js +45 -0
  58. package/features/pages/createPage/CreatePageGateway.js.map +1 -0
  59. package/features/pages/createPage/CreatePageRepository.d.ts +9 -5
  60. package/features/pages/createPage/CreatePageRepository.js +8 -2
  61. package/features/pages/createPage/CreatePageRepository.js.map +1 -1
  62. package/features/pages/createPage/CreatePageUseCase.d.ts +9 -6
  63. package/features/pages/createPage/CreatePageUseCase.js +7 -2
  64. package/features/pages/createPage/CreatePageUseCase.js.map +1 -1
  65. package/features/pages/createPage/CreatePageUseCaseWithLoading.d.ts +10 -6
  66. package/features/pages/createPage/CreatePageUseCaseWithLoading.js +10 -4
  67. package/features/pages/createPage/CreatePageUseCaseWithLoading.js.map +1 -1
  68. package/features/pages/createPage/abstractions.d.ts +34 -0
  69. package/features/pages/createPage/abstractions.js +6 -0
  70. package/features/pages/createPage/abstractions.js.map +1 -0
  71. package/features/pages/createPage/feature.d.ts +3 -0
  72. package/features/pages/createPage/feature.js +22 -0
  73. package/features/pages/createPage/feature.js.map +1 -0
  74. package/features/pages/createPage/index.d.ts +2 -1
  75. package/features/pages/createPage/index.js +1 -1
  76. package/features/pages/createPage/index.js.map +1 -1
  77. package/features/pages/createPageRevisionFrom/CreatePageRevisionFrom.test.js +17 -3
  78. package/features/pages/createPageRevisionFrom/CreatePageRevisionFrom.test.js.map +1 -1
  79. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGateway.d.ts +12 -0
  80. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGateway.js +43 -0
  81. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGateway.js.map +1 -0
  82. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromRepository.d.ts +9 -5
  83. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromRepository.js +8 -2
  84. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromRepository.js.map +1 -1
  85. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCase.d.ts +9 -6
  86. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCase.js +7 -2
  87. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCase.js.map +1 -1
  88. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCaseWithLoading.d.ts +10 -7
  89. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCaseWithLoading.js +10 -4
  90. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromUseCaseWithLoading.js.map +1 -1
  91. package/features/pages/createPageRevisionFrom/abstractions.d.ts +27 -0
  92. package/features/pages/createPageRevisionFrom/abstractions.js +6 -0
  93. package/features/pages/createPageRevisionFrom/abstractions.js.map +1 -0
  94. package/features/pages/createPageRevisionFrom/feature.d.ts +3 -0
  95. package/features/pages/createPageRevisionFrom/feature.js +22 -0
  96. package/features/pages/createPageRevisionFrom/feature.js.map +1 -0
  97. package/features/pages/createPageRevisionFrom/index.d.ts +2 -1
  98. package/features/pages/createPageRevisionFrom/index.js +1 -1
  99. package/features/pages/createPageRevisionFrom/index.js.map +1 -1
  100. package/features/pages/deletePage/DeletePage.test.js +13 -2
  101. package/features/pages/deletePage/DeletePage.test.js.map +1 -1
  102. package/features/pages/deletePage/DeletePageGateway.d.ts +11 -0
  103. package/features/pages/deletePage/DeletePageGateway.js +40 -0
  104. package/features/pages/deletePage/DeletePageGateway.js.map +1 -0
  105. package/features/pages/deletePage/DeletePageRepository.d.ts +9 -7
  106. package/features/pages/deletePage/DeletePageRepository.js +7 -1
  107. package/features/pages/deletePage/DeletePageRepository.js.map +1 -1
  108. package/features/pages/deletePage/DeletePageUseCase.d.ts +8 -5
  109. package/features/pages/deletePage/DeletePageUseCase.js +7 -2
  110. package/features/pages/deletePage/DeletePageUseCase.js.map +1 -1
  111. package/features/pages/deletePage/DeletePageUseCaseWithLoading.d.ts +10 -7
  112. package/features/pages/deletePage/DeletePageUseCaseWithLoading.js +10 -4
  113. package/features/pages/deletePage/DeletePageUseCaseWithLoading.js.map +1 -1
  114. package/features/pages/deletePage/abstractions.d.ts +27 -0
  115. package/features/pages/deletePage/abstractions.js +25 -0
  116. package/features/pages/deletePage/abstractions.js.map +1 -0
  117. package/features/pages/deletePage/feature.d.ts +3 -0
  118. package/features/pages/deletePage/feature.js +22 -0
  119. package/features/pages/deletePage/feature.js.map +1 -0
  120. package/features/pages/deletePage/index.d.ts +2 -1
  121. package/features/pages/deletePage/index.js +1 -1
  122. package/features/pages/deletePage/index.js.map +1 -1
  123. package/features/pages/duplicatePage/DuplicatePage.test.js +13 -2
  124. package/features/pages/duplicatePage/DuplicatePage.test.js.map +1 -1
  125. package/features/pages/duplicatePage/DuplicatePageGateway.d.ts +12 -0
  126. package/features/pages/duplicatePage/DuplicatePageGateway.js +43 -0
  127. package/features/pages/duplicatePage/DuplicatePageGateway.js.map +1 -0
  128. package/features/pages/duplicatePage/DuplicatePageRepository.d.ts +9 -6
  129. package/features/pages/duplicatePage/DuplicatePageRepository.js +8 -2
  130. package/features/pages/duplicatePage/DuplicatePageRepository.js.map +1 -1
  131. package/features/pages/duplicatePage/DuplicatePageUseCase.d.ts +8 -5
  132. package/features/pages/duplicatePage/DuplicatePageUseCase.js +7 -2
  133. package/features/pages/duplicatePage/DuplicatePageUseCase.js.map +1 -1
  134. package/features/pages/duplicatePage/DuplicatePageUseCaseWithLoading.d.ts +10 -7
  135. package/features/pages/duplicatePage/DuplicatePageUseCaseWithLoading.js +10 -4
  136. package/features/pages/duplicatePage/DuplicatePageUseCaseWithLoading.js.map +1 -1
  137. package/features/pages/duplicatePage/abstractions.d.ts +27 -0
  138. package/features/pages/duplicatePage/abstractions.js +6 -0
  139. package/features/pages/duplicatePage/abstractions.js.map +1 -0
  140. package/features/pages/duplicatePage/feature.d.ts +3 -0
  141. package/features/pages/duplicatePage/feature.js +22 -0
  142. package/features/pages/duplicatePage/feature.js.map +1 -0
  143. package/features/pages/duplicatePage/index.d.ts +2 -1
  144. package/features/pages/duplicatePage/index.js +1 -1
  145. package/features/pages/duplicatePage/index.js.map +1 -1
  146. package/features/pages/getPage/GetPage.test.js +27 -8
  147. package/features/pages/getPage/GetPage.test.js.map +1 -1
  148. package/features/pages/getPage/GetPageGateway.d.ts +14 -0
  149. package/features/pages/getPage/GetPageGateway.js +54 -0
  150. package/features/pages/getPage/GetPageGateway.js.map +1 -0
  151. package/features/pages/getPage/GetPageRepository.d.ts +9 -5
  152. package/features/pages/getPage/GetPageRepository.js +8 -2
  153. package/features/pages/getPage/GetPageRepository.js.map +1 -1
  154. package/features/pages/getPage/GetPageUseCase.d.ts +8 -5
  155. package/features/pages/getPage/GetPageUseCase.js +6 -1
  156. package/features/pages/getPage/GetPageUseCase.js.map +1 -1
  157. package/features/pages/getPage/GetPageUseCaseWithLoading.d.ts +10 -6
  158. package/features/pages/getPage/GetPageUseCaseWithLoading.js +10 -4
  159. package/features/pages/getPage/GetPageUseCaseWithLoading.js.map +1 -1
  160. package/features/pages/getPage/abstractions.d.ts +27 -0
  161. package/features/pages/getPage/abstractions.js +17 -0
  162. package/features/pages/getPage/abstractions.js.map +1 -1
  163. package/features/pages/getPage/feature.d.ts +3 -0
  164. package/features/pages/getPage/feature.js +22 -0
  165. package/features/pages/getPage/feature.js.map +1 -0
  166. package/features/pages/getPage/index.d.ts +4 -1
  167. package/features/pages/getPage/index.js +2 -1
  168. package/features/pages/getPage/index.js.map +1 -1
  169. package/features/pages/getPageRevisions/GetPageRevisionsGateway.d.ts +12 -0
  170. package/features/pages/getPageRevisions/{GetPageRevisionsGqlGateway.js → GetPageRevisionsGateway.js} +15 -19
  171. package/features/pages/getPageRevisions/GetPageRevisionsGateway.js.map +1 -0
  172. package/features/pages/getPageRevisions/GetPageRevisionsRepository.d.ts +9 -5
  173. package/features/pages/getPageRevisions/GetPageRevisionsRepository.js +8 -2
  174. package/features/pages/getPageRevisions/GetPageRevisionsRepository.js.map +1 -1
  175. package/features/pages/getPageRevisions/GetPageRevisionsUseCase.d.ts +8 -5
  176. package/features/pages/getPageRevisions/GetPageRevisionsUseCase.js +6 -1
  177. package/features/pages/getPageRevisions/GetPageRevisionsUseCase.js.map +1 -1
  178. package/features/pages/getPageRevisions/GetPageRevisionsUseCaseWithLoading.d.ts +10 -6
  179. package/features/pages/getPageRevisions/GetPageRevisionsUseCaseWithLoading.js +10 -4
  180. package/features/pages/getPageRevisions/GetPageRevisionsUseCaseWithLoading.js.map +1 -1
  181. package/features/pages/getPageRevisions/abstractions.d.ts +27 -0
  182. package/features/pages/getPageRevisions/abstractions.js +6 -0
  183. package/features/pages/getPageRevisions/abstractions.js.map +1 -0
  184. package/features/pages/getPageRevisions/feature.d.ts +4 -0
  185. package/features/pages/getPageRevisions/feature.js +24 -0
  186. package/features/pages/getPageRevisions/feature.js.map +1 -0
  187. package/features/pages/getPageRevisions/index.d.ts +2 -1
  188. package/features/pages/getPageRevisions/index.js +1 -1
  189. package/features/pages/getPageRevisions/index.js.map +1 -1
  190. package/features/pages/index.d.ts +15 -0
  191. package/features/pages/index.js +15 -0
  192. package/features/pages/index.js.map +1 -1
  193. package/features/pages/loadPages/FilterPagesUseCase.d.ts +8 -5
  194. package/features/pages/loadPages/FilterPagesUseCase.js +6 -3
  195. package/features/pages/loadPages/FilterPagesUseCase.js.map +1 -1
  196. package/features/pages/loadPages/ListPagesGateway.d.ts +18 -0
  197. package/features/pages/loadPages/ListPagesGateway.js +67 -0
  198. package/features/pages/loadPages/ListPagesGateway.js.map +1 -0
  199. package/features/pages/loadPages/ListPagesRepository.d.ts +9 -9
  200. package/features/pages/loadPages/ListPagesRepository.js +10 -4
  201. package/features/pages/loadPages/ListPagesRepository.js.map +1 -1
  202. package/features/pages/loadPages/LoadMorePagesUseCase.d.ts +7 -4
  203. package/features/pages/loadPages/LoadMorePagesUseCase.js +6 -1
  204. package/features/pages/loadPages/LoadMorePagesUseCase.js.map +1 -1
  205. package/features/pages/loadPages/LoadPagesUseCase.d.ts +8 -5
  206. package/features/pages/loadPages/LoadPagesUseCase.js +8 -4
  207. package/features/pages/loadPages/LoadPagesUseCase.js.map +1 -1
  208. package/features/pages/loadPages/SearchPagesUseCase.d.ts +8 -5
  209. package/features/pages/loadPages/SearchPagesUseCase.js +6 -1
  210. package/features/pages/loadPages/SearchPagesUseCase.js.map +1 -1
  211. package/features/pages/loadPages/SortPagesUseCase.d.ts +8 -5
  212. package/features/pages/loadPages/SortPagesUseCase.js +6 -1
  213. package/features/pages/loadPages/SortPagesUseCase.js.map +1 -1
  214. package/features/pages/loadPages/abstractions.d.ts +90 -0
  215. package/features/pages/loadPages/abstractions.js +31 -0
  216. package/features/pages/loadPages/abstractions.js.map +1 -1
  217. package/features/pages/loadPages/feature.d.ts +7 -0
  218. package/features/pages/loadPages/feature.js +32 -0
  219. package/features/pages/loadPages/feature.js.map +1 -0
  220. package/features/pages/loadPages/index.d.ts +4 -5
  221. package/features/pages/loadPages/index.js +2 -5
  222. package/features/pages/loadPages/index.js.map +1 -1
  223. package/features/pages/movePage/MovePage.test.js +11 -2
  224. package/features/pages/movePage/MovePage.test.js.map +1 -1
  225. package/features/pages/movePage/MovePageGateway.d.ts +11 -0
  226. package/features/pages/movePage/MovePageGateway.js +40 -0
  227. package/features/pages/movePage/MovePageGateway.js.map +1 -0
  228. package/features/pages/movePage/MovePageRepository.d.ts +8 -5
  229. package/features/pages/movePage/MovePageRepository.js +8 -2
  230. package/features/pages/movePage/MovePageRepository.js.map +1 -1
  231. package/features/pages/movePage/MovePageUseCase.d.ts +8 -5
  232. package/features/pages/movePage/MovePageUseCase.js +6 -1
  233. package/features/pages/movePage/MovePageUseCase.js.map +1 -1
  234. package/features/pages/movePage/MovePageUseCaseWithLoading.d.ts +10 -7
  235. package/features/pages/movePage/MovePageUseCaseWithLoading.js +10 -4
  236. package/features/pages/movePage/MovePageUseCaseWithLoading.js.map +1 -1
  237. package/features/pages/movePage/abstractions.d.ts +26 -0
  238. package/features/pages/movePage/abstractions.js +25 -0
  239. package/features/pages/movePage/abstractions.js.map +1 -0
  240. package/features/pages/movePage/feature.d.ts +3 -0
  241. package/features/pages/movePage/feature.js +22 -0
  242. package/features/pages/movePage/feature.js.map +1 -0
  243. package/features/pages/movePage/index.d.ts +2 -1
  244. package/features/pages/movePage/index.js +1 -1
  245. package/features/pages/movePage/index.js.map +1 -1
  246. package/features/pages/publishPage/PublishPage.test.js +20 -4
  247. package/features/pages/publishPage/PublishPage.test.js.map +1 -1
  248. package/features/pages/publishPage/PublishPageGateway.d.ts +12 -0
  249. package/features/pages/publishPage/PublishPageGateway.js +43 -0
  250. package/features/pages/publishPage/PublishPageGateway.js.map +1 -0
  251. package/features/pages/publishPage/PublishPageRepository.d.ts +9 -5
  252. package/features/pages/publishPage/PublishPageRepository.js +9 -3
  253. package/features/pages/publishPage/PublishPageRepository.js.map +1 -1
  254. package/features/pages/publishPage/PublishPageUseCase.d.ts +8 -5
  255. package/features/pages/publishPage/PublishPageUseCase.js +7 -2
  256. package/features/pages/publishPage/PublishPageUseCase.js.map +1 -1
  257. package/features/pages/publishPage/PublishPageUseCaseWithLoading.d.ts +10 -7
  258. package/features/pages/publishPage/PublishPageUseCaseWithLoading.js +10 -4
  259. package/features/pages/publishPage/PublishPageUseCaseWithLoading.js.map +1 -1
  260. package/features/pages/publishPage/abstractions.d.ts +27 -0
  261. package/features/pages/publishPage/abstractions.js +6 -0
  262. package/features/pages/publishPage/abstractions.js.map +1 -0
  263. package/features/pages/publishPage/feature.d.ts +3 -0
  264. package/features/pages/publishPage/feature.js +22 -0
  265. package/features/pages/publishPage/feature.js.map +1 -0
  266. package/features/pages/publishPage/index.d.ts +2 -1
  267. package/features/pages/publishPage/index.js +1 -1
  268. package/features/pages/publishPage/index.js.map +1 -1
  269. package/features/pages/selectPages/SelectPagesUseCase.d.ts +9 -5
  270. package/features/pages/selectPages/SelectPagesUseCase.js +7 -1
  271. package/features/pages/selectPages/SelectPagesUseCase.js.map +1 -1
  272. package/features/pages/selectPages/abstractions.d.ts +7 -0
  273. package/features/pages/selectPages/abstractions.js +9 -0
  274. package/features/pages/selectPages/abstractions.js.map +1 -0
  275. package/features/pages/selectPages/feature.d.ts +3 -0
  276. package/features/pages/selectPages/feature.js +16 -0
  277. package/features/pages/selectPages/feature.js.map +1 -0
  278. package/features/pages/selectPages/index.d.ts +1 -4
  279. package/features/pages/selectPages/index.js +1 -3
  280. package/features/pages/selectPages/index.js.map +1 -1
  281. package/features/pages/selectPages/useSelectPages.d.ts +1 -3
  282. package/features/pages/selectPages/useSelectPages.js +2 -11
  283. package/features/pages/selectPages/useSelectPages.js.map +1 -1
  284. package/features/pages/shared/abstractions.d.ts +53 -0
  285. package/features/pages/shared/abstractions.js +23 -0
  286. package/features/pages/shared/abstractions.js.map +1 -0
  287. package/features/pages/shared/feature.d.ts +1 -0
  288. package/features/pages/shared/feature.js +61 -0
  289. package/features/pages/shared/feature.js.map +1 -0
  290. package/features/pages/shared/index.d.ts +3 -0
  291. package/features/pages/shared/index.js +5 -0
  292. package/features/pages/shared/index.js.map +1 -0
  293. package/features/pages/shared/pageGraphQLFields.d.ts +2 -0
  294. package/features/pages/shared/pageGraphQLFields.js +22 -0
  295. package/features/pages/shared/pageGraphQLFields.js.map +1 -0
  296. package/features/pages/translatePage/TranslatePageGateway.d.ts +11 -0
  297. package/features/pages/translatePage/TranslatePageGateway.js +46 -0
  298. package/features/pages/translatePage/TranslatePageGateway.js.map +1 -0
  299. package/features/pages/translatePage/TranslatePageRepository.d.ts +10 -0
  300. package/features/pages/translatePage/TranslatePageRepository.js +19 -0
  301. package/features/pages/translatePage/TranslatePageRepository.js.map +1 -0
  302. package/features/pages/translatePage/TranslatePageUseCase.d.ts +10 -0
  303. package/features/pages/translatePage/TranslatePageUseCase.js +19 -0
  304. package/features/pages/translatePage/TranslatePageUseCase.js.map +1 -0
  305. package/features/pages/translatePage/abstractions.d.ts +44 -0
  306. package/features/pages/translatePage/abstractions.js +25 -0
  307. package/features/pages/translatePage/abstractions.js.map +1 -0
  308. package/features/pages/translatePage/feature.d.ts +3 -0
  309. package/features/pages/translatePage/feature.js +20 -0
  310. package/features/pages/translatePage/feature.js.map +1 -0
  311. package/features/pages/translatePage/index.d.ts +2 -0
  312. package/features/pages/translatePage/index.js +3 -0
  313. package/features/pages/translatePage/index.js.map +1 -0
  314. package/features/pages/unpublishPage/UnpublishPage.test.js +24 -6
  315. package/features/pages/unpublishPage/UnpublishPage.test.js.map +1 -1
  316. package/features/pages/unpublishPage/UnpublishPageGateway.d.ts +12 -0
  317. package/features/pages/unpublishPage/UnpublishPageGateway.js +43 -0
  318. package/features/pages/unpublishPage/UnpublishPageGateway.js.map +1 -0
  319. package/features/pages/unpublishPage/UnpublishPageRepository.d.ts +11 -7
  320. package/features/pages/unpublishPage/UnpublishPageRepository.js +9 -3
  321. package/features/pages/unpublishPage/UnpublishPageRepository.js.map +1 -1
  322. package/features/pages/unpublishPage/UnpublishPageUseCase.d.ts +8 -5
  323. package/features/pages/unpublishPage/UnpublishPageUseCase.js +7 -2
  324. package/features/pages/unpublishPage/UnpublishPageUseCase.js.map +1 -1
  325. package/features/pages/unpublishPage/UnpublishPageUseCaseWithLoading.d.ts +10 -6
  326. package/features/pages/unpublishPage/UnpublishPageUseCaseWithLoading.js +10 -4
  327. package/features/pages/unpublishPage/UnpublishPageUseCaseWithLoading.js.map +1 -1
  328. package/features/pages/unpublishPage/abstractions.d.ts +27 -0
  329. package/features/pages/unpublishPage/abstractions.js +6 -0
  330. package/features/pages/unpublishPage/abstractions.js.map +1 -0
  331. package/features/pages/unpublishPage/feature.d.ts +3 -0
  332. package/features/pages/unpublishPage/feature.js +22 -0
  333. package/features/pages/unpublishPage/feature.js.map +1 -0
  334. package/features/pages/unpublishPage/index.d.ts +2 -1
  335. package/features/pages/unpublishPage/index.js +1 -1
  336. package/features/pages/unpublishPage/index.js.map +1 -1
  337. package/features/pages/updatePage/UpdatePage.test.js +65 -5
  338. package/features/pages/updatePage/UpdatePage.test.js.map +1 -1
  339. package/features/pages/updatePage/UpdatePageGateway.d.ts +13 -0
  340. package/features/pages/updatePage/UpdatePageGateway.js +58 -0
  341. package/features/pages/updatePage/UpdatePageGateway.js.map +1 -0
  342. package/features/pages/updatePage/UpdatePageRepository.d.ts +10 -6
  343. package/features/pages/updatePage/UpdatePageRepository.js +9 -3
  344. package/features/pages/updatePage/UpdatePageRepository.js.map +1 -1
  345. package/features/pages/updatePage/UpdatePageUseCase.d.ts +8 -6
  346. package/features/pages/updatePage/UpdatePageUseCase.js +7 -2
  347. package/features/pages/updatePage/UpdatePageUseCase.js.map +1 -1
  348. package/features/pages/updatePage/UpdatePageUseCaseWithLoading.d.ts +10 -7
  349. package/features/pages/updatePage/UpdatePageUseCaseWithLoading.js +10 -4
  350. package/features/pages/updatePage/UpdatePageUseCaseWithLoading.js.map +1 -1
  351. package/features/pages/updatePage/abstractions.d.ts +33 -0
  352. package/features/pages/updatePage/abstractions.js +6 -0
  353. package/features/pages/updatePage/abstractions.js.map +1 -0
  354. package/features/pages/updatePage/feature.d.ts +3 -0
  355. package/features/pages/updatePage/feature.js +22 -0
  356. package/features/pages/updatePage/feature.js.map +1 -0
  357. package/features/pages/updatePage/index.d.ts +2 -1
  358. package/features/pages/updatePage/index.js +1 -1
  359. package/features/pages/updatePage/index.js.map +1 -1
  360. package/features/permissions/abstractions.d.ts +17 -0
  361. package/features/permissions/abstractions.js +5 -0
  362. package/features/permissions/abstractions.js.map +1 -0
  363. package/features/permissions/feature.d.ts +14 -0
  364. package/features/permissions/feature.js +6 -0
  365. package/features/permissions/feature.js.map +1 -0
  366. package/modules/pages/PageEditor/DefaultPageEditorConfig.js +4 -0
  367. package/modules/pages/PageEditor/DefaultPageEditorConfig.js.map +1 -1
  368. package/modules/pages/PageEditor/PageEditorConfig.d.ts +6 -4
  369. package/modules/pages/PageEditor/TopBar/SettingsButton.js +1 -1
  370. package/modules/pages/PageEditor/TopBar/SettingsButton.js.map +1 -1
  371. package/modules/pages/PageEditor/TopBar/Title.js +10 -4
  372. package/modules/pages/PageEditor/TopBar/Title.js.map +1 -1
  373. package/modules/pages/PagesList/components/Main/Main.js +12 -8
  374. package/modules/pages/PagesList/components/Main/Main.js.map +1 -1
  375. package/modules/pages/PagesList/components/Table/Cells/CellActions.js +3 -0
  376. package/modules/pages/PagesList/components/Table/Cells/CellActions.js.map +1 -1
  377. package/modules/pages/PagesList/components/Table/Cells/CellName.js +4 -0
  378. package/modules/pages/PagesList/components/Table/Cells/CellName.js.map +1 -1
  379. package/modules/pages/PagesListConfig.js +17 -15
  380. package/modules/pages/PagesListConfig.js.map +1 -1
  381. package/modules/pages/configs/list/PageListConfig.d.ts +0 -2
  382. package/modules/pages/configs/list/PageListConfig.js +2 -5
  383. package/modules/pages/configs/list/PageListConfig.js.map +1 -1
  384. package/modules/redirects/RedirectsListConfig.js +2 -1
  385. package/modules/redirects/RedirectsListConfig.js.map +1 -1
  386. package/package.json +35 -33
  387. package/presentation/components/LanguageCodeTag.d.ts +6 -0
  388. package/presentation/components/LanguageCodeTag.js +20 -0
  389. package/presentation/components/LanguageCodeTag.js.map +1 -0
  390. package/presentation/components/LanguageSelector.d.ts +8 -0
  391. package/presentation/components/LanguageSelector.js +27 -0
  392. package/presentation/components/LanguageSelector.js.map +1 -0
  393. package/presentation/navigation/NextjsConfig/NextjsConfigGateway.d.ts +2 -2
  394. package/presentation/navigation/NextjsConfig/NextjsConfigGateway.js +2 -2
  395. package/presentation/navigation/NextjsConfig/NextjsConfigGateway.js.map +1 -1
  396. package/presentation/pages/CreatePage/AddLanguageModifier.d.ts +24 -0
  397. package/presentation/pages/CreatePage/AddLanguageModifier.js +117 -0
  398. package/presentation/pages/CreatePage/AddLanguageModifier.js.map +1 -0
  399. package/presentation/pages/CreatePage/CreatePage.test.d.ts +1 -0
  400. package/presentation/pages/CreatePage/CreatePage.test.js +321 -0
  401. package/presentation/pages/CreatePage/CreatePage.test.js.map +1 -0
  402. package/presentation/pages/CreatePage/CreatePageConfig.d.ts +2 -0
  403. package/presentation/pages/CreatePage/CreatePageConfig.js +11 -0
  404. package/presentation/pages/CreatePage/CreatePageConfig.js.map +1 -0
  405. package/presentation/pages/CreatePage/CreatePageDialog.d.ts +6 -0
  406. package/presentation/pages/CreatePage/CreatePageDialog.js +72 -0
  407. package/presentation/pages/CreatePage/CreatePageDialog.js.map +1 -0
  408. package/presentation/pages/CreatePage/CreatePagePresenter.d.ts +23 -0
  409. package/presentation/pages/CreatePage/CreatePagePresenter.js +134 -0
  410. package/presentation/pages/CreatePage/CreatePagePresenter.js.map +1 -0
  411. package/presentation/pages/CreatePage/PageTypeProvider.d.ts +34 -0
  412. package/presentation/pages/CreatePage/PageTypeProvider.js +48 -0
  413. package/presentation/pages/CreatePage/PageTypeProvider.js.map +1 -0
  414. package/presentation/pages/CreatePage/StaticPageType.d.ts +9 -0
  415. package/presentation/pages/CreatePage/StaticPageType.js +11 -0
  416. package/presentation/pages/CreatePage/StaticPageType.js.map +1 -0
  417. package/presentation/pages/CreatePage/WithLanguageSelector.d.ts +7 -0
  418. package/presentation/pages/CreatePage/WithLanguageSelector.js +55 -0
  419. package/presentation/pages/CreatePage/WithLanguageSelector.js.map +1 -0
  420. package/presentation/pages/CreatePage/abstractions.d.ts +51 -0
  421. package/presentation/pages/CreatePage/abstractions.js +27 -0
  422. package/presentation/pages/CreatePage/abstractions.js.map +1 -0
  423. package/presentation/pages/CreatePage/createPageSchema.d.ts +4 -0
  424. package/presentation/pages/CreatePage/createPageSchema.js +6 -0
  425. package/presentation/pages/CreatePage/createPageSchema.js.map +1 -0
  426. package/presentation/pages/CreatePage/feature.d.ts +3 -0
  427. package/presentation/pages/CreatePage/feature.js +28 -0
  428. package/presentation/pages/CreatePage/feature.js.map +1 -0
  429. package/presentation/pages/CreatePage/index.d.ts +6 -0
  430. package/presentation/pages/CreatePage/index.js +7 -0
  431. package/presentation/pages/CreatePage/index.js.map +1 -0
  432. package/presentation/pages/TranslatePage/TranslatePageAction.d.ts +2 -0
  433. package/presentation/pages/TranslatePage/TranslatePageAction.js +29 -0
  434. package/presentation/pages/TranslatePage/TranslatePageAction.js.map +1 -0
  435. package/presentation/pages/TranslatePage/TranslatePageConfig.d.ts +2 -0
  436. package/presentation/pages/TranslatePage/TranslatePageConfig.js +23 -0
  437. package/presentation/pages/TranslatePage/TranslatePageConfig.js.map +1 -0
  438. package/presentation/pages/TranslatePage/TranslatePageDialog.d.ts +3 -0
  439. package/presentation/pages/TranslatePage/TranslatePageDialog.js +86 -0
  440. package/presentation/pages/TranslatePage/TranslatePageDialog.js.map +1 -0
  441. package/presentation/pages/TranslatePage/translatePageSchema.d.ts +6 -0
  442. package/presentation/pages/TranslatePage/translatePageSchema.js +8 -0
  443. package/presentation/pages/TranslatePage/translatePageSchema.js.map +1 -0
  444. package/presentation/pages/hooks/useCreatePage.d.ts +4 -0
  445. package/presentation/pages/hooks/useCreatePage.js +16 -0
  446. package/presentation/pages/hooks/useCreatePage.js.map +1 -0
  447. package/{features/pages/createPageRevisionFrom → presentation/pages/hooks}/useCreatePageRevisionFrom.d.ts +1 -1
  448. package/presentation/pages/hooks/useCreatePageRevisionFrom.js +16 -0
  449. package/presentation/pages/hooks/useCreatePageRevisionFrom.js.map +1 -0
  450. package/{features/pages/deletePage → presentation/pages/hooks}/useDeletePage.d.ts +1 -1
  451. package/presentation/pages/hooks/useDeletePage.js +16 -0
  452. package/presentation/pages/hooks/useDeletePage.js.map +1 -0
  453. package/{features/pages/duplicatePage → presentation/pages/hooks}/useDuplicatePage.d.ts +1 -1
  454. package/presentation/pages/hooks/useDuplicatePage.js +16 -0
  455. package/presentation/pages/hooks/useDuplicatePage.js.map +1 -0
  456. package/{features/pages/loadPages → presentation/pages/hooks}/useFilterPages.js +7 -6
  457. package/presentation/pages/hooks/useFilterPages.js.map +1 -0
  458. package/{features/pages/getPage → presentation/pages/hooks}/useGetPage.d.ts +1 -1
  459. package/presentation/pages/hooks/useGetPage.js +16 -0
  460. package/presentation/pages/hooks/useGetPage.js.map +1 -0
  461. package/presentation/pages/hooks/useGetPageRevisions.d.ts +5 -0
  462. package/presentation/pages/hooks/useGetPageRevisions.js +18 -0
  463. package/presentation/pages/hooks/useGetPageRevisions.js.map +1 -0
  464. package/presentation/pages/hooks/useLoadMorePages.js +16 -0
  465. package/presentation/pages/hooks/useLoadMorePages.js.map +1 -0
  466. package/{features/pages/loadPages → presentation/pages/hooks}/useLoadPages.d.ts +1 -1
  467. package/presentation/pages/hooks/useLoadPages.js +16 -0
  468. package/presentation/pages/hooks/useLoadPages.js.map +1 -0
  469. package/{features/pages/movePage → presentation/pages/hooks}/useMovePage.d.ts +1 -1
  470. package/presentation/pages/hooks/useMovePage.js +16 -0
  471. package/presentation/pages/hooks/useMovePage.js.map +1 -0
  472. package/{features/pages/publishPage → presentation/pages/hooks}/usePublishPage.d.ts +1 -1
  473. package/presentation/pages/hooks/usePublishPage.js +16 -0
  474. package/presentation/pages/hooks/usePublishPage.js.map +1 -0
  475. package/{features/pages/loadPages → presentation/pages/hooks}/useSearchPages.js +7 -6
  476. package/presentation/pages/hooks/useSearchPages.js.map +1 -0
  477. package/presentation/pages/hooks/useSelectPages.d.ts +3 -0
  478. package/presentation/pages/hooks/useSelectPages.js +16 -0
  479. package/presentation/pages/hooks/useSelectPages.js.map +1 -0
  480. package/{features/pages/loadPages → presentation/pages/hooks}/useSortPages.js +7 -7
  481. package/presentation/pages/hooks/useSortPages.js.map +1 -0
  482. package/presentation/pages/hooks/useTranslatePage.d.ts +4 -0
  483. package/presentation/pages/hooks/useTranslatePage.js +16 -0
  484. package/presentation/pages/hooks/useTranslatePage.js.map +1 -0
  485. package/{features/pages/unpublishPage → presentation/pages/hooks}/useUnpublishPage.d.ts +1 -1
  486. package/presentation/pages/hooks/useUnpublishPage.js +16 -0
  487. package/presentation/pages/hooks/useUnpublishPage.js.map +1 -0
  488. package/{features/pages/updatePage → presentation/pages/hooks}/useUpdatePage.d.ts +1 -1
  489. package/presentation/pages/hooks/useUpdatePage.js +16 -0
  490. package/presentation/pages/hooks/useUpdatePage.js.map +1 -0
  491. package/presentation/security/HasPermission.js +3 -3
  492. package/presentation/security/HasPermission.js.map +1 -1
  493. package/presentation/security/usePermissions.js +3 -3
  494. package/presentation/security/usePermissions.js.map +1 -1
  495. package/shared/PagePath.d.ts +32 -0
  496. package/shared/PagePath.js +87 -0
  497. package/shared/PagePath.js.map +1 -0
  498. package/shared/PagePath.test.d.ts +1 -0
  499. package/shared/PagePath.test.js +81 -0
  500. package/shared/PagePath.test.js.map +1 -0
  501. package/features/pageTypes/PageType.d.ts +0 -6
  502. package/features/pageTypes/PageType.js +0 -3
  503. package/features/pageTypes/PageType.js.map +0 -1
  504. package/features/pageTypes/pageTypesCache.d.ts +0 -3
  505. package/features/pageTypes/pageTypesCache.js +0 -4
  506. package/features/pageTypes/pageTypesCache.js.map +0 -1
  507. package/features/pageTypes/useGetPageType.d.ts +0 -3
  508. package/features/pageTypes/useGetPageType.js +0 -15
  509. package/features/pageTypes/useGetPageType.js.map +0 -1
  510. package/features/pageTypes/usePageTypes.d.ts +0 -6
  511. package/features/pageTypes/usePageTypes.js +0 -27
  512. package/features/pageTypes/usePageTypes.js.map +0 -1
  513. package/features/pages/createPage/CreatePage.d.ts +0 -5
  514. package/features/pages/createPage/CreatePage.js +0 -15
  515. package/features/pages/createPage/CreatePage.js.map +0 -1
  516. package/features/pages/createPage/CreatePageGqlGateway.d.ts +0 -23
  517. package/features/pages/createPage/CreatePageGqlGateway.js +0 -48
  518. package/features/pages/createPage/CreatePageGqlGateway.js.map +0 -1
  519. package/features/pages/createPage/ICreatePageGateway.d.ts +0 -5
  520. package/features/pages/createPage/ICreatePageGateway.js +0 -3
  521. package/features/pages/createPage/ICreatePageGateway.js.map +0 -1
  522. package/features/pages/createPage/ICreatePageRepository.d.ts +0 -4
  523. package/features/pages/createPage/ICreatePageRepository.js +0 -3
  524. package/features/pages/createPage/ICreatePageRepository.js.map +0 -1
  525. package/features/pages/createPage/ICreatePageUseCase.d.ts +0 -13
  526. package/features/pages/createPage/ICreatePageUseCase.js +0 -3
  527. package/features/pages/createPage/ICreatePageUseCase.js.map +0 -1
  528. package/features/pages/createPage/useCreatePage.d.ts +0 -4
  529. package/features/pages/createPage/useCreatePage.js +0 -19
  530. package/features/pages/createPage/useCreatePage.js.map +0 -1
  531. package/features/pages/createPageRevisionFrom/CreatePageRevisionFrom.d.ts +0 -5
  532. package/features/pages/createPageRevisionFrom/CreatePageRevisionFrom.js +0 -15
  533. package/features/pages/createPageRevisionFrom/CreatePageRevisionFrom.js.map +0 -1
  534. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGqlGateway.d.ts +0 -22
  535. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGqlGateway.js +0 -46
  536. package/features/pages/createPageRevisionFrom/CreatePageRevisionFromGqlGateway.js.map +0 -1
  537. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromGateway.d.ts +0 -4
  538. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromGateway.js +0 -3
  539. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromGateway.js.map +0 -1
  540. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromRepository.d.ts +0 -4
  541. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromRepository.js +0 -3
  542. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromRepository.js.map +0 -1
  543. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromUseCase.d.ts +0 -7
  544. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromUseCase.js +0 -3
  545. package/features/pages/createPageRevisionFrom/ICreatePageRevisionFromUseCase.js.map +0 -1
  546. package/features/pages/createPageRevisionFrom/PageGatewayDto.d.ts +0 -19
  547. package/features/pages/createPageRevisionFrom/PageGatewayDto.js +0 -3
  548. package/features/pages/createPageRevisionFrom/PageGatewayDto.js.map +0 -1
  549. package/features/pages/createPageRevisionFrom/useCreatePageRevisionFrom.js +0 -19
  550. package/features/pages/createPageRevisionFrom/useCreatePageRevisionFrom.js.map +0 -1
  551. package/features/pages/deletePage/DeletePage.d.ts +0 -5
  552. package/features/pages/deletePage/DeletePage.js +0 -16
  553. package/features/pages/deletePage/DeletePage.js.map +0 -1
  554. package/features/pages/deletePage/DeletePageGqlGateway.d.ts +0 -21
  555. package/features/pages/deletePage/DeletePageGqlGateway.js +0 -44
  556. package/features/pages/deletePage/DeletePageGqlGateway.js.map +0 -1
  557. package/features/pages/deletePage/IDeletePageGateway.d.ts +0 -3
  558. package/features/pages/deletePage/IDeletePageGateway.js +0 -3
  559. package/features/pages/deletePage/IDeletePageGateway.js.map +0 -1
  560. package/features/pages/deletePage/IDeletePageRepository.d.ts +0 -4
  561. package/features/pages/deletePage/IDeletePageRepository.js +0 -3
  562. package/features/pages/deletePage/IDeletePageRepository.js.map +0 -1
  563. package/features/pages/deletePage/IDeletePageUseCase.d.ts +0 -7
  564. package/features/pages/deletePage/IDeletePageUseCase.js +0 -3
  565. package/features/pages/deletePage/IDeletePageUseCase.js.map +0 -1
  566. package/features/pages/deletePage/useDeletePage.js +0 -17
  567. package/features/pages/deletePage/useDeletePage.js.map +0 -1
  568. package/features/pages/duplicatePage/DuplicatePage.d.ts +0 -5
  569. package/features/pages/duplicatePage/DuplicatePage.js +0 -16
  570. package/features/pages/duplicatePage/DuplicatePage.js.map +0 -1
  571. package/features/pages/duplicatePage/DuplicatePageGqlGateway.d.ts +0 -22
  572. package/features/pages/duplicatePage/DuplicatePageGqlGateway.js +0 -46
  573. package/features/pages/duplicatePage/DuplicatePageGqlGateway.js.map +0 -1
  574. package/features/pages/duplicatePage/IDuplicatePageGateway.d.ts +0 -4
  575. package/features/pages/duplicatePage/IDuplicatePageGateway.js +0 -3
  576. package/features/pages/duplicatePage/IDuplicatePageGateway.js.map +0 -1
  577. package/features/pages/duplicatePage/IDuplicatePageRepository.d.ts +0 -4
  578. package/features/pages/duplicatePage/IDuplicatePageRepository.js +0 -3
  579. package/features/pages/duplicatePage/IDuplicatePageRepository.js.map +0 -1
  580. package/features/pages/duplicatePage/IDuplicatePageUseCase.d.ts +0 -6
  581. package/features/pages/duplicatePage/IDuplicatePageUseCase.js +0 -3
  582. package/features/pages/duplicatePage/IDuplicatePageUseCase.js.map +0 -1
  583. package/features/pages/duplicatePage/PageGatewayDto.d.ts +0 -19
  584. package/features/pages/duplicatePage/PageGatewayDto.js +0 -3
  585. package/features/pages/duplicatePage/PageGatewayDto.js.map +0 -1
  586. package/features/pages/duplicatePage/useDuplicatePage.js +0 -19
  587. package/features/pages/duplicatePage/useDuplicatePage.js.map +0 -1
  588. package/features/pages/getPage/GetPage.d.ts +0 -10
  589. package/features/pages/getPage/GetPage.js +0 -19
  590. package/features/pages/getPage/GetPage.js.map +0 -1
  591. package/features/pages/getPage/GetPageGqlGateway.d.ts +0 -22
  592. package/features/pages/getPage/GetPageGqlGateway.js +0 -50
  593. package/features/pages/getPage/GetPageGqlGateway.js.map +0 -1
  594. package/features/pages/getPage/IGetPageGateway.d.ts +0 -4
  595. package/features/pages/getPage/IGetPageGateway.js +0 -3
  596. package/features/pages/getPage/IGetPageGateway.js.map +0 -1
  597. package/features/pages/getPage/IGetPageRepository.d.ts +0 -4
  598. package/features/pages/getPage/IGetPageRepository.js +0 -3
  599. package/features/pages/getPage/IGetPageRepository.js.map +0 -1
  600. package/features/pages/getPage/IGetPageUseCase.d.ts +0 -7
  601. package/features/pages/getPage/IGetPageUseCase.js +0 -3
  602. package/features/pages/getPage/IGetPageUseCase.js.map +0 -1
  603. package/features/pages/getPage/useGetPage.js +0 -13
  604. package/features/pages/getPage/useGetPage.js.map +0 -1
  605. package/features/pages/getPage/useGetPageGatewayInstance.d.ts +0 -2
  606. package/features/pages/getPage/useGetPageGatewayInstance.js +0 -23
  607. package/features/pages/getPage/useGetPageGatewayInstance.js.map +0 -1
  608. package/features/pages/getPageRevisions/GetPageRevisions.d.ts +0 -11
  609. package/features/pages/getPageRevisions/GetPageRevisions.js +0 -20
  610. package/features/pages/getPageRevisions/GetPageRevisions.js.map +0 -1
  611. package/features/pages/getPageRevisions/GetPageRevisionsGqlGateway.d.ts +0 -24
  612. package/features/pages/getPageRevisions/GetPageRevisionsGqlGateway.js.map +0 -1
  613. package/features/pages/getPageRevisions/IGetPageRevisionsGateway.d.ts +0 -4
  614. package/features/pages/getPageRevisions/IGetPageRevisionsGateway.js +0 -3
  615. package/features/pages/getPageRevisions/IGetPageRevisionsGateway.js.map +0 -1
  616. package/features/pages/getPageRevisions/IGetPageRevisionsRepository.d.ts +0 -4
  617. package/features/pages/getPageRevisions/IGetPageRevisionsRepository.js +0 -3
  618. package/features/pages/getPageRevisions/IGetPageRevisionsRepository.js.map +0 -1
  619. package/features/pages/getPageRevisions/IGetPageRevisionsUseCase.d.ts +0 -7
  620. package/features/pages/getPageRevisions/IGetPageRevisionsUseCase.js +0 -3
  621. package/features/pages/getPageRevisions/IGetPageRevisionsUseCase.js.map +0 -1
  622. package/features/pages/getPageRevisions/useGetPageRevisions.d.ts +0 -5
  623. package/features/pages/getPageRevisions/useGetPageRevisions.js +0 -20
  624. package/features/pages/getPageRevisions/useGetPageRevisions.js.map +0 -1
  625. package/features/pages/loadPages/FilterPages.d.ts +0 -5
  626. package/features/pages/loadPages/FilterPages.js +0 -10
  627. package/features/pages/loadPages/FilterPages.js.map +0 -1
  628. package/features/pages/loadPages/IFilterPagesUseCase.d.ts +0 -7
  629. package/features/pages/loadPages/IFilterPagesUseCase.js +0 -3
  630. package/features/pages/loadPages/IFilterPagesUseCase.js.map +0 -1
  631. package/features/pages/loadPages/IListPagesGateway.d.ts +0 -16
  632. package/features/pages/loadPages/IListPagesGateway.js +0 -3
  633. package/features/pages/loadPages/IListPagesGateway.js.map +0 -1
  634. package/features/pages/loadPages/IListPagesRepository.d.ts +0 -12
  635. package/features/pages/loadPages/IListPagesRepository.js +0 -3
  636. package/features/pages/loadPages/IListPagesRepository.js.map +0 -1
  637. package/features/pages/loadPages/ILoadMorePagesUseCase.d.ts +0 -3
  638. package/features/pages/loadPages/ILoadMorePagesUseCase.js +0 -3
  639. package/features/pages/loadPages/ILoadMorePagesUseCase.js.map +0 -1
  640. package/features/pages/loadPages/ILoadPagesUseCase.d.ts +0 -7
  641. package/features/pages/loadPages/ILoadPagesUseCase.js +0 -3
  642. package/features/pages/loadPages/ILoadPagesUseCase.js.map +0 -1
  643. package/features/pages/loadPages/ISearchPagesUseCase.d.ts +0 -7
  644. package/features/pages/loadPages/ISearchPagesUseCase.js +0 -3
  645. package/features/pages/loadPages/ISearchPagesUseCase.js.map +0 -1
  646. package/features/pages/loadPages/ISortPagesUseCase.d.ts +0 -7
  647. package/features/pages/loadPages/ISortPagesUseCase.js +0 -3
  648. package/features/pages/loadPages/ISortPagesUseCase.js.map +0 -1
  649. package/features/pages/loadPages/ListPagesGqlGateway.d.ts +0 -40
  650. package/features/pages/loadPages/ListPagesGqlGateway.js +0 -71
  651. package/features/pages/loadPages/ListPagesGqlGateway.js.map +0 -1
  652. package/features/pages/loadPages/ListPagesRepositoryFactory.d.ts +0 -6
  653. package/features/pages/loadPages/ListPagesRepositoryFactory.js +0 -25
  654. package/features/pages/loadPages/ListPagesRepositoryFactory.js.map +0 -1
  655. package/features/pages/loadPages/LoadMorePages.d.ts +0 -5
  656. package/features/pages/loadPages/LoadMorePages.js +0 -10
  657. package/features/pages/loadPages/LoadMorePages.js.map +0 -1
  658. package/features/pages/loadPages/LoadPages.d.ts +0 -5
  659. package/features/pages/loadPages/LoadPages.js +0 -10
  660. package/features/pages/loadPages/LoadPages.js.map +0 -1
  661. package/features/pages/loadPages/SearchPages.d.ts +0 -5
  662. package/features/pages/loadPages/SearchPages.js +0 -10
  663. package/features/pages/loadPages/SearchPages.js.map +0 -1
  664. package/features/pages/loadPages/SortPages.d.ts +0 -5
  665. package/features/pages/loadPages/SortPages.js +0 -10
  666. package/features/pages/loadPages/SortPages.js.map +0 -1
  667. package/features/pages/loadPages/useFilterPages.js.map +0 -1
  668. package/features/pages/loadPages/useListPagesGateway.d.ts +0 -2
  669. package/features/pages/loadPages/useListPagesGateway.js +0 -18
  670. package/features/pages/loadPages/useListPagesGateway.js.map +0 -1
  671. package/features/pages/loadPages/useLoadMorePages.js +0 -15
  672. package/features/pages/loadPages/useLoadMorePages.js.map +0 -1
  673. package/features/pages/loadPages/useLoadPages.js +0 -15
  674. package/features/pages/loadPages/useLoadPages.js.map +0 -1
  675. package/features/pages/loadPages/useSearchPages.js.map +0 -1
  676. package/features/pages/loadPages/useSortPages.js.map +0 -1
  677. package/features/pages/movePage/IMovePageGateway.d.ts +0 -3
  678. package/features/pages/movePage/IMovePageGateway.js +0 -3
  679. package/features/pages/movePage/IMovePageGateway.js.map +0 -1
  680. package/features/pages/movePage/IMovePageRepository.d.ts +0 -3
  681. package/features/pages/movePage/IMovePageRepository.js +0 -3
  682. package/features/pages/movePage/IMovePageRepository.js.map +0 -1
  683. package/features/pages/movePage/IMovePageUseCase.d.ts +0 -7
  684. package/features/pages/movePage/IMovePageUseCase.js +0 -3
  685. package/features/pages/movePage/IMovePageUseCase.js.map +0 -1
  686. package/features/pages/movePage/MovePage.d.ts +0 -5
  687. package/features/pages/movePage/MovePage.js +0 -15
  688. package/features/pages/movePage/MovePage.js.map +0 -1
  689. package/features/pages/movePage/MovePageGqlGateway.d.ts +0 -21
  690. package/features/pages/movePage/MovePageGqlGateway.js +0 -44
  691. package/features/pages/movePage/MovePageGqlGateway.js.map +0 -1
  692. package/features/pages/movePage/useMovePage.js +0 -17
  693. package/features/pages/movePage/useMovePage.js.map +0 -1
  694. package/features/pages/publishPage/IPublishPageGateway.d.ts +0 -4
  695. package/features/pages/publishPage/IPublishPageGateway.js +0 -3
  696. package/features/pages/publishPage/IPublishPageGateway.js.map +0 -1
  697. package/features/pages/publishPage/IPublishPageRepository.d.ts +0 -4
  698. package/features/pages/publishPage/IPublishPageRepository.js +0 -3
  699. package/features/pages/publishPage/IPublishPageRepository.js.map +0 -1
  700. package/features/pages/publishPage/IPublishPageUseCase.d.ts +0 -6
  701. package/features/pages/publishPage/IPublishPageUseCase.js +0 -3
  702. package/features/pages/publishPage/IPublishPageUseCase.js.map +0 -1
  703. package/features/pages/publishPage/PageGatewayDto.d.ts +0 -19
  704. package/features/pages/publishPage/PageGatewayDto.js +0 -3
  705. package/features/pages/publishPage/PageGatewayDto.js.map +0 -1
  706. package/features/pages/publishPage/PublishPage.d.ts +0 -5
  707. package/features/pages/publishPage/PublishPage.js +0 -15
  708. package/features/pages/publishPage/PublishPage.js.map +0 -1
  709. package/features/pages/publishPage/PublishPageGqlGateway.d.ts +0 -22
  710. package/features/pages/publishPage/PublishPageGqlGateway.js +0 -46
  711. package/features/pages/publishPage/PublishPageGqlGateway.js.map +0 -1
  712. package/features/pages/publishPage/usePublishPage.js +0 -19
  713. package/features/pages/publishPage/usePublishPage.js.map +0 -1
  714. package/features/pages/selectPages/ISelectPagesUseCases.d.ts +0 -3
  715. package/features/pages/selectPages/ISelectPagesUseCases.js +0 -3
  716. package/features/pages/selectPages/ISelectPagesUseCases.js.map +0 -1
  717. package/features/pages/selectPages/SelectPages.d.ts +0 -4
  718. package/features/pages/selectPages/SelectPages.js +0 -10
  719. package/features/pages/selectPages/SelectPages.js.map +0 -1
  720. package/features/pages/unpublishPage/IUnpublishPageGateway.d.ts +0 -4
  721. package/features/pages/unpublishPage/IUnpublishPageGateway.js +0 -3
  722. package/features/pages/unpublishPage/IUnpublishPageGateway.js.map +0 -1
  723. package/features/pages/unpublishPage/IUnpublishPageRepository.d.ts +0 -4
  724. package/features/pages/unpublishPage/IUnpublishPageRepository.js +0 -3
  725. package/features/pages/unpublishPage/IUnpublishPageRepository.js.map +0 -1
  726. package/features/pages/unpublishPage/IUnpublishPageUseCase.d.ts +0 -6
  727. package/features/pages/unpublishPage/IUnpublishPageUseCase.js +0 -3
  728. package/features/pages/unpublishPage/IUnpublishPageUseCase.js.map +0 -1
  729. package/features/pages/unpublishPage/PageGatewayDto.d.ts +0 -19
  730. package/features/pages/unpublishPage/PageGatewayDto.js +0 -3
  731. package/features/pages/unpublishPage/PageGatewayDto.js.map +0 -1
  732. package/features/pages/unpublishPage/UnpublishPage.d.ts +0 -5
  733. package/features/pages/unpublishPage/UnpublishPage.js +0 -15
  734. package/features/pages/unpublishPage/UnpublishPage.js.map +0 -1
  735. package/features/pages/unpublishPage/UnpublishPageGqlGateway.d.ts +0 -22
  736. package/features/pages/unpublishPage/UnpublishPageGqlGateway.js +0 -46
  737. package/features/pages/unpublishPage/UnpublishPageGqlGateway.js.map +0 -1
  738. package/features/pages/unpublishPage/useUnpublishPage.js +0 -19
  739. package/features/pages/unpublishPage/useUnpublishPage.js.map +0 -1
  740. package/features/pages/updatePage/IUpdatePageGateway.d.ts +0 -5
  741. package/features/pages/updatePage/IUpdatePageGateway.js +0 -3
  742. package/features/pages/updatePage/IUpdatePageGateway.js.map +0 -1
  743. package/features/pages/updatePage/IUpdatePageRepository.d.ts +0 -4
  744. package/features/pages/updatePage/IUpdatePageRepository.js +0 -3
  745. package/features/pages/updatePage/IUpdatePageRepository.js.map +0 -1
  746. package/features/pages/updatePage/IUpdatePageUseCase.d.ts +0 -11
  747. package/features/pages/updatePage/IUpdatePageUseCase.js +0 -3
  748. package/features/pages/updatePage/IUpdatePageUseCase.js.map +0 -1
  749. package/features/pages/updatePage/UpdatePage.d.ts +0 -5
  750. package/features/pages/updatePage/UpdatePage.js +0 -15
  751. package/features/pages/updatePage/UpdatePage.js.map +0 -1
  752. package/features/pages/updatePage/UpdatePageGqlGateway.d.ts +0 -24
  753. package/features/pages/updatePage/UpdatePageGqlGateway.js +0 -61
  754. package/features/pages/updatePage/UpdatePageGqlGateway.js.map +0 -1
  755. package/features/pages/updatePage/useUpdatePage.js +0 -19
  756. package/features/pages/updatePage/useUpdatePage.js.map +0 -1
  757. package/modules/pages/PagesList/components/Main/CreatePage/CreatePage.d.ts +0 -3
  758. package/modules/pages/PagesList/components/Main/CreatePage/CreatePage.js +0 -103
  759. package/modules/pages/PagesList/components/Main/CreatePage/CreatePage.js.map +0 -1
  760. package/modules/pages/PagesList/components/Main/CreatePage/StaticPageForm.d.ts +0 -2
  761. package/modules/pages/PagesList/components/Main/CreatePage/StaticPageForm.js +0 -40
  762. package/modules/pages/PagesList/components/Main/CreatePage/StaticPageForm.js.map +0 -1
  763. package/modules/pages/configs/list/PageType.d.ts +0 -11
  764. package/modules/pages/configs/list/PageType.js +0 -22
  765. package/modules/pages/configs/list/PageType.js.map +0 -1
  766. /package/{features/pages/loadPages → presentation/pages/hooks}/useFilterPages.d.ts +0 -0
  767. /package/{features/pages/loadPages → presentation/pages/hooks}/useLoadMorePages.d.ts +0 -0
  768. /package/{features/pages/loadPages → presentation/pages/hooks}/useSearchPages.d.ts +0 -0
  769. /package/{features/pages/loadPages → presentation/pages/hooks}/useSortPages.d.ts +0 -0
@@ -0,0 +1,321 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { FormModel as FormModelImpl } from "@webiny/app-admin/features/formModel/FormModel.js";
3
+ import { AddLanguageModifier } from "./AddLanguageModifier.js";
4
+ import { PagePath } from "../../../shared/PagePath.js";
5
+ /**
6
+ * Creates a mock use case + repository pair for the AddLanguageModifier.
7
+ * Languages are pre-populated (simulating a completed fetch).
8
+ */
9
+ function createLanguageMocks(languages) {
10
+ const repository = {
11
+ execute: async () => languages,
12
+ getLanguages: () => languages
13
+ };
14
+ const useCase = {
15
+ execute: async () => languages
16
+ };
17
+ return {
18
+ useCase,
19
+ repository
20
+ };
21
+ }
22
+
23
+ /**
24
+ * Creates the same base form that CreatePagePresenter builds,
25
+ * without requiring DI or the page type cache.
26
+ */
27
+ function createBaseForm(config) {
28
+ return new FormModelImpl({
29
+ fields: fields => ({
30
+ title: fields.text().label("Title").required("Title is required").onBlur((value, f) => {
31
+ const currentPath = f.field("path").getValue();
32
+ if (currentPath) {
33
+ return;
34
+ }
35
+ f.field("path").setValue(PagePath.fromTitle(String(value)).toString());
36
+ }),
37
+ path: fields.text().label("Path").required("Path is required").beforeChange(value => {
38
+ return PagePath.create(String(value)).slugify().toString();
39
+ }),
40
+ pageType: fields.text().hidden().defaultValue("staticPage")
41
+ }),
42
+ layout: layout => [layout.row("title"), layout.row("path")],
43
+ ...config
44
+ });
45
+ }
46
+
47
+ /**
48
+ * Helper: set title and blur to trigger path generation.
49
+ */
50
+ function setTitleAndBlur(form, value) {
51
+ form.field("title").setValue(value);
52
+ form.field("title").blur();
53
+ }
54
+ describe("CreatePage base form", () => {
55
+ it("should create a form with title, path, and hidden pageType", () => {
56
+ const form = createBaseForm();
57
+ expect(form.field("title")).toBeDefined();
58
+ expect(form.field("path")).toBeDefined();
59
+ expect(form.field("pageType")).toBeDefined();
60
+ });
61
+ it("should include pageType in getData but not in layout", () => {
62
+ const form = createBaseForm();
63
+ const data = form.getData();
64
+ expect(data.pageType).toBe("staticPage");
65
+ const fieldNames = form.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
66
+ expect(fieldNames).not.toContain("pageType");
67
+ });
68
+ it("should auto-generate path from title on blur", () => {
69
+ const form = createBaseForm();
70
+ setTitleAndBlur(form, "Hello World");
71
+ expect(form.field("path").getValue()).toBe("/hello-world");
72
+ });
73
+ it("should not auto-generate path on setValue alone (before blur)", () => {
74
+ const form = createBaseForm();
75
+ form.field("title").setValue("Hello World");
76
+ expect(form.field("path").getValue()).toBeNull();
77
+ });
78
+ it("should not overwrite path when manually edited", () => {
79
+ const form = createBaseForm();
80
+ setTitleAndBlur(form, "Hello World");
81
+ form.field("path").setValue("/custom-path");
82
+ setTitleAndBlur(form, "New Title");
83
+ expect(form.field("path").getValue()).toBe("/custom-path");
84
+ });
85
+ it("should return data on valid submit", async () => {
86
+ const form = createBaseForm();
87
+ form.field("title").setValue("My Page");
88
+ form.field("path").setValue("/my-page");
89
+ const result = await form.submit();
90
+ expect(result).toEqual({
91
+ title: "My Page",
92
+ path: "/my-page",
93
+ pageType: "staticPage"
94
+ });
95
+ });
96
+ it("should return false on invalid submit", async () => {
97
+ const form = createBaseForm();
98
+ const result = await form.submit();
99
+ expect(result).toBe(false);
100
+ expect(form.errors.length).toBeGreaterThan(0);
101
+ });
102
+ });
103
+ describe("PageType + Modifier 3-layer architecture", () => {
104
+ /**
105
+ * Simulates the 3-layer build order used by CreatePagePresenter:
106
+ * 1. Base form (title, path, pageType)
107
+ * 2. Page type modify
108
+ * 3. Cross-cutting modifiers
109
+ */
110
+ function buildForm(pageType, modifiers = []) {
111
+ const form = createBaseForm();
112
+ pageType.modifyForm?.(form);
113
+ for (const modifier of modifiers) {
114
+ modifier.modifyForm(form);
115
+ }
116
+ return form;
117
+ }
118
+ const staticPageType = {
119
+ name: "static",
120
+ label: "Static Page",
121
+ modifyForm() {
122
+ // no-op
123
+ }
124
+ };
125
+ const productPageType = {
126
+ name: "product",
127
+ label: "Product Page",
128
+ modifyForm(form) {
129
+ form.fields(fields => ({
130
+ product: fields.select().label("Product").required("Product is required").options([{
131
+ label: "Shoes",
132
+ value: "shoes"
133
+ }, {
134
+ label: "Hats",
135
+ value: "hats"
136
+ }])
137
+ }));
138
+ form.field("title").setDisabled(true);
139
+ form.field("path").setDisabled(true);
140
+ form.layout(layout => [layout.row("product").before("title")]);
141
+ }
142
+ };
143
+ it("should leave base form unchanged for static page type", () => {
144
+ const form = buildForm(staticPageType);
145
+ const fieldNames = form.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
146
+ expect(fieldNames).toEqual(["title", "path"]);
147
+ });
148
+ it("should add product field and disable title/path for product page type", () => {
149
+ const form = buildForm(productPageType);
150
+ const fieldNames = form.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
151
+ expect(fieldNames).toEqual(["product", "title", "path"]);
152
+ expect(form.field("title").vm.disabled).toBe(true);
153
+ expect(form.field("path").vm.disabled).toBe(true);
154
+ });
155
+ it("should include product in getData", () => {
156
+ const form = buildForm(productPageType);
157
+ form.field("product").setValue("shoes");
158
+ const data = form.getData();
159
+ expect(data.product).toBe("shoes");
160
+ });
161
+ it("should apply cross-cutting modifier after page type", () => {
162
+ const langs = [{
163
+ id: "en",
164
+ code: "en",
165
+ name: "English",
166
+ isDefault: true
167
+ }, {
168
+ id: "de",
169
+ code: "de",
170
+ name: "German"
171
+ }];
172
+ const {
173
+ useCase,
174
+ repository
175
+ } = createLanguageMocks(langs);
176
+ const languageModifier = new AddLanguageModifier(useCase, repository);
177
+ const form = buildForm(productPageType, [languageModifier]);
178
+ const fieldNames = form.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
179
+
180
+ // language before title (from modifier), product before title (from page type)
181
+ expect(fieldNames).toEqual(["product", "language", "title", "path"]);
182
+ });
183
+ it("should apply cross-cutting modifier to static page type too", () => {
184
+ const langs = [{
185
+ id: "en",
186
+ code: "en",
187
+ name: "English",
188
+ isDefault: true
189
+ }, {
190
+ id: "de",
191
+ code: "de",
192
+ name: "German"
193
+ }];
194
+ const {
195
+ useCase,
196
+ repository
197
+ } = createLanguageMocks(langs);
198
+ const languageModifier = new AddLanguageModifier(useCase, repository);
199
+ const form = buildForm(staticPageType, [languageModifier]);
200
+ const fieldNames = form.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
201
+ expect(fieldNames).toEqual(["language", "title", "path"]);
202
+ });
203
+ });
204
+ describe("Form rebuild on page type switch", () => {
205
+ const staticPageType = {
206
+ name: "static",
207
+ label: "Static Page",
208
+ modifyForm() {
209
+ // no-op
210
+ }
211
+ };
212
+ const productPageType = {
213
+ name: "product",
214
+ label: "Product Page",
215
+ modifyForm(form) {
216
+ form.fields(fields => ({
217
+ product: fields.select().label("Product").required("Product is required").options([{
218
+ label: "Shoes",
219
+ value: "shoes"
220
+ }, {
221
+ label: "Hats",
222
+ value: "hats"
223
+ }])
224
+ }));
225
+ form.field("title").setDisabled(true);
226
+ form.field("path").setDisabled(true);
227
+ form.layout(layout => [layout.row("product").before("title")]);
228
+ }
229
+ };
230
+ const pageTypes = {
231
+ static: staticPageType,
232
+ product: productPageType
233
+ };
234
+
235
+ /**
236
+ * Simulates the presenter's changePageType: getData → rebuild → setData.
237
+ * The real presenter sets `this.selectedPageType` before `buildForm()`,
238
+ * which sets the hidden field's defaultValue. Here we just rebuild and restore.
239
+ */
240
+ function changePageType(currentForm, newType, modifiers = []) {
241
+ const previousData = currentForm.getData();
242
+ const form = createBaseForm();
243
+ pageTypes[newType].modifyForm?.(form);
244
+ for (const modifier of modifiers) {
245
+ modifier.modifyForm(form);
246
+ }
247
+ form.setData(previousData);
248
+ return form;
249
+ }
250
+ it("should preserve common field values when switching page types", () => {
251
+ // Start with static page, fill in title and path.
252
+ const staticForm = createBaseForm();
253
+ staticPageType.modifyForm?.(staticForm);
254
+ staticForm.field("title").setValue("My Page");
255
+ staticForm.field("path").setValue("/my-page");
256
+
257
+ // Switch to product page.
258
+ const productForm = changePageType(staticForm, "product");
259
+ expect(productForm.field("title").getValue()).toBe("My Page");
260
+ expect(productForm.field("path").getValue()).toBe("/my-page");
261
+ });
262
+ it("should drop page-type-specific fields on switch", () => {
263
+ // Start with product page, select a product.
264
+ const productForm = createBaseForm();
265
+ productPageType.modifyForm?.(productForm);
266
+ productForm.field("product").setValue("shoes");
267
+
268
+ // Switch to static page — product field should not exist.
269
+ const staticForm = changePageType(productForm, "static");
270
+ const fieldNames = staticForm.vm.layout.filter(n => n.type === "row").flatMap(row => row.fields.map(f => f.name));
271
+ expect(fieldNames).toEqual(["title", "path"]);
272
+ expect(staticForm.getData()).not.toHaveProperty("product");
273
+ });
274
+ it("should preserve cross-cutting modifier values across page type switch", () => {
275
+ const langs = [{
276
+ id: "en",
277
+ code: "en",
278
+ name: "English",
279
+ isDefault: true
280
+ }, {
281
+ id: "de",
282
+ code: "de",
283
+ name: "German"
284
+ }];
285
+ const {
286
+ useCase,
287
+ repository
288
+ } = createLanguageMocks(langs);
289
+ const languageModifier = new AddLanguageModifier(useCase, repository);
290
+
291
+ // Start with static page + language modifier.
292
+ const staticForm = createBaseForm();
293
+ staticPageType.modifyForm?.(staticForm);
294
+ languageModifier.modifyForm(staticForm);
295
+ staticForm.field("title").setValue("Demo");
296
+ // Language is auto-assigned "en" by the modifier reaction.
297
+
298
+ const langValue = staticForm.field("language").getValue();
299
+ expect(langValue).toBe("en");
300
+
301
+ // Switch to product page with same modifier.
302
+ const productForm = changePageType(staticForm, "product", [languageModifier]);
303
+ expect(productForm.field("language").getValue()).toBe("en");
304
+ expect(productForm.field("title").getValue()).toBe("Demo");
305
+ });
306
+ it("should preserve hidden field values across rebuild", () => {
307
+ const staticForm = createBaseForm();
308
+ staticPageType.modifyForm?.(staticForm);
309
+ expect(staticForm.getData().pageType).toBe("staticPage");
310
+
311
+ // Switch to product — setData restores pageType from previous form.
312
+ const productForm = changePageType(staticForm, "product");
313
+
314
+ // The hidden pageType field is preserved via setData.
315
+ // In the real presenter, buildForm() sets defaultValue to the new type,
316
+ // so the hidden field gets the correct value regardless.
317
+ expect(productForm.field("pageType").getValue()).toBe("staticPage");
318
+ });
319
+ });
320
+
321
+ //# sourceMappingURL=CreatePage.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","expect","FormModel","FormModelImpl","AddLanguageModifier","PagePath","createLanguageMocks","languages","repository","execute","getLanguages","useCase","createBaseForm","config","fields","title","text","label","required","onBlur","value","f","currentPath","field","getValue","setValue","fromTitle","String","toString","path","beforeChange","create","slugify","pageType","hidden","defaultValue","layout","row","setTitleAndBlur","form","blur","toBeDefined","data","getData","toBe","fieldNames","vm","filter","n","type","flatMap","map","name","not","toContain","toBeNull","result","submit","toEqual","errors","length","toBeGreaterThan","buildForm","modifiers","modifyForm","modifier","staticPageType","productPageType","product","select","options","setDisabled","before","disabled","langs","id","code","isDefault","languageModifier","pageTypes","static","changePageType","currentForm","newType","previousData","setData","staticForm","productForm","toHaveProperty","langValue"],"sources":["CreatePage.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { FormModel as FormModelImpl } from \"@webiny/app-admin/features/formModel/FormModel.js\";\nimport type { IFormModel, IFormModelConfig, IRowNodeVM } from \"@webiny/app-admin\";\nimport type { LanguageDto } from \"@webiny/languages/admin/features/listLanguages/abstractions.js\";\nimport { AddLanguageModifier } from \"./AddLanguageModifier.js\";\nimport { PagePath } from \"~/shared/PagePath.js\";\nimport type { IPageType, ICreatePageFormModifier } from \"./abstractions.js\";\n\n/**\n * Creates a mock use case + repository pair for the AddLanguageModifier.\n * Languages are pre-populated (simulating a completed fetch).\n */\nfunction createLanguageMocks(languages: LanguageDto[]) {\n const repository = {\n execute: async () => languages,\n getLanguages: () => languages\n };\n const useCase = {\n execute: async () => languages\n };\n return { useCase, repository };\n}\n\n/**\n * Creates the same base form that CreatePagePresenter builds,\n * without requiring DI or the page type cache.\n */\nfunction createBaseForm(config?: Partial<IFormModelConfig>) {\n return new FormModelImpl({\n fields: fields => ({\n title: fields\n .text()\n .label(\"Title\")\n .required(\"Title is required\")\n .onBlur((value, f) => {\n const currentPath = f.field(\"path\").getValue();\n if (currentPath) {\n return;\n }\n f.field(\"path\").setValue(PagePath.fromTitle(String(value)).toString());\n }),\n path: fields\n .text()\n .label(\"Path\")\n .required(\"Path is required\")\n .beforeChange(value => {\n return PagePath.create(String(value)).slugify().toString();\n }),\n pageType: fields.text().hidden().defaultValue(\"staticPage\")\n }),\n layout: layout => [layout.row(\"title\"), layout.row(\"path\")],\n ...config\n });\n}\n\n/**\n * Helper: set title and blur to trigger path generation.\n */\nfunction setTitleAndBlur(form: IFormModel, value: string) {\n form.field(\"title\").setValue(value);\n form.field(\"title\").blur();\n}\n\ndescribe(\"CreatePage base form\", () => {\n it(\"should create a form with title, path, and hidden pageType\", () => {\n const form = createBaseForm();\n expect(form.field(\"title\")).toBeDefined();\n expect(form.field(\"path\")).toBeDefined();\n expect(form.field(\"pageType\")).toBeDefined();\n });\n\n it(\"should include pageType in getData but not in layout\", () => {\n const form = createBaseForm();\n const data = form.getData();\n expect(data.pageType).toBe(\"staticPage\");\n\n const fieldNames = form.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n expect(fieldNames).not.toContain(\"pageType\");\n });\n\n it(\"should auto-generate path from title on blur\", () => {\n const form = createBaseForm();\n setTitleAndBlur(form, \"Hello World\");\n expect(form.field(\"path\").getValue()).toBe(\"/hello-world\");\n });\n\n it(\"should not auto-generate path on setValue alone (before blur)\", () => {\n const form = createBaseForm();\n form.field(\"title\").setValue(\"Hello World\");\n expect(form.field(\"path\").getValue()).toBeNull();\n });\n\n it(\"should not overwrite path when manually edited\", () => {\n const form = createBaseForm();\n setTitleAndBlur(form, \"Hello World\");\n form.field(\"path\").setValue(\"/custom-path\");\n setTitleAndBlur(form, \"New Title\");\n expect(form.field(\"path\").getValue()).toBe(\"/custom-path\");\n });\n\n it(\"should return data on valid submit\", async () => {\n const form = createBaseForm();\n form.field(\"title\").setValue(\"My Page\");\n form.field(\"path\").setValue(\"/my-page\");\n\n const result = await form.submit();\n expect(result).toEqual({\n title: \"My Page\",\n path: \"/my-page\",\n pageType: \"staticPage\"\n });\n });\n\n it(\"should return false on invalid submit\", async () => {\n const form = createBaseForm();\n const result = await form.submit();\n expect(result).toBe(false);\n expect(form.errors.length).toBeGreaterThan(0);\n });\n});\n\ndescribe(\"PageType + Modifier 3-layer architecture\", () => {\n /**\n * Simulates the 3-layer build order used by CreatePagePresenter:\n * 1. Base form (title, path, pageType)\n * 2. Page type modify\n * 3. Cross-cutting modifiers\n */\n function buildForm(pageType: IPageType, modifiers: ICreatePageFormModifier[] = []): IFormModel {\n const form = createBaseForm();\n pageType.modifyForm?.(form);\n for (const modifier of modifiers) {\n modifier.modifyForm(form);\n }\n return form;\n }\n\n const staticPageType: IPageType = {\n name: \"static\",\n label: \"Static Page\",\n modifyForm() {\n // no-op\n }\n };\n\n const productPageType: IPageType = {\n name: \"product\",\n label: \"Product Page\",\n modifyForm(form) {\n form.fields(fields => ({\n product: fields\n .select()\n .label(\"Product\")\n .required(\"Product is required\")\n .options([\n { label: \"Shoes\", value: \"shoes\" },\n { label: \"Hats\", value: \"hats\" }\n ])\n }));\n form.field(\"title\").setDisabled(true);\n form.field(\"path\").setDisabled(true);\n form.layout(layout => [layout.row(\"product\").before(\"title\")]);\n }\n };\n\n it(\"should leave base form unchanged for static page type\", () => {\n const form = buildForm(staticPageType);\n const fieldNames = form.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n expect(fieldNames).toEqual([\"title\", \"path\"]);\n });\n\n it(\"should add product field and disable title/path for product page type\", () => {\n const form = buildForm(productPageType);\n const fieldNames = form.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n expect(fieldNames).toEqual([\"product\", \"title\", \"path\"]);\n\n expect(form.field(\"title\").vm.disabled).toBe(true);\n expect(form.field(\"path\").vm.disabled).toBe(true);\n });\n\n it(\"should include product in getData\", () => {\n const form = buildForm(productPageType);\n form.field(\"product\").setValue(\"shoes\");\n const data = form.getData();\n expect(data.product).toBe(\"shoes\");\n });\n\n it(\"should apply cross-cutting modifier after page type\", () => {\n const langs: LanguageDto[] = [\n { id: \"en\", code: \"en\", name: \"English\", isDefault: true },\n { id: \"de\", code: \"de\", name: \"German\" }\n ];\n const { useCase, repository } = createLanguageMocks(langs);\n const languageModifier = new AddLanguageModifier(useCase, repository);\n\n const form = buildForm(productPageType, [languageModifier]);\n const fieldNames = form.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n\n // language before title (from modifier), product before title (from page type)\n expect(fieldNames).toEqual([\"product\", \"language\", \"title\", \"path\"]);\n });\n\n it(\"should apply cross-cutting modifier to static page type too\", () => {\n const langs: LanguageDto[] = [\n { id: \"en\", code: \"en\", name: \"English\", isDefault: true },\n { id: \"de\", code: \"de\", name: \"German\" }\n ];\n const { useCase, repository } = createLanguageMocks(langs);\n const languageModifier = new AddLanguageModifier(useCase, repository);\n\n const form = buildForm(staticPageType, [languageModifier]);\n const fieldNames = form.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n\n expect(fieldNames).toEqual([\"language\", \"title\", \"path\"]);\n });\n});\n\ndescribe(\"Form rebuild on page type switch\", () => {\n const staticPageType: IPageType = {\n name: \"static\",\n label: \"Static Page\",\n modifyForm() {\n // no-op\n }\n };\n\n const productPageType: IPageType = {\n name: \"product\",\n label: \"Product Page\",\n modifyForm(form) {\n form.fields(fields => ({\n product: fields\n .select()\n .label(\"Product\")\n .required(\"Product is required\")\n .options([\n { label: \"Shoes\", value: \"shoes\" },\n { label: \"Hats\", value: \"hats\" }\n ])\n }));\n form.field(\"title\").setDisabled(true);\n form.field(\"path\").setDisabled(true);\n form.layout(layout => [layout.row(\"product\").before(\"title\")]);\n }\n };\n\n const pageTypes: Record<string, IPageType> = {\n static: staticPageType,\n product: productPageType\n };\n\n /**\n * Simulates the presenter's changePageType: getData → rebuild → setData.\n * The real presenter sets `this.selectedPageType` before `buildForm()`,\n * which sets the hidden field's defaultValue. Here we just rebuild and restore.\n */\n function changePageType(\n currentForm: IFormModel,\n newType: string,\n modifiers: ICreatePageFormModifier[] = []\n ): IFormModel {\n const previousData = currentForm.getData();\n const form = createBaseForm();\n pageTypes[newType].modifyForm?.(form);\n for (const modifier of modifiers) {\n modifier.modifyForm(form);\n }\n form.setData(previousData);\n return form;\n }\n\n it(\"should preserve common field values when switching page types\", () => {\n // Start with static page, fill in title and path.\n const staticForm = createBaseForm();\n staticPageType.modifyForm?.(staticForm);\n staticForm.field(\"title\").setValue(\"My Page\");\n staticForm.field(\"path\").setValue(\"/my-page\");\n\n // Switch to product page.\n const productForm = changePageType(staticForm, \"product\");\n\n expect(productForm.field(\"title\").getValue()).toBe(\"My Page\");\n expect(productForm.field(\"path\").getValue()).toBe(\"/my-page\");\n });\n\n it(\"should drop page-type-specific fields on switch\", () => {\n // Start with product page, select a product.\n const productForm = createBaseForm();\n productPageType.modifyForm?.(productForm);\n productForm.field(\"product\").setValue(\"shoes\");\n\n // Switch to static page — product field should not exist.\n const staticForm = changePageType(productForm, \"static\");\n\n const fieldNames = staticForm.vm.layout\n .filter((n): n is IRowNodeVM => n.type === \"row\")\n .flatMap(row => row.fields.map(f => f.name));\n expect(fieldNames).toEqual([\"title\", \"path\"]);\n expect(staticForm.getData()).not.toHaveProperty(\"product\");\n });\n\n it(\"should preserve cross-cutting modifier values across page type switch\", () => {\n const langs: LanguageDto[] = [\n { id: \"en\", code: \"en\", name: \"English\", isDefault: true },\n { id: \"de\", code: \"de\", name: \"German\" }\n ];\n const { useCase, repository } = createLanguageMocks(langs);\n const languageModifier = new AddLanguageModifier(useCase, repository);\n\n // Start with static page + language modifier.\n const staticForm = createBaseForm();\n staticPageType.modifyForm?.(staticForm);\n languageModifier.modifyForm(staticForm);\n staticForm.field(\"title\").setValue(\"Demo\");\n // Language is auto-assigned \"en\" by the modifier reaction.\n\n const langValue = staticForm.field(\"language\").getValue();\n expect(langValue).toBe(\"en\");\n\n // Switch to product page with same modifier.\n const productForm = changePageType(staticForm, \"product\", [languageModifier]);\n\n expect(productForm.field(\"language\").getValue()).toBe(\"en\");\n expect(productForm.field(\"title\").getValue()).toBe(\"Demo\");\n });\n\n it(\"should preserve hidden field values across rebuild\", () => {\n const staticForm = createBaseForm();\n staticPageType.modifyForm?.(staticForm);\n expect(staticForm.getData().pageType).toBe(\"staticPage\");\n\n // Switch to product — setData restores pageType from previous form.\n const productForm = changePageType(staticForm, \"product\");\n\n // The hidden pageType field is preserved via setData.\n // In the real presenter, buildForm() sets defaultValue to the new type,\n // so the hidden field gets the correct value regardless.\n expect(productForm.field(\"pageType\").getValue()).toBe(\"staticPage\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const CreatePageConfig: () => React.JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { AdminConfig } from "@webiny/app-admin";
3
+ import { CreatePageDialog, CREATE_PAGE_DIALOG } from "./CreatePageDialog.js";
4
+ export const CreatePageConfig = () => {
5
+ return /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(AdminConfig.Dialog, {
6
+ name: CREATE_PAGE_DIALOG,
7
+ element: /*#__PURE__*/React.createElement(CreatePageDialog, null)
8
+ }));
9
+ };
10
+
11
+ //# sourceMappingURL=CreatePageConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","AdminConfig","CreatePageDialog","CREATE_PAGE_DIALOG","CreatePageConfig","createElement","Dialog","name","element"],"sources":["CreatePageConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { CreatePageDialog, CREATE_PAGE_DIALOG } from \"./CreatePageDialog.js\";\n\nexport const CreatePageConfig = () => {\n return (\n <AdminConfig>\n <AdminConfig.Dialog name={CREATE_PAGE_DIALOG} element={<CreatePageDialog />} />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,gBAAgB,EAAEC,kBAAkB;AAE7C,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAClC,oBACIJ,KAAA,CAAAK,aAAA,CAACJ,WAAW,qBACRD,KAAA,CAAAK,aAAA,CAACJ,WAAW,CAACK,MAAM;IAACC,IAAI,EAAEJ,kBAAmB;IAACK,OAAO,eAAER,KAAA,CAAAK,aAAA,CAACH,gBAAgB,MAAE;EAAE,CAAE,CACrE,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare const CREATE_PAGE_DIALOG = "createPage";
3
+ export declare const useCreatePageDialog: () => (folderId: string) => void;
4
+ export declare const CreatePageDialog: (() => React.JSX.Element) & {
5
+ displayName: string;
6
+ };
@@ -0,0 +1,72 @@
1
+ import React, { useEffect } from "react";
2
+ import { observer } from "mobx-react-lite";
3
+ import { useDialog, useOpenDialog, FormView } from "@webiny/app-admin";
4
+ import { Dialog, Select, OverlayLoader } from "@webiny/admin-ui";
5
+ import { useFeature } from "@webiny/app";
6
+ import { useEditPageUrl } from "../../../modules/pages/PagesList/hooks/useEditPageUrl.js";
7
+ import { CreatePageFeature } from "./feature.js";
8
+ import { createPageDialogParams } from "./createPageSchema.js";
9
+ export const CREATE_PAGE_DIALOG = "createPage";
10
+ export const useCreatePageDialog = () => {
11
+ const {
12
+ openDialog
13
+ } = useOpenDialog(createPageDialogParams);
14
+ return folderId => {
15
+ openDialog(CREATE_PAGE_DIALOG, {
16
+ folderId
17
+ });
18
+ };
19
+ };
20
+ export const CreatePageDialog = observer(() => {
21
+ const {
22
+ params,
23
+ closeDialog
24
+ } = useDialog(createPageDialogParams);
25
+ const {
26
+ goToPageEditor
27
+ } = useEditPageUrl();
28
+ const {
29
+ presenter
30
+ } = useFeature(CreatePageFeature);
31
+ const vm = presenter.vm;
32
+ useEffect(() => {
33
+ presenter.init(params.folderId);
34
+ }, []);
35
+ const handleSubmit = async () => {
36
+ const page = await presenter.submit();
37
+ if (!page) {
38
+ return;
39
+ }
40
+ closeDialog();
41
+ goToPageEditor(page.id);
42
+ };
43
+ return /*#__PURE__*/React.createElement(Dialog, {
44
+ open: true,
45
+ onClose: closeDialog,
46
+ title: "Create a Page",
47
+ actions: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog.CancelAction, {
48
+ onClick: closeDialog,
49
+ text: "Cancel"
50
+ }), /*#__PURE__*/React.createElement(Dialog.ConfirmAction, {
51
+ onClick: handleSubmit,
52
+ text: "Create"
53
+ }))
54
+ }, vm.loading ? /*#__PURE__*/React.createElement(OverlayLoader, {
55
+ text: "Creating page..."
56
+ }) : null, /*#__PURE__*/React.createElement("div", {
57
+ className: "flex flex-col gap-4"
58
+ }, vm.pageTypes.length > 1 && /*#__PURE__*/React.createElement(Select, {
59
+ label: "Page Type",
60
+ value: vm.selectedPageType,
61
+ onChange: presenter.changePageType,
62
+ options: vm.pageTypes.map(pt => ({
63
+ label: pt.label,
64
+ value: pt.name
65
+ })),
66
+ displayResetAction: false
67
+ }), /*#__PURE__*/React.createElement(FormView, {
68
+ form: vm.form
69
+ })));
70
+ });
71
+
72
+ //# sourceMappingURL=CreatePageDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","observer","useDialog","useOpenDialog","FormView","Dialog","Select","OverlayLoader","useFeature","useEditPageUrl","CreatePageFeature","createPageDialogParams","CREATE_PAGE_DIALOG","useCreatePageDialog","openDialog","folderId","CreatePageDialog","params","closeDialog","goToPageEditor","presenter","vm","init","handleSubmit","page","submit","id","createElement","open","onClose","title","actions","Fragment","CancelAction","onClick","text","ConfirmAction","loading","className","pageTypes","length","label","value","selectedPageType","onChange","changePageType","options","map","pt","name","displayResetAction","form"],"sources":["CreatePageDialog.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { useDialog, useOpenDialog, FormView } from \"@webiny/app-admin\";\nimport { Dialog, Select, OverlayLoader } from \"@webiny/admin-ui\";\nimport { useFeature } from \"@webiny/app\";\nimport { useEditPageUrl } from \"~/modules/pages/PagesList/hooks/useEditPageUrl.js\";\nimport { CreatePageFeature } from \"./feature.js\";\nimport { createPageDialogParams } from \"./createPageSchema.js\";\n\nexport const CREATE_PAGE_DIALOG = \"createPage\";\n\nexport const useCreatePageDialog = () => {\n const { openDialog } = useOpenDialog(createPageDialogParams);\n\n return (folderId: string) => {\n openDialog(CREATE_PAGE_DIALOG, { folderId });\n };\n};\n\nexport const CreatePageDialog = observer(() => {\n const { params, closeDialog } = useDialog(createPageDialogParams);\n const { goToPageEditor } = useEditPageUrl();\n const { presenter } = useFeature(CreatePageFeature);\n const vm = presenter.vm;\n\n useEffect(() => {\n presenter.init(params.folderId);\n }, []);\n\n const handleSubmit = async () => {\n const page = await presenter.submit();\n if (!page) {\n return;\n }\n\n closeDialog();\n goToPageEditor(page.id);\n };\n\n return (\n <Dialog\n open={true}\n onClose={closeDialog}\n title=\"Create a Page\"\n actions={\n <>\n <Dialog.CancelAction onClick={closeDialog} text=\"Cancel\" />\n <Dialog.ConfirmAction onClick={handleSubmit} text=\"Create\" />\n </>\n }\n >\n {vm.loading ? <OverlayLoader text={\"Creating page...\"} /> : null}\n <div className=\"flex flex-col gap-4\">\n {vm.pageTypes.length > 1 && (\n <Select\n label=\"Page Type\"\n value={vm.selectedPageType}\n onChange={presenter.changePageType}\n options={vm.pageTypes.map(pt => ({\n label: pt.label,\n value: pt.name\n }))}\n displayResetAction={false}\n />\n )}\n <FormView form={vm.form} />\n </div>\n </Dialog>\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import type { IFormModelFactory } from "@webiny/app-admin";
2
+ import { CreatePageUseCase } from "../../../features/pages/createPage/abstractions.js";
3
+ import { CreatePagePresenter as PresenterAbstraction, PageTypeProvider, CreatePageFormModifier } from "./abstractions.js";
4
+ declare class CreatePagePresenterImpl implements PresenterAbstraction.Interface {
5
+ private factory;
6
+ private modifiers;
7
+ private createPage;
8
+ private readonly pageTypes;
9
+ private form;
10
+ private selectedPageType;
11
+ private folderId;
12
+ private loading;
13
+ constructor(factory: IFormModelFactory, pageTypeProvider: PageTypeProvider.Interface, modifiers: CreatePageFormModifier.Interface[], createPage: CreatePageUseCase.Interface);
14
+ get vm(): PresenterAbstraction.ViewModel;
15
+ init(folderId: string): void;
16
+ changePageType(pageType: string): void;
17
+ submit(): Promise<import("../../../domain/Page/Page.js").Page | null>;
18
+ private buildForm;
19
+ }
20
+ export declare const CreatePagePresenter: typeof CreatePagePresenterImpl & {
21
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreatePagePresenter>;
22
+ };
23
+ export {};
@@ -0,0 +1,134 @@
1
+ import { makeAutoObservable, computed, runInAction } from "mobx";
2
+ import { FormModelFactory } from "@webiny/app-admin";
3
+ import { CreatePageUseCase } from "../../../features/pages/createPage/abstractions.js";
4
+ import { CreatePagePresenter as PresenterAbstraction, PageTypeProvider, CreatePageFormModifier } from "./abstractions.js";
5
+ import { PagePath } from "../../../shared/PagePath.js";
6
+ class CreatePagePresenterImpl {
7
+ selectedPageType = "";
8
+ folderId = "";
9
+ loading = false;
10
+ constructor(factory, pageTypeProvider, modifiers, createPage) {
11
+ this.factory = factory;
12
+ this.modifiers = modifiers;
13
+ this.createPage = createPage;
14
+ this.pageTypes = pageTypeProvider.getPageTypes();
15
+ this.form = this.buildForm();
16
+ makeAutoObservable(this, {
17
+ vm: computed
18
+ }, {
19
+ autoBind: true
20
+ });
21
+ }
22
+ get vm() {
23
+ return {
24
+ form: this.form.vm,
25
+ pageTypes: this.pageTypes,
26
+ selectedPageType: this.selectedPageType,
27
+ loading: this.loading
28
+ };
29
+ }
30
+ init(folderId) {
31
+ this.folderId = folderId;
32
+ const staticPage = this.pageTypes.find(p => p.name === "static");
33
+ this.selectedPageType = staticPage ? "static" : this.pageTypes[0]?.name;
34
+ this.form = this.buildForm();
35
+ }
36
+ changePageType(pageType) {
37
+ const previousData = this.form.getData();
38
+ this.selectedPageType = pageType;
39
+ this.form = this.buildForm();
40
+ this.form.setData(previousData);
41
+ }
42
+ async submit() {
43
+ const data = await this.form.submit();
44
+ if (!data) {
45
+ return null;
46
+ }
47
+ const input = {
48
+ location: {
49
+ folderId: String(data.folderId)
50
+ },
51
+ properties: {
52
+ title: data.title,
53
+ path: data.path
54
+ },
55
+ metadata: {
56
+ documentType: "page",
57
+ pageType: data.pageType
58
+ },
59
+ elements: {
60
+ root: {
61
+ type: "Webiny/Element",
62
+ id: "root",
63
+ component: {
64
+ name: "Webiny/Root"
65
+ }
66
+ }
67
+ }
68
+ };
69
+
70
+ // Let the active page type map its form data.
71
+ const pageType = this.pageTypes.find(pt => pt.name === this.selectedPageType);
72
+ if (pageType?.mapFromForm) {
73
+ pageType.mapFromForm(data, input);
74
+ }
75
+
76
+ // Let cross-cutting modifiers map their form data.
77
+ for (const modifier of this.modifiers) {
78
+ if (modifier.mapFromForm) {
79
+ modifier.mapFromForm(data, input);
80
+ }
81
+ }
82
+ runInAction(() => {
83
+ this.loading = true;
84
+ });
85
+ try {
86
+ return await this.createPage.execute(input);
87
+ } finally {
88
+ runInAction(() => {
89
+ this.loading = false;
90
+ });
91
+ }
92
+ }
93
+ buildForm() {
94
+ // Layer 1: Base form — always present regardless of page type
95
+ const form = this.factory.create({
96
+ fields: fields => ({
97
+ title: fields.text().label("Title").required("Title is required").onBlur((value, form) => {
98
+ const currentPath = form.field("path").getValue();
99
+ if (!PagePath.create(currentPath).isEmpty()) {
100
+ return;
101
+ }
102
+ const newPath = PagePath.fromTitle(String(value)).toString();
103
+ form.field("path").setValue(newPath);
104
+ }),
105
+ path: fields.text().label("Path").required("Path is required").beforeChange(value => {
106
+ return PagePath.create(String(value)).slugify().toString();
107
+ }),
108
+ pageType: fields.text().hidden().defaultValue(this.selectedPageType || "static"),
109
+ folderId: fields.text().hidden().defaultValue(this.folderId)
110
+ }),
111
+ layout: layout => [layout.row("title"), layout.row("path")]
112
+ });
113
+
114
+ // Layer 2: Apply the selected page type's modifications
115
+ const pageType = this.pageTypes.find(pt => pt.name === this.selectedPageType);
116
+ if (pageType && typeof pageType.modifyForm === "function") {
117
+ pageType.modifyForm(form);
118
+ }
119
+
120
+ // Layer 3: Apply cross-cutting modifiers (Language, etc.)
121
+ for (const modifier of this.modifiers) {
122
+ modifier.modifyForm(form);
123
+ }
124
+ return form;
125
+ }
126
+ }
127
+ export const CreatePagePresenter = PresenterAbstraction.createImplementation({
128
+ implementation: CreatePagePresenterImpl,
129
+ dependencies: [FormModelFactory, PageTypeProvider, [CreatePageFormModifier, {
130
+ multiple: true
131
+ }], CreatePageUseCase]
132
+ });
133
+
134
+ //# sourceMappingURL=CreatePagePresenter.js.map