@strapi/content-manager 0.0.0-experimental.aa680be2574ebd6a8ca7675ce7ba57512d0df8cf → 0.0.0-experimental.aa7a2469494b789539dfb9508d5dce9526d83b7d

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 (328) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +300 -204
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +304 -209
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/Widgets.js +253 -0
  6. package/dist/admin/components/Widgets.js.map +1 -1
  7. package/dist/admin/components/Widgets.mjs +236 -3
  8. package/dist/admin/components/Widgets.mjs.map +1 -1
  9. package/dist/admin/history/components/VersionContent.js +24 -3
  10. package/dist/admin/history/components/VersionContent.js.map +1 -1
  11. package/dist/admin/history/components/VersionContent.mjs +25 -4
  12. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  13. package/dist/admin/history/components/VersionHeader.js +6 -0
  14. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  15. package/dist/admin/history/components/VersionHeader.mjs +7 -1
  16. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  17. package/dist/admin/hooks/useDocumentActions.js +12 -7
  18. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  19. package/dist/admin/hooks/useDocumentActions.mjs +13 -8
  20. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  21. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  22. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
  23. package/dist/admin/index.js +48 -11
  24. package/dist/admin/index.js.map +1 -1
  25. package/dist/admin/index.mjs +47 -9
  26. package/dist/admin/index.mjs.map +1 -1
  27. package/dist/admin/layout.js +1 -27
  28. package/dist/admin/layout.js.map +1 -1
  29. package/dist/admin/layout.mjs +2 -9
  30. package/dist/admin/layout.mjs.map +1 -1
  31. package/dist/admin/pages/EditView/EditViewPage.js +90 -74
  32. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  33. package/dist/admin/pages/EditView/EditViewPage.mjs +92 -76
  34. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  35. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  36. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  37. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  38. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  39. package/dist/admin/pages/EditView/components/DocumentActions.js +289 -91
  40. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  41. package/dist/admin/pages/EditView/components/DocumentActions.mjs +293 -95
  42. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  44. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  46. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +54 -14
  48. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +55 -15
  50. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  52. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  53. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  54. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  55. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  56. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  58. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -3
  60. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  61. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -4
  62. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +18 -5
  64. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +20 -7
  66. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +129 -55
  68. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +129 -55
  70. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +124 -33
  72. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +128 -37
  74. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  76. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  78. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  80. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  82. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  84. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  86. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormLayout.js +47 -27
  88. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormLayout.mjs +47 -27
  90. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/InputRenderer.js +26 -14
  92. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/InputRenderer.mjs +27 -15
  94. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/utils/data.js +103 -0
  96. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  97. package/dist/admin/pages/EditView/utils/data.mjs +103 -1
  98. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  99. package/dist/admin/pages/ListView/ListViewPage.js +221 -203
  100. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  101. package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
  102. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  103. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  104. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  105. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  106. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  107. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  108. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  109. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  110. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  111. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  112. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  113. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  114. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  115. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  116. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  117. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  118. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  119. package/dist/admin/preview/hooks/usePreviewInputManager.js +117 -0
  120. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  121. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +96 -0
  122. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  123. package/dist/admin/preview/pages/Preview.js +234 -73
  124. package/dist/admin/preview/pages/Preview.js.map +1 -1
  125. package/dist/admin/preview/pages/Preview.mjs +236 -75
  126. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  127. package/dist/admin/preview/utils/constants.js +22 -0
  128. package/dist/admin/preview/utils/constants.js.map +1 -0
  129. package/dist/admin/preview/utils/constants.mjs +19 -0
  130. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  131. package/dist/admin/preview/utils/previewScript.js +299 -0
  132. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  133. package/dist/admin/preview/utils/previewScript.mjs +297 -0
  134. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  135. package/dist/admin/services/api.js +3 -1
  136. package/dist/admin/services/api.js.map +1 -1
  137. package/dist/admin/services/api.mjs +3 -1
  138. package/dist/admin/services/api.mjs.map +1 -1
  139. package/dist/admin/services/documents.js +32 -16
  140. package/dist/admin/services/documents.js.map +1 -1
  141. package/dist/admin/services/documents.mjs +32 -16
  142. package/dist/admin/services/documents.mjs.map +1 -1
  143. package/dist/admin/services/homepage.js +19 -6
  144. package/dist/admin/services/homepage.js.map +1 -1
  145. package/dist/admin/services/homepage.mjs +19 -7
  146. package/dist/admin/services/homepage.mjs.map +1 -1
  147. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  148. package/dist/admin/src/components/Widgets.d.ts +2 -1
  149. package/dist/admin/src/exports.d.ts +1 -0
  150. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  151. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  152. package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
  153. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +2 -0
  154. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
  155. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  156. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -8
  157. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  158. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  159. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +6 -0
  160. package/dist/admin/src/preview/pages/Preview.d.ts +9 -0
  161. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  162. package/dist/admin/src/preview/utils/constants.d.ts +20 -0
  163. package/dist/admin/src/preview/utils/previewScript.d.ts +22 -0
  164. package/dist/admin/src/services/api.d.ts +1 -1
  165. package/dist/admin/src/services/components.d.ts +2 -2
  166. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  167. package/dist/admin/src/services/documents.d.ts +23 -17
  168. package/dist/admin/src/services/homepage.d.ts +6 -2
  169. package/dist/admin/src/services/init.d.ts +1 -1
  170. package/dist/admin/src/services/relations.d.ts +2 -2
  171. package/dist/admin/src/services/uid.d.ts +3 -3
  172. package/dist/admin/src/utils/validation.d.ts +1 -0
  173. package/dist/admin/translations/en.json.js +9 -1
  174. package/dist/admin/translations/en.json.js.map +1 -1
  175. package/dist/admin/translations/en.json.mjs +9 -1
  176. package/dist/admin/translations/en.json.mjs.map +1 -1
  177. package/dist/admin/translations/es.json.js +5 -2
  178. package/dist/admin/translations/es.json.js.map +1 -1
  179. package/dist/admin/translations/es.json.mjs +5 -2
  180. package/dist/admin/translations/es.json.mjs.map +1 -1
  181. package/dist/admin/translations/fr.json.js +10 -2
  182. package/dist/admin/translations/fr.json.js.map +1 -1
  183. package/dist/admin/translations/fr.json.mjs +10 -2
  184. package/dist/admin/translations/fr.json.mjs.map +1 -1
  185. package/dist/admin/translations/ru.json.js +235 -226
  186. package/dist/admin/translations/ru.json.js.map +1 -1
  187. package/dist/admin/translations/ru.json.mjs +230 -226
  188. package/dist/admin/translations/ru.json.mjs.map +1 -1
  189. package/dist/admin/utils/validation.js +19 -7
  190. package/dist/admin/utils/validation.js.map +1 -1
  191. package/dist/admin/utils/validation.mjs +19 -7
  192. package/dist/admin/utils/validation.mjs.map +1 -1
  193. package/dist/server/controllers/content-types.js +11 -1
  194. package/dist/server/controllers/content-types.js.map +1 -1
  195. package/dist/server/controllers/content-types.mjs +11 -1
  196. package/dist/server/controllers/content-types.mjs.map +1 -1
  197. package/dist/server/controllers/index.js +3 -1
  198. package/dist/server/controllers/index.js.map +1 -1
  199. package/dist/server/controllers/index.mjs +3 -1
  200. package/dist/server/controllers/index.mjs.map +1 -1
  201. package/dist/server/controllers/relations.js +2 -2
  202. package/dist/server/controllers/relations.js.map +1 -1
  203. package/dist/server/controllers/relations.mjs +2 -2
  204. package/dist/server/controllers/relations.mjs.map +1 -1
  205. package/dist/server/controllers/validation/index.js +14 -2
  206. package/dist/server/controllers/validation/index.js.map +1 -1
  207. package/dist/server/controllers/validation/index.mjs +14 -2
  208. package/dist/server/controllers/validation/index.mjs.map +1 -1
  209. package/dist/server/history/services/lifecycles.js +23 -19
  210. package/dist/server/history/services/lifecycles.js.map +1 -1
  211. package/dist/server/history/services/lifecycles.mjs +23 -19
  212. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  213. package/dist/server/homepage/controllers/homepage.js +62 -0
  214. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  215. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  216. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  217. package/dist/server/homepage/controllers/index.js +10 -0
  218. package/dist/server/homepage/controllers/index.js.map +1 -0
  219. package/dist/server/homepage/controllers/index.mjs +8 -0
  220. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  221. package/dist/server/homepage/index.js +14 -0
  222. package/dist/server/homepage/index.js.map +1 -0
  223. package/dist/server/homepage/index.mjs +12 -0
  224. package/dist/server/homepage/index.mjs.map +1 -0
  225. package/dist/server/homepage/routes/homepage.js +36 -0
  226. package/dist/server/homepage/routes/homepage.js.map +1 -0
  227. package/dist/server/homepage/routes/homepage.mjs +34 -0
  228. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  229. package/dist/server/homepage/routes/index.js +13 -0
  230. package/dist/server/homepage/routes/index.js.map +1 -0
  231. package/dist/server/homepage/routes/index.mjs +11 -0
  232. package/dist/server/homepage/routes/index.mjs.map +1 -0
  233. package/dist/server/homepage/services/homepage.js +197 -0
  234. package/dist/server/homepage/services/homepage.js.map +1 -0
  235. package/dist/server/homepage/services/homepage.mjs +195 -0
  236. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  237. package/dist/server/homepage/services/index.js +10 -0
  238. package/dist/server/homepage/services/index.js.map +1 -0
  239. package/dist/server/homepage/services/index.mjs +8 -0
  240. package/dist/server/homepage/services/index.mjs.map +1 -0
  241. package/dist/server/preview/services/preview-config.js +5 -1
  242. package/dist/server/preview/services/preview-config.js.map +1 -1
  243. package/dist/server/preview/services/preview-config.mjs +5 -1
  244. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  245. package/dist/server/preview/services/preview.js +4 -1
  246. package/dist/server/preview/services/preview.js.map +1 -1
  247. package/dist/server/preview/services/preview.mjs +4 -1
  248. package/dist/server/preview/services/preview.mjs.map +1 -1
  249. package/dist/server/routes/index.js +3 -1
  250. package/dist/server/routes/index.js.map +1 -1
  251. package/dist/server/routes/index.mjs +3 -1
  252. package/dist/server/routes/index.mjs.map +1 -1
  253. package/dist/server/services/data-mapper.js +4 -1
  254. package/dist/server/services/data-mapper.js.map +1 -1
  255. package/dist/server/services/data-mapper.mjs +4 -1
  256. package/dist/server/services/data-mapper.mjs.map +1 -1
  257. package/dist/server/services/document-manager.js +8 -1
  258. package/dist/server/services/document-manager.js.map +1 -1
  259. package/dist/server/services/document-manager.mjs +8 -1
  260. package/dist/server/services/document-manager.mjs.map +1 -1
  261. package/dist/server/services/document-metadata.js +3 -1
  262. package/dist/server/services/document-metadata.js.map +1 -1
  263. package/dist/server/services/document-metadata.mjs +3 -1
  264. package/dist/server/services/document-metadata.mjs.map +1 -1
  265. package/dist/server/services/index.js +3 -1
  266. package/dist/server/services/index.js.map +1 -1
  267. package/dist/server/services/index.mjs +3 -1
  268. package/dist/server/services/index.mjs.map +1 -1
  269. package/dist/server/services/utils/configuration/attributes.js +1 -1
  270. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  271. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  272. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  273. package/dist/server/services/utils/configuration/layouts.js +1 -1
  274. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  275. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  276. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  277. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  278. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  279. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  280. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  281. package/dist/server/services/utils/populate.js +11 -0
  282. package/dist/server/services/utils/populate.js.map +1 -1
  283. package/dist/server/services/utils/populate.mjs +11 -0
  284. package/dist/server/services/utils/populate.mjs.map +1 -1
  285. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  286. package/dist/server/src/controllers/index.d.ts.map +1 -1
  287. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  288. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  289. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  290. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  291. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  292. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  293. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  294. package/dist/server/src/homepage/index.d.ts +23 -0
  295. package/dist/server/src/homepage/index.d.ts.map +1 -0
  296. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  297. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  298. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  299. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  300. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  301. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  302. package/dist/server/src/homepage/services/index.d.ts +16 -0
  303. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  304. package/dist/server/src/index.d.ts +14 -0
  305. package/dist/server/src/index.d.ts.map +1 -1
  306. package/dist/server/src/preview/services/index.d.ts +1 -0
  307. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  308. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  309. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  310. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  311. package/dist/server/src/preview/utils.d.ts +1 -0
  312. package/dist/server/src/preview/utils.d.ts.map +1 -1
  313. package/dist/server/src/routes/index.d.ts +1 -0
  314. package/dist/server/src/routes/index.d.ts.map +1 -1
  315. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  316. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  317. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  318. package/dist/server/src/services/index.d.ts +13 -0
  319. package/dist/server/src/services/index.d.ts.map +1 -1
  320. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  321. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  322. package/dist/shared/contracts/collection-types.d.ts +0 -1
  323. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  324. package/dist/shared/contracts/homepage.d.ts +13 -0
  325. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  326. package/package.json +11 -9
  327. package/dist/server/src/services/homepage.d.ts +0 -11
  328. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { createContext, useRBAC, Page, useQueryParams, Form, Blocker } from '@strapi/admin/strapi-admin';
4
- import { Portal, FocusTrap, Box, Flex, IconButton } from '@strapi/design-system';
3
+ import { createContext, useRBAC, Page, useQueryParams, Form } from '@strapi/admin/strapi-admin';
4
+ import { Portal, FocusTrap, Box, Flex, IconButton, SingleSelect, SingleSelectOption, Popover } from '@strapi/design-system';
5
5
  import { ArrowLineLeft } from '@strapi/icons';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useParams, useLocation } from 'react-router-dom';
@@ -10,31 +10,148 @@ import { COLLECTION_TYPES } from '../../constants/collections.mjs';
10
10
  import { DocumentRBAC } from '../../features/DocumentRBAC.mjs';
11
11
  import { useDocument } from '../../hooks/useDocument.mjs';
12
12
  import { useDocumentLayout } from '../../hooks/useDocumentLayout.mjs';
13
+ import { Blocker } from '../../pages/EditView/components/Blocker.mjs';
13
14
  import { FormLayout } from '../../pages/EditView/components/FormLayout.mjs';
15
+ import { InputRenderer as MemoizedInputRenderer } from '../../pages/EditView/components/InputRenderer.mjs';
16
+ import { handleInvisibleAttributes } from '../../pages/EditView/utils/data.mjs';
14
17
  import { buildValidParams } from '../../utils/api.mjs';
15
18
  import { createYupSchema } from '../../utils/validation.mjs';
16
19
  import { PreviewHeader } from '../components/PreviewHeader.mjs';
17
20
  import { useGetPreviewUrlQuery } from '../services/preview.mjs';
21
+ import { PUBLIC_EVENTS } from '../utils/constants.mjs';
22
+ import { previewScript } from '../utils/previewScript.mjs';
18
23
 
24
+ /* -------------------------------------------------------------------------------------------------
25
+ * Constants
26
+ * -----------------------------------------------------------------------------------------------*/ const DEVICES = [
27
+ {
28
+ name: 'desktop',
29
+ label: {
30
+ id: 'content-manager.preview.device.desktop',
31
+ defaultMessage: 'Desktop'
32
+ },
33
+ width: '100%',
34
+ height: '100%'
35
+ },
36
+ {
37
+ name: 'mobile',
38
+ label: {
39
+ id: 'content-manager.preview.device.mobile',
40
+ defaultMessage: 'Mobile'
41
+ },
42
+ width: '375px',
43
+ height: '667px'
44
+ }
45
+ ];
19
46
  const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
47
+ /* -------------------------------------------------------------------------------------------------
48
+ * VisualEditingPopover
49
+ * -----------------------------------------------------------------------------------------------*/ const VisualEditingPopover = ({ documentResponse })=>{
50
+ const iframeRef = usePreviewContext('VisualEditingPopover', (state)=>state.iframeRef);
51
+ const popoverField = usePreviewContext('VisualEditingPopover', (state)=>state.popoverField);
52
+ const setPopoverField = usePreviewContext('VisualEditingPopover', (state)=>state.setPopoverField);
53
+ if (!popoverField || !documentResponse.schema || !iframeRef.current) {
54
+ return null;
55
+ }
56
+ const iframeRect = iframeRef.current.getBoundingClientRect();
57
+ return /*#__PURE__*/ jsxs(Fragment, {
58
+ children: [
59
+ popoverField && /*#__PURE__*/ jsx(Box, {
60
+ position: 'fixed',
61
+ top: iframeRect.top + 'px',
62
+ left: iframeRect.left + 'px',
63
+ width: iframeRect.width + 'px',
64
+ height: iframeRect.height + 'px',
65
+ zIndex: 4
66
+ }),
67
+ /*#__PURE__*/ jsxs(Popover.Root, {
68
+ open: popoverField != null,
69
+ onOpenChange: (open)=>!open && setPopoverField(null),
70
+ children: [
71
+ /*#__PURE__*/ jsx(Popover.Trigger, {
72
+ children: /*#__PURE__*/ jsx(Box, {
73
+ id: "popover-trigger",
74
+ position: "fixed",
75
+ width: popoverField.position.width + 'px',
76
+ height: popoverField.position.height + 'px',
77
+ top: iframeRect.top + popoverField.position.top + 'px',
78
+ left: iframeRect.left + popoverField.position.left + 'px'
79
+ })
80
+ }),
81
+ /*#__PURE__*/ jsx(Popover.Content, {
82
+ sideOffset: 4,
83
+ children: /*#__PURE__*/ jsx(Box, {
84
+ padding: 4,
85
+ width: "400px",
86
+ children: /*#__PURE__*/ jsx(MemoizedInputRenderer, {
87
+ document: documentResponse,
88
+ attribute: documentResponse.schema.attributes[popoverField.path],
89
+ label: popoverField.path,
90
+ name: popoverField.path,
91
+ type: documentResponse.schema.attributes[popoverField.path].type,
92
+ visible: true
93
+ })
94
+ })
95
+ })
96
+ ]
97
+ })
98
+ ]
99
+ });
100
+ };
20
101
  /* -------------------------------------------------------------------------------------------------
21
102
  * PreviewPage
22
103
  * -----------------------------------------------------------------------------------------------*/ const AnimatedArrow = styled(ArrowLineLeft)`
23
104
  will-change: transform;
24
- rotate: ${(props)=>props.isSideEditorOpen ? '0deg' : '180deg'};
105
+ rotate: ${(props)=>props.$isSideEditorOpen ? '0deg' : '180deg'};
25
106
  transition: rotate 0.2s ease-in-out;
26
107
  `;
108
+ /**
109
+ * A function factory so we can generate a new sendMessage everytime we need one.
110
+ * We can't store and reuse a single sendMessage because it needs to have a stable identity
111
+ * as it used in a useEffect function. And we can't rely on useCallback because we need the
112
+ * up-to-date iframe ref, and this would make it stale (refs don't trigger callback reevaluations).
113
+ */ function getSendMessage(iframe) {
114
+ return (type, payload)=>{
115
+ if (!iframe.current) return;
116
+ const { origin } = new URL(iframe.current.src);
117
+ iframe.current.contentWindow?.postMessage({
118
+ type,
119
+ ...payload !== undefined && {
120
+ payload
121
+ }
122
+ }, origin);
123
+ };
124
+ }
27
125
  const PreviewPage = ()=>{
28
126
  const location = useLocation();
29
127
  const { formatMessage } = useIntl();
30
128
  const iframeRef = React.useRef(null);
31
129
  const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);
130
+ const [popoverField, setPopoverField] = React.useState(null);
32
131
  // Read all the necessary data from the URL to find the right preview URL
33
132
  const { slug: model, id: documentId, collectionType } = useParams();
34
- const [{ query }] = useQueryParams();
133
+ const [{ query: { field: _field, ...query } }] = useQueryParams();
35
134
  const params = React.useMemo(()=>buildValidParams(query), [
36
135
  query
37
136
  ]);
137
+ const [deviceName, setDeviceName] = React.useState(DEVICES[0].name);
138
+ const device = DEVICES.find((d)=>d.name === deviceName) ?? DEVICES[0];
139
+ // Listen for ready message from iframe before injecting script
140
+ React.useEffect(()=>{
141
+ const handleMessage = (event)=>{
142
+ if (event.data?.type === PUBLIC_EVENTS.PREVIEW_READY) {
143
+ const script = `(${previewScript.toString()})()`;
144
+ const sendMessage = getSendMessage(iframeRef);
145
+ sendMessage(PUBLIC_EVENTS.STRAPI_SCRIPT, {
146
+ script
147
+ });
148
+ }
149
+ };
150
+ window.addEventListener('message', handleMessage);
151
+ return ()=>{
152
+ window.removeEventListener('message', handleMessage);
153
+ };
154
+ }, []);
38
155
  if (!collectionType) {
39
156
  throw new Error('Could not find collectionType in url params');
40
157
  }
@@ -63,7 +180,7 @@ const PreviewPage = ()=>{
63
180
  });
64
181
  const documentLayoutResponse = useDocumentLayout(model);
65
182
  const isLoading = previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;
66
- if (isLoading && !documentResponse.document?.documentId) {
183
+ if (isLoading && (!documentResponse.document?.documentId || previewUrlResponse.isLoading)) {
67
184
  return /*#__PURE__*/ jsx(Page.Loading, {});
68
185
  }
69
186
  const initialValues = documentResponse.getInitialFormValues();
@@ -75,20 +192,24 @@ const PreviewPage = ()=>{
75
192
  }
76
193
  const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);
77
194
  const validateSync = (values, options)=>{
195
+ const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {
196
+ schema: documentResponse.schema,
197
+ initialValues,
198
+ components: documentResponse.components
199
+ });
78
200
  const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
79
201
  status: documentResponse.document?.status,
202
+ removedAttributes,
80
203
  ...options
81
204
  });
82
- return yupSchema.validateSync(values, {
205
+ return yupSchema.validateSync(cleanedValues, {
83
206
  abortEarly: false
84
207
  });
85
208
  };
86
209
  const previewUrl = previewUrlResponse.data.data.url;
87
210
  const onPreview = ()=>{
88
- iframeRef?.current?.contentWindow?.postMessage({
89
- type: 'strapiUpdate'
90
- }, // The iframe origin is safe to use since it must be provided through the allowedOrigins config
91
- new URL(iframeRef.current.src).origin);
211
+ const sendMessage = getSendMessage(iframeRef);
212
+ sendMessage(PUBLIC_EVENTS.STRAPI_UPDATE);
92
213
  };
93
214
  const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');
94
215
  return /*#__PURE__*/ jsxs(Fragment, {
@@ -109,6 +230,10 @@ const PreviewPage = ()=>{
109
230
  schema: documentResponse.schema,
110
231
  layout: documentLayoutResponse.edit,
111
232
  onPreview: onPreview,
233
+ iframeRef: iframeRef,
234
+ isSideEditorOpen: isSideEditorOpen,
235
+ popoverField: popoverField,
236
+ setPopoverField: setPopoverField,
112
237
  children: /*#__PURE__*/ jsx(Form, {
113
238
  method: "PUT",
114
239
  disabled: query.status === 'published' && documentResponse && documentResponse.document.status !== 'draft',
@@ -116,52 +241,101 @@ const PreviewPage = ()=>{
116
241
  initialErrors: location?.state?.forceValidation ? validateSync(initialValues, {}) : {},
117
242
  height: "100%",
118
243
  validate: (values, options)=>{
244
+ const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {
245
+ schema: documentResponse.schema,
246
+ initialValues,
247
+ components: documentResponse.components
248
+ });
119
249
  const yupSchema = createYupSchema(documentResponse.schema?.attributes, documentResponse.components, {
120
250
  status: documentResponse.document?.status,
251
+ removedAttributes,
121
252
  ...options
122
253
  });
123
- return yupSchema.validate(values, {
254
+ return yupSchema.validate(cleanedValues, {
124
255
  abortEarly: false
125
256
  });
126
257
  },
127
- children: ({ resetForm })=>/*#__PURE__*/ jsxs(Flex, {
128
- direction: "column",
129
- height: "100%",
130
- alignItems: "stretch",
131
- children: [
132
- /*#__PURE__*/ jsx(Blocker, {
133
- onProceed: resetForm
134
- }),
135
- /*#__PURE__*/ jsx(PreviewHeader, {}),
136
- /*#__PURE__*/ jsxs(Flex, {
137
- flex: 1,
138
- overflow: "auto",
139
- alignItems: "stretch",
140
- children: [
141
- hasAdvancedPreview && /*#__PURE__*/ jsx(Box, {
142
- overflow: "auto",
143
- width: isSideEditorOpen ? '50%' : 0,
144
- borderWidth: "0 1px 0 0",
145
- borderColor: "neutral150",
146
- paddingTop: 6,
147
- paddingBottom: 6,
148
- // Remove horizontal padding when the editor is closed or it won't fully disappear
149
- paddingLeft: isSideEditorOpen ? 6 : 0,
150
- paddingRight: isSideEditorOpen ? 6 : 0,
151
- transition: "all 0.2s ease-in-out",
152
- children: /*#__PURE__*/ jsx(FormLayout, {
153
- layout: documentLayoutResponse.edit.layout,
154
- document: documentResponse,
155
- hasBackground: false
156
- })
157
- }),
158
- /*#__PURE__*/ jsxs(Box, {
159
- position: "relative",
160
- flex: 1,
161
- height: "100%",
162
- overflow: "hidden",
163
- children: [
164
- /*#__PURE__*/ jsx(Box, {
258
+ children: /*#__PURE__*/ jsxs(Flex, {
259
+ direction: "column",
260
+ height: "100%",
261
+ alignItems: "stretch",
262
+ children: [
263
+ /*#__PURE__*/ jsx(Blocker, {}),
264
+ /*#__PURE__*/ jsx(PreviewHeader, {}),
265
+ /*#__PURE__*/ jsxs(Flex, {
266
+ flex: 1,
267
+ overflow: "auto",
268
+ alignItems: "stretch",
269
+ children: [
270
+ hasAdvancedPreview && /*#__PURE__*/ jsx(Box, {
271
+ overflow: "auto",
272
+ width: isSideEditorOpen ? '50%' : 0,
273
+ borderWidth: "0 1px 0 0",
274
+ borderColor: "neutral150",
275
+ paddingTop: 6,
276
+ paddingBottom: 6,
277
+ // Remove horizontal padding when the editor is closed or it won't fully disappear
278
+ paddingLeft: isSideEditorOpen ? 6 : 0,
279
+ paddingRight: isSideEditorOpen ? 6 : 0,
280
+ transition: "all 0.2s ease-in-out",
281
+ children: /*#__PURE__*/ jsx(FormLayout, {
282
+ layout: documentLayoutResponse.edit.layout,
283
+ document: documentResponse,
284
+ hasBackground: false
285
+ })
286
+ }),
287
+ /*#__PURE__*/ jsxs(Flex, {
288
+ direction: "column",
289
+ alignItems: "stretch",
290
+ flex: 1,
291
+ height: "100%",
292
+ overflow: "hidden",
293
+ children: [
294
+ /*#__PURE__*/ jsxs(Flex, {
295
+ direction: "row",
296
+ background: "neutral0",
297
+ padding: 2,
298
+ borderWidth: "0 0 1px 0",
299
+ borderColor: "neutral150",
300
+ children: [
301
+ hasAdvancedPreview && /*#__PURE__*/ jsx(IconButton, {
302
+ variant: "ghost",
303
+ label: formatMessage(isSideEditorOpen ? {
304
+ id: 'content-manager.preview.content.close-editor',
305
+ defaultMessage: 'Close editor'
306
+ } : {
307
+ id: 'content-manager.preview.content.open-editor',
308
+ defaultMessage: 'Open editor'
309
+ }),
310
+ onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
311
+ children: /*#__PURE__*/ jsx(AnimatedArrow, {
312
+ $isSideEditorOpen: isSideEditorOpen
313
+ })
314
+ }),
315
+ /*#__PURE__*/ jsx(Flex, {
316
+ justifyContent: "center",
317
+ flex: 1,
318
+ children: /*#__PURE__*/ jsx(SingleSelect, {
319
+ value: deviceName,
320
+ onChange: (name)=>setDeviceName(name.toString()),
321
+ "aria-label": formatMessage({
322
+ id: 'content-manager.preview.device.select',
323
+ defaultMessage: 'Select device type'
324
+ }),
325
+ children: DEVICES.map((deviceOption)=>/*#__PURE__*/ jsx(SingleSelectOption, {
326
+ value: deviceOption.name,
327
+ children: formatMessage(deviceOption.label)
328
+ }, deviceOption.name))
329
+ })
330
+ })
331
+ ]
332
+ }),
333
+ /*#__PURE__*/ jsx(Flex, {
334
+ direction: "column",
335
+ justifyContent: "center",
336
+ background: "neutral0",
337
+ flex: 1,
338
+ children: /*#__PURE__*/ jsx(Box, {
165
339
  "data-testid": "preview-iframe",
166
340
  ref: iframeRef,
167
341
  src: previewUrl,
@@ -169,34 +343,21 @@ const PreviewPage = ()=>{
169
343
  id: 'content-manager.preview.panel.title',
170
344
  defaultMessage: 'Preview'
171
345
  }),
172
- width: "100%",
173
- height: "100%",
346
+ width: device.width,
347
+ height: device.height,
174
348
  borderWidth: 0,
175
349
  tag: "iframe"
176
- }, previewUrl),
177
- hasAdvancedPreview && /*#__PURE__*/ jsx(IconButton, {
178
- variant: "tertiary",
179
- label: formatMessage(isSideEditorOpen ? {
180
- id: 'content-manager.preview.content.close-editor',
181
- defaultMessage: 'Close editor'
182
- } : {
183
- id: 'content-manager.preview.content.open-editor',
184
- defaultMessage: 'Open editor'
185
- }),
186
- onClick: ()=>setIsSideEditorOpen((prev)=>!prev),
187
- position: "absolute",
188
- top: 2,
189
- left: 2,
190
- children: /*#__PURE__*/ jsx(AnimatedArrow, {
191
- isSideEditorOpen: isSideEditorOpen
192
- })
193
- })
194
- ]
195
- })
196
- ]
197
- })
198
- ]
199
- })
350
+ }, previewUrl)
351
+ })
352
+ ]
353
+ })
354
+ ]
355
+ }),
356
+ /*#__PURE__*/ jsx(VisualEditingPopover, {
357
+ documentResponse: documentResponse
358
+ })
359
+ ]
360
+ })
200
361
  })
201
362
  })
202
363
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"Preview.mjs","sources":["../../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n Blocker,\n} from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, IconButton, Portal } from '@strapi/design-system';\nimport { ArrowLineLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n onPreview: () => void;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLineLeft)<{ isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && !documentResponse.document?.documentId) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n const onPreview = () => {\n iframeRef?.current?.contentWindow?.postMessage(\n { type: 'strapiUpdate' },\n // The iframe origin is safe to use since it must be provided through the allowedOrigins config\n new URL(iframeRef.current.src).origin\n );\n };\n\n const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n onPreview={onPreview}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status !== 'draft'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n ...options,\n }\n );\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n >\n {({ resetForm }) => (\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <Blocker onProceed={resetForm} />\n <PreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n {hasAdvancedPreview && (\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\n </Box>\n )}\n\n <Box position=\"relative\" flex={1} height=\"100%\" overflow=\"hidden\">\n <Box\n data-testid=\"preview-iframe\"\n ref={iframeRef}\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n {hasAdvancedPreview && (\n <IconButton\n variant=\"tertiary\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n position=\"absolute\"\n top={2}\n left={2}\n >\n <AnimatedArrow isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n )}\n </Box>\n </Flex>\n </Flex>\n )}\n </FormContext>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["PreviewProvider","usePreviewContext","createContext","AnimatedArrow","styled","ArrowLineLeft","props","isSideEditorOpen","PreviewPage","location","useLocation","formatMessage","useIntl","iframeRef","React","useRef","setIsSideEditorOpen","useState","slug","model","id","documentId","collectionType","useParams","query","useQueryParams","params","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","status","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","document","_jsx","Page","Loading","initialValues","getInitialFormValues","error","meta","schema","data","url","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","options","yupSchema","createYupSchema","attributes","components","abortEarly","previewUrl","onPreview","current","contentWindow","postMessage","type","URL","src","origin","hasAdvancedPreview","window","strapi","features","isEnabled","_jsxs","_Fragment","Title","defaultMessage","title","layout","FormContext","method","disabled","initialErrors","state","forceValidation","height","validate","resetForm","Flex","direction","alignItems","Blocker","onProceed","PreviewHeader","flex","overflow","Box","width","borderWidth","borderColor","paddingTop","paddingBottom","paddingLeft","paddingRight","transition","FormLayout","hasBackground","position","data-testid","ref","tag","IconButton","variant","label","onClick","prev","top","left","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","zIndex","background","Protect","filter","permission","includes","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
1
+ {"version":3,"file":"Preview.mjs","sources":["../../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n useQueryParams,\n useRBAC,\n createContext,\n Form as FormContext,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n FocusTrap,\n IconButton,\n Popover,\n Portal,\n SingleSelect,\n SingleSelectOption,\n} from '@strapi/design-system';\nimport { ArrowLineLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { type EditLayout, useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { Blocker } from '../../pages/EditView/components/Blocker';\nimport { FormLayout } from '../../pages/EditView/components/FormLayout';\nimport { InputRenderer } from '../../pages/EditView/components/InputRenderer';\nimport { handleInvisibleAttributes } from '../../pages/EditView/utils/data';\nimport { buildValidParams } from '../../utils/api';\nimport { createYupSchema } from '../../utils/validation';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\nimport { INTERNAL_EVENTS, PUBLIC_EVENTS } from '../utils/constants';\nimport { previewScript } from '../utils/previewScript';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Constants\n * -----------------------------------------------------------------------------------------------*/\n\nconst DEVICES = [\n {\n name: 'desktop',\n label: {\n id: 'content-manager.preview.device.desktop',\n defaultMessage: 'Desktop',\n },\n width: '100%',\n height: '100%',\n },\n {\n name: 'mobile',\n label: {\n id: 'content-manager.preview.device.mobile',\n defaultMessage: 'Mobile',\n },\n width: '375px',\n height: '667px',\n },\n];\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PopoverField {\n path: string;\n position: DOMRect;\n}\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n layout: EditLayout;\n onPreview: () => void;\n iframeRef: React.RefObject<HTMLIFrameElement>;\n isSideEditorOpen: boolean;\n popoverField: PopoverField | null;\n setPopoverField: (value: PopoverField | null) => void;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * VisualEditingPopover\n * -----------------------------------------------------------------------------------------------*/\n\nconst VisualEditingPopover = ({\n documentResponse,\n}: {\n documentResponse: ReturnType<UseDocument>;\n}) => {\n const iframeRef = usePreviewContext('VisualEditingPopover', (state) => state.iframeRef);\n const popoverField = usePreviewContext('VisualEditingPopover', (state) => state.popoverField);\n const setPopoverField = usePreviewContext(\n 'VisualEditingPopover',\n (state) => state.setPopoverField\n );\n\n if (!popoverField || !documentResponse.schema || !iframeRef.current) {\n return null;\n }\n\n const iframeRect = iframeRef.current.getBoundingClientRect();\n\n return (\n <>\n {popoverField && (\n <Box\n position={'fixed'}\n top={iframeRect.top + 'px'}\n left={iframeRect.left + 'px'}\n width={iframeRect.width + 'px'}\n height={iframeRect.height + 'px'}\n zIndex={4}\n />\n )}\n <Popover.Root\n open={popoverField != null}\n onOpenChange={(open) => !open && setPopoverField(null)}\n >\n <Popover.Trigger>\n <Box\n id=\"popover-trigger\"\n position=\"fixed\"\n width={popoverField.position.width + 'px'}\n height={popoverField.position.height + 'px'}\n top={iframeRect.top + popoverField.position.top + 'px'}\n left={iframeRect.left + popoverField.position.left + 'px'}\n />\n </Popover.Trigger>\n <Popover.Content sideOffset={4}>\n <Box padding={4} width=\"400px\">\n <InputRenderer\n document={documentResponse}\n attribute={documentResponse.schema.attributes[popoverField.path] as any}\n label={popoverField.path}\n name={popoverField.path}\n type={documentResponse.schema.attributes[popoverField.path].type}\n visible={true}\n />\n </Box>\n </Popover.Content>\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst AnimatedArrow = styled(ArrowLineLeft)<{ $isSideEditorOpen: boolean }>`\n will-change: transform;\n rotate: ${(props) => (props.$isSideEditorOpen ? '0deg' : '180deg')};\n transition: rotate 0.2s ease-in-out;\n`;\n\ntype MessageType =\n | (typeof INTERNAL_EVENTS)[keyof typeof INTERNAL_EVENTS]\n | (typeof PUBLIC_EVENTS)[keyof typeof PUBLIC_EVENTS];\n\n/**\n * A function factory so we can generate a new sendMessage everytime we need one.\n * We can't store and reuse a single sendMessage because it needs to have a stable identity\n * as it used in a useEffect function. And we can't rely on useCallback because we need the\n * up-to-date iframe ref, and this would make it stale (refs don't trigger callback reevaluations).\n */\nfunction getSendMessage(iframe: React.RefObject<HTMLIFrameElement>) {\n return (type: MessageType, payload?: unknown) => {\n if (!iframe.current) return;\n\n const { origin } = new URL(iframe.current.src);\n\n iframe.current.contentWindow?.postMessage(\n {\n type,\n ...(payload !== undefined && { payload }),\n },\n origin\n );\n };\n}\n\nconst PreviewPage = () => {\n const location = useLocation();\n const { formatMessage } = useIntl();\n\n const iframeRef = React.useRef<HTMLIFrameElement>(null);\n const [isSideEditorOpen, setIsSideEditorOpen] = React.useState(true);\n const [popoverField, setPopoverField] = React.useState<PopoverField | null>(null);\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [\n {\n query: { field: _field, ...query },\n },\n ] = useQueryParams<{\n plugins?: Record<string, unknown>;\n status?: string;\n field?: string;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const [deviceName, setDeviceName] = React.useState<(typeof DEVICES)[number]['name']>(\n DEVICES[0].name\n );\n const device = DEVICES.find((d) => d.name === deviceName) ?? DEVICES[0];\n\n // Listen for ready message from iframe before injecting script\n React.useEffect(() => {\n const handleMessage = (event: MessageEvent) => {\n if (event.data?.type === PUBLIC_EVENTS.PREVIEW_READY) {\n const script = `(${previewScript.toString()})()`;\n const sendMessage = getSendMessage(iframeRef);\n sendMessage(PUBLIC_EVENTS.STRAPI_SCRIPT, { script });\n }\n };\n\n window.addEventListener('message', handleMessage);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n };\n }, []);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n const documentLayoutResponse = useDocumentLayout(model);\n\n const isLoading =\n previewUrlResponse.isLoading || documentLayoutResponse.isLoading || documentResponse.isLoading;\n if (isLoading && (!documentResponse.document?.documentId || previewUrlResponse.isLoading)) {\n return <Page.Loading />;\n }\n\n const initialValues = documentResponse.getInitialFormValues();\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema ||\n !initialValues\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {\n schema: documentResponse.schema,\n initialValues,\n components: documentResponse.components,\n });\n\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n removedAttributes,\n ...options,\n }\n );\n\n return yupSchema.validateSync(cleanedValues, { abortEarly: false });\n };\n\n const previewUrl = previewUrlResponse.data.data.url;\n\n const onPreview = () => {\n const sendMessage = getSendMessage(iframeRef);\n sendMessage(PUBLIC_EVENTS.STRAPI_UPDATE);\n };\n\n const hasAdvancedPreview = window.strapi.features.isEnabled('cms-advanced-preview');\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrl}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n layout={documentLayoutResponse.edit}\n onPreview={onPreview}\n iframeRef={iframeRef}\n isSideEditorOpen={isSideEditorOpen}\n popoverField={popoverField}\n setPopoverField={setPopoverField}\n >\n <FormContext\n method=\"PUT\"\n disabled={\n query.status === 'published' &&\n documentResponse &&\n documentResponse.document.status !== 'draft'\n }\n initialValues={documentResponse.getInitialFormValues()}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n height=\"100%\"\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {\n schema: documentResponse.schema,\n initialValues,\n components: documentResponse.components,\n });\n\n const yupSchema = createYupSchema(\n documentResponse.schema?.attributes,\n documentResponse.components,\n {\n status: documentResponse.document?.status,\n removedAttributes,\n ...options,\n }\n );\n\n return yupSchema.validate(cleanedValues, { abortEarly: false });\n }}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <Blocker />\n <PreviewHeader />\n <Flex flex={1} overflow=\"auto\" alignItems=\"stretch\">\n {hasAdvancedPreview && (\n <Box\n overflow=\"auto\"\n width={isSideEditorOpen ? '50%' : 0}\n borderWidth=\"0 1px 0 0\"\n borderColor=\"neutral150\"\n paddingTop={6}\n paddingBottom={6}\n // Remove horizontal padding when the editor is closed or it won't fully disappear\n paddingLeft={isSideEditorOpen ? 6 : 0}\n paddingRight={isSideEditorOpen ? 6 : 0}\n transition=\"all 0.2s ease-in-out\"\n >\n <FormLayout\n layout={documentLayoutResponse.edit.layout}\n document={documentResponse}\n hasBackground={false}\n />\n </Box>\n )}\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n flex={1}\n height=\"100%\"\n overflow=\"hidden\"\n >\n <Flex\n direction=\"row\"\n background=\"neutral0\"\n padding={2}\n borderWidth=\"0 0 1px 0\"\n borderColor=\"neutral150\"\n >\n {hasAdvancedPreview && (\n <IconButton\n variant=\"ghost\"\n label={formatMessage(\n isSideEditorOpen\n ? {\n id: 'content-manager.preview.content.close-editor',\n defaultMessage: 'Close editor',\n }\n : {\n id: 'content-manager.preview.content.open-editor',\n defaultMessage: 'Open editor',\n }\n )}\n onClick={() => setIsSideEditorOpen((prev) => !prev)}\n >\n <AnimatedArrow $isSideEditorOpen={isSideEditorOpen} />\n </IconButton>\n )}\n <Flex justifyContent=\"center\" flex={1}>\n <SingleSelect\n value={deviceName}\n onChange={(name) => setDeviceName(name.toString())}\n aria-label={formatMessage({\n id: 'content-manager.preview.device.select',\n defaultMessage: 'Select device type',\n })}\n >\n {DEVICES.map((deviceOption) => (\n <SingleSelectOption key={deviceOption.name} value={deviceOption.name}>\n {formatMessage(deviceOption.label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Flex>\n </Flex>\n <Flex direction=\"column\" justifyContent=\"center\" background=\"neutral0\" flex={1}>\n <Box\n data-testid=\"preview-iframe\"\n ref={iframeRef}\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width={device.width}\n height={device.height}\n borderWidth={0}\n tag=\"iframe\"\n />\n </Flex>\n </Flex>\n </Flex>\n <VisualEditingPopover documentResponse={documentResponse} />\n </Flex>\n </FormContext>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([\n { action: 'plugin::content-manager.explorer.read', subject: model },\n { action: 'plugin::content-manager.explorer.update', subject: model },\n { action: 'plugin::content-manager.explorer.publish', subject: model },\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect\n permissions={permissions.filter((permission) =>\n permission.action.includes('explorer.read')\n )}\n >\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["DEVICES","name","label","id","defaultMessage","width","height","PreviewProvider","usePreviewContext","createContext","VisualEditingPopover","documentResponse","iframeRef","state","popoverField","setPopoverField","schema","current","iframeRect","getBoundingClientRect","_jsxs","_Fragment","_jsx","Box","position","top","left","zIndex","Popover","Root","open","onOpenChange","Trigger","Content","sideOffset","padding","InputRenderer","document","attribute","attributes","path","type","visible","AnimatedArrow","styled","ArrowLineLeft","props","$isSideEditorOpen","getSendMessage","iframe","payload","origin","URL","src","contentWindow","postMessage","undefined","PreviewPage","location","useLocation","formatMessage","useIntl","React","useRef","isSideEditorOpen","setIsSideEditorOpen","useState","slug","model","documentId","collectionType","useParams","query","field","_field","useQueryParams","params","useMemo","buildValidParams","deviceName","setDeviceName","device","find","d","useEffect","handleMessage","event","data","PUBLIC_EVENTS","PREVIEW_READY","script","previewScript","toString","sendMessage","STRAPI_SCRIPT","window","addEventListener","removeEventListener","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","status","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","initialValues","getInitialFormValues","error","meta","url","NoData","documentTitle","getTitle","edit","settings","mainField","validateSync","values","options","cleanedValues","removedAttributes","handleInvisibleAttributes","components","yupSchema","createYupSchema","abortEarly","previewUrl","onPreview","STRAPI_UPDATE","hasAdvancedPreview","strapi","features","isEnabled","Title","title","layout","FormContext","method","disabled","initialErrors","forceValidation","validate","Flex","direction","alignItems","Blocker","PreviewHeader","flex","overflow","borderWidth","borderColor","paddingTop","paddingBottom","paddingLeft","paddingRight","transition","FormLayout","hasBackground","background","IconButton","variant","onClick","prev","justifyContent","SingleSelect","value","onChange","aria-label","map","deviceOption","SingleSelectOption","data-testid","ref","tag","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","Protect","filter","permission","includes","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA0CA;;AAEkG,qGAElG,MAAMA,OAAU,GAAA;AACd,IAAA;QACEC,IAAM,EAAA,SAAA;QACNC,KAAO,EAAA;YACLC,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA,MAAA;QACPC,MAAQ,EAAA;AACV,KAAA;AACA,IAAA;QACEL,IAAM,EAAA,QAAA;QACNC,KAAO,EAAA;YACLC,EAAI,EAAA,uCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA,OAAA;QACPC,MAAQ,EAAA;AACV;AACD,CAAA;AAyBD,MAAM,CAACC,eAAAA,EAAiBC,iBAAkB,CAAA,GAAGC,aAAmC,CAAA,aAAA;AAEhF;;AAEkG,qGAElG,MAAMC,oBAAAA,GAAuB,CAAC,EAC5BC,gBAAgB,EAGjB,GAAA;AACC,IAAA,MAAMC,YAAYJ,iBAAkB,CAAA,sBAAA,EAAwB,CAACK,KAAAA,GAAUA,MAAMD,SAAS,CAAA;AACtF,IAAA,MAAME,eAAeN,iBAAkB,CAAA,sBAAA,EAAwB,CAACK,KAAAA,GAAUA,MAAMC,YAAY,CAAA;AAC5F,IAAA,MAAMC,kBAAkBP,iBACtB,CAAA,sBAAA,EACA,CAACK,KAAAA,GAAUA,MAAME,eAAe,CAAA;IAGlC,IAAI,CAACD,gBAAgB,CAACH,gBAAAA,CAAiBK,MAAM,IAAI,CAACJ,SAAUK,CAAAA,OAAO,EAAE;QACnE,OAAO,IAAA;AACT;AAEA,IAAA,MAAMC,UAAaN,GAAAA,SAAAA,CAAUK,OAAO,CAACE,qBAAqB,EAAA;IAE1D,qBACEC,IAAA,CAAAC,QAAA,EAAA;;AACGP,YAAAA,YAAAA,kBACCQ,GAACC,CAAAA,GAAAA,EAAAA;gBACCC,QAAU,EAAA,OAAA;gBACVC,GAAKP,EAAAA,UAAAA,CAAWO,GAAG,GAAG,IAAA;gBACtBC,IAAMR,EAAAA,UAAAA,CAAWQ,IAAI,GAAG,IAAA;gBACxBrB,KAAOa,EAAAA,UAAAA,CAAWb,KAAK,GAAG,IAAA;gBAC1BC,MAAQY,EAAAA,UAAAA,CAAWZ,MAAM,GAAG,IAAA;gBAC5BqB,MAAQ,EAAA;;AAGZ,0BAAAP,IAAA,CAACQ,QAAQC,IAAI,EAAA;AACXC,gBAAAA,IAAAA,EAAMhB,YAAgB,IAAA,IAAA;AACtBiB,gBAAAA,YAAAA,EAAc,CAACD,IAAAA,GAAS,CAACA,IAAAA,IAAQf,eAAgB,CAAA,IAAA,CAAA;;AAEjD,kCAAAO,GAAA,CAACM,QAAQI,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAAV,GAACC,CAAAA,GAAAA,EAAAA;4BACCpB,EAAG,EAAA,iBAAA;4BACHqB,QAAS,EAAA,OAAA;AACTnB,4BAAAA,KAAAA,EAAOS,YAAaU,CAAAA,QAAQ,CAACnB,KAAK,GAAG,IAAA;AACrCC,4BAAAA,MAAAA,EAAQQ,YAAaU,CAAAA,QAAQ,CAAClB,MAAM,GAAG,IAAA;AACvCmB,4BAAAA,GAAAA,EAAKP,WAAWO,GAAG,GAAGX,aAAaU,QAAQ,CAACC,GAAG,GAAG,IAAA;AAClDC,4BAAAA,IAAAA,EAAMR,WAAWQ,IAAI,GAAGZ,aAAaU,QAAQ,CAACE,IAAI,GAAG;;;AAGzD,kCAAAJ,GAAA,CAACM,QAAQK,OAAO,EAAA;wBAACC,UAAY,EAAA,CAAA;AAC3B,wBAAA,QAAA,gBAAAZ,GAACC,CAAAA,GAAAA,EAAAA;4BAAIY,OAAS,EAAA,CAAA;4BAAG9B,KAAM,EAAA,OAAA;AACrB,4BAAA,QAAA,gBAAAiB,GAACc,CAAAA,qBAAAA,EAAAA;gCACCC,QAAU1B,EAAAA,gBAAAA;AACV2B,gCAAAA,SAAAA,EAAW3B,iBAAiBK,MAAM,CAACuB,UAAU,CAACzB,YAAAA,CAAa0B,IAAI,CAAC;AAChEtC,gCAAAA,KAAAA,EAAOY,aAAa0B,IAAI;AACxBvC,gCAAAA,IAAAA,EAAMa,aAAa0B,IAAI;gCACvBC,IAAM9B,EAAAA,gBAAAA,CAAiBK,MAAM,CAACuB,UAAU,CAACzB,YAAa0B,CAAAA,IAAI,CAAC,CAACC,IAAI;gCAChEC,OAAS,EAAA;;;;;;;;AAOvB,CAAA;AAEA;;AAEkG,qGAElG,MAAMC,aAAAA,GAAgBC,MAAOC,CAAAA,aAAAA,CAA8C;;AAEjE,UAAA,EAAE,CAACC,KAAWA,GAAAA,KAAAA,CAAMC,iBAAiB,GAAG,SAAS,QAAU,CAAA;;AAErE,CAAC;AAMD;;;;;IAMA,SAASC,eAAeC,MAA0C,EAAA;AAChE,IAAA,OAAO,CAACR,IAAmBS,EAAAA,OAAAA,GAAAA;QACzB,IAAI,CAACD,MAAOhC,CAAAA,OAAO,EAAE;QAErB,MAAM,EAAEkC,MAAM,EAAE,GAAG,IAAIC,GAAIH,CAAAA,MAAAA,CAAOhC,OAAO,CAACoC,GAAG,CAAA;AAE7CJ,QAAAA,MAAAA,CAAOhC,OAAO,CAACqC,aAAa,EAAEC,WAC5B,CAAA;AACEd,YAAAA,IAAAA;AACA,YAAA,GAAIS,YAAYM,SAAa,IAAA;AAAEN,gBAAAA;;SAEjCC,EAAAA,MAAAA,CAAAA;AAEJ,KAAA;AACF;AAEA,MAAMM,WAAc,GAAA,IAAA;AAClB,IAAA,MAAMC,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMjD,SAAAA,GAAYkD,KAAMC,CAAAA,MAAM,CAAoB,IAAA,CAAA;AAClD,IAAA,MAAM,CAACC,gBAAkBC,EAAAA,mBAAAA,CAAoB,GAAGH,KAAAA,CAAMI,QAAQ,CAAC,IAAA,CAAA;AAC/D,IAAA,MAAM,CAACpD,YAAcC,EAAAA,eAAAA,CAAgB,GAAG+C,KAAAA,CAAMI,QAAQ,CAAsB,IAAA,CAAA;;IAG5E,MAAM,EACJC,MAAMC,KAAK,EACXjE,IAAIkE,UAAU,EACdC,cAAc,EACf,GAAGC,SAAAA,EAAAA;IAKJ,MAAM,CACJ,EACEC,KAAAA,EAAO,EAAEC,KAAAA,EAAOC,MAAM,EAAE,GAAGF,KAAAA,EAAO,EACnC,CACF,GAAGG,cAAAA,EAAAA;AAMJ,IAAA,MAAMC,SAASd,KAAMe,CAAAA,OAAO,CAAC,IAAMC,iBAAiBN,KAAQ,CAAA,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;IAEnE,MAAM,CAACO,UAAYC,EAAAA,aAAAA,CAAc,GAAGlB,KAAAA,CAAMI,QAAQ,CAChDlE,OAAO,CAAC,CAAE,CAAA,CAACC,IAAI,CAAA;AAEjB,IAAA,MAAMgF,MAASjF,GAAAA,OAAAA,CAAQkF,IAAI,CAAC,CAACC,CAAAA,GAAMA,CAAElF,CAAAA,IAAI,KAAK8E,UAAAA,CAAAA,IAAe/E,OAAO,CAAC,CAAE,CAAA;;AAGvE8D,IAAAA,KAAAA,CAAMsB,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,gBAAgB,CAACC,KAAAA,GAAAA;AACrB,YAAA,IAAIA,MAAMC,IAAI,EAAE9C,IAAS+C,KAAAA,aAAAA,CAAcC,aAAa,EAAE;gBACpD,MAAMC,MAAAA,GAAS,CAAC,CAAC,EAAEC,cAAcC,QAAQ,EAAA,CAAG,GAAG,CAAC;AAChD,gBAAA,MAAMC,cAAc7C,cAAepC,CAAAA,SAAAA,CAAAA;gBACnCiF,WAAYL,CAAAA,aAAAA,CAAcM,aAAa,EAAE;AAAEJ,oBAAAA;AAAO,iBAAA,CAAA;AACpD;AACF,SAAA;QAEAK,MAAOC,CAAAA,gBAAgB,CAAC,SAAWX,EAAAA,aAAAA,CAAAA;QAEnC,OAAO,IAAA;YACLU,MAAOE,CAAAA,mBAAmB,CAAC,SAAWZ,EAAAA,aAAAA,CAAAA;AACxC,SAAA;AACF,KAAA,EAAG,EAAE,CAAA;AAEL,IAAA,IAAI,CAACf,cAAgB,EAAA;AACnB,QAAA,MAAM,IAAI4B,KAAM,CAAA,6CAAA,CAAA;AAClB;AAEA,IAAA,IAAI,CAAC9B,KAAO,EAAA;AACV,QAAA,MAAM,IAAI8B,KAAM,CAAA,oCAAA,CAAA;AAClB;;IAGA,IAAI5B,cAAAA,KAAmB6B,gBAAoB,IAAA,CAAC9B,UAAY,EAAA;AACtD,QAAA,MAAM,IAAI6B,KAAM,CAAA,yCAAA,CAAA;AAClB;AAEA,IAAA,MAAME,qBAAqBC,qBAAsB,CAAA;QAC/CzB,MAAQ,EAAA;YACN0B,WAAalC,EAAAA;AACf,SAAA;QACAI,KAAO,EAAA;AACLH,YAAAA,UAAAA;AACAkC,YAAAA,MAAAA,EAAQ3B,OAAO2B,MAAM;AACrBC,YAAAA,MAAAA,EAAQ5B,OAAO4B;AACjB;AACF,KAAA,CAAA;AACA,IAAA,MAAM7F,mBAAmB8F,WAAY,CAAA;AACnCrC,QAAAA,KAAAA;AACAE,QAAAA,cAAAA;AACAD,QAAAA,UAAAA;AACAO,QAAAA;AACF,KAAA,CAAA;AACA,IAAA,MAAM8B,yBAAyBC,iBAAkBvC,CAAAA,KAAAA,CAAAA;IAEjD,MAAMwC,SAAAA,GACJR,mBAAmBQ,SAAS,IAAIF,uBAAuBE,SAAS,IAAIjG,iBAAiBiG,SAAS;IAChG,IAAIA,SAAAA,KAAc,CAACjG,gBAAiB0B,CAAAA,QAAQ,EAAEgC,UAAc+B,IAAAA,kBAAAA,CAAmBQ,SAAQ,CAAI,EAAA;QACzF,qBAAOtF,GAAA,CAACuF,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,MAAMC,aAAAA,GAAgBpG,iBAAiBqG,oBAAoB,EAAA;AAE3D,IAAA,IACEZ,mBAAmBa,KAAK,IACxBP,uBAAuBO,KAAK,IAC5B,CAACtG,gBAAiB0B,CAAAA,QAAQ,IAC1B,CAAC1B,gBAAAA,CAAiBuG,IAAI,IACtB,CAACvG,iBAAiBK,MAAM,IACxB,CAAC+F,aACD,EAAA;QACA,qBAAOzF,GAAA,CAACuF,KAAKX,KAAK,EAAA,EAAA,CAAA;AACpB;AAEA,IAAA,IAAI,CAACE,kBAAAA,CAAmBb,IAAI,EAAEA,MAAM4B,GAAK,EAAA;QACvC,qBAAO7F,GAAA,CAACuF,KAAKO,MAAM,EAAA,EAAA,CAAA;AACrB;IAEA,MAAMC,aAAAA,GAAgB1G,iBAAiB2G,QAAQ,CAACZ,uBAAuBa,IAAI,CAACC,QAAQ,CAACC,SAAS,CAAA;IAE9F,MAAMC,YAAAA,GAAe,CAACC,MAAiCC,EAAAA,OAAAA,GAAAA;QACrD,MAAM,EAAErC,MAAMsC,aAAa,EAAEC,iBAAiB,EAAE,GAAGC,0BAA0BJ,MAAQ,EAAA;AACnF3G,YAAAA,MAAAA,EAAQL,iBAAiBK,MAAM;AAC/B+F,YAAAA,aAAAA;AACAiB,YAAAA,UAAAA,EAAYrH,iBAAiBqH;AAC/B,SAAA,CAAA;QAEA,MAAMC,SAAAA,GAAYC,gBAChBvH,gBAAiBK,CAAAA,MAAM,EAAEuB,UACzB5B,EAAAA,gBAAAA,CAAiBqH,UAAU,EAC3B;YACExB,MAAQ7F,EAAAA,gBAAAA,CAAiB0B,QAAQ,EAAEmE,MAAAA;AACnCsB,YAAAA,iBAAAA;AACA,YAAA,GAAGF;AACL,SAAA,CAAA;QAGF,OAAOK,SAAAA,CAAUP,YAAY,CAACG,aAAe,EAAA;YAAEM,UAAY,EAAA;AAAM,SAAA,CAAA;AACnE,KAAA;AAEA,IAAA,MAAMC,aAAahC,kBAAmBb,CAAAA,IAAI,CAACA,IAAI,CAAC4B,GAAG;AAEnD,IAAA,MAAMkB,SAAY,GAAA,IAAA;AAChB,QAAA,MAAMxC,cAAc7C,cAAepC,CAAAA,SAAAA,CAAAA;AACnCiF,QAAAA,WAAAA,CAAYL,cAAc8C,aAAa,CAAA;AACzC,KAAA;AAEA,IAAA,MAAMC,qBAAqBxC,MAAOyC,CAAAA,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,sBAAA,CAAA;IAE5D,qBACEtH,IAAA,CAAAC,QAAA,EAAA;;AACE,0BAAAC,GAAA,CAACuF,KAAK8B,KAAK,EAAA;0BACR/E,aACC,CAAA;oBACEzD,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;iBAElB,EAAA;oBACEkG,WAAae,EAAAA;AACf,iBAAA;;0BAGJ/F,GAACf,CAAAA,eAAAA,EAAAA;gBACC4G,GAAKiB,EAAAA,UAAAA;AACL/F,gBAAAA,QAAAA,EAAU1B,iBAAiB0B,QAAQ;gBACnCuG,KAAOvB,EAAAA,aAAAA;AACPH,gBAAAA,IAAAA,EAAMvG,iBAAiBuG,IAAI;AAC3BlG,gBAAAA,MAAAA,EAAQL,iBAAiBK,MAAM;AAC/B6H,gBAAAA,MAAAA,EAAQnC,uBAAuBa,IAAI;gBACnCc,SAAWA,EAAAA,SAAAA;gBACXzH,SAAWA,EAAAA,SAAAA;gBACXoD,gBAAkBA,EAAAA,gBAAAA;gBAClBlD,YAAcA,EAAAA,YAAAA;gBACdC,eAAiBA,EAAAA,eAAAA;AAEjB,gBAAA,QAAA,gBAAAO,GAACwH,CAAAA,IAAAA,EAAAA;oBACCC,MAAO,EAAA,KAAA;oBACPC,QACExE,EAAAA,KAAAA,CAAMgC,MAAM,KAAK,WAAA,IACjB7F,oBACAA,gBAAiB0B,CAAAA,QAAQ,CAACmE,MAAM,KAAK,OAAA;AAEvCO,oBAAAA,aAAAA,EAAepG,iBAAiBqG,oBAAoB,EAAA;AACpDiC,oBAAAA,aAAAA,EAAevF,UAAU7C,KAAOqI,EAAAA,eAAAA,GAAkBxB,aAAaX,aAAe,EAAA,MAAM,EAAC;oBACrFzG,MAAO,EAAA,MAAA;AACP6I,oBAAAA,QAAAA,EAAU,CAACxB,MAAiCC,EAAAA,OAAAA,GAAAA;wBAC1C,MAAM,EAAErC,MAAMsC,aAAa,EAAEC,iBAAiB,EAAE,GAAGC,0BAA0BJ,MAAQ,EAAA;AACnF3G,4BAAAA,MAAAA,EAAQL,iBAAiBK,MAAM;AAC/B+F,4BAAAA,aAAAA;AACAiB,4BAAAA,UAAAA,EAAYrH,iBAAiBqH;AAC/B,yBAAA,CAAA;wBAEA,MAAMC,SAAAA,GAAYC,gBAChBvH,gBAAiBK,CAAAA,MAAM,EAAEuB,UACzB5B,EAAAA,gBAAAA,CAAiBqH,UAAU,EAC3B;4BACExB,MAAQ7F,EAAAA,gBAAAA,CAAiB0B,QAAQ,EAAEmE,MAAAA;AACnCsB,4BAAAA,iBAAAA;AACA,4BAAA,GAAGF;AACL,yBAAA,CAAA;wBAGF,OAAOK,SAAAA,CAAUkB,QAAQ,CAACtB,aAAe,EAAA;4BAAEM,UAAY,EAAA;AAAM,yBAAA,CAAA;AAC/D,qBAAA;AAEA,oBAAA,QAAA,gBAAA/G,IAACgI,CAAAA,IAAAA,EAAAA;wBAAKC,SAAU,EAAA,QAAA;wBAAS/I,MAAO,EAAA,MAAA;wBAAOgJ,UAAW,EAAA,SAAA;;0CAChDhI,GAACiI,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;0CACDjI,GAACkI,CAAAA,aAAAA,EAAAA,EAAAA,CAAAA;0CACDpI,IAACgI,CAAAA,IAAAA,EAAAA;gCAAKK,IAAM,EAAA,CAAA;gCAAGC,QAAS,EAAA,MAAA;gCAAOJ,UAAW,EAAA,SAAA;;AACvCf,oCAAAA,kBAAAA,kBACCjH,GAACC,CAAAA,GAAAA,EAAAA;wCACCmI,QAAS,EAAA,MAAA;AACTrJ,wCAAAA,KAAAA,EAAO2D,mBAAmB,KAAQ,GAAA,CAAA;wCAClC2F,WAAY,EAAA,WAAA;wCACZC,WAAY,EAAA,YAAA;wCACZC,UAAY,EAAA,CAAA;wCACZC,aAAe,EAAA,CAAA;;AAEfC,wCAAAA,WAAAA,EAAa/F,mBAAmB,CAAI,GAAA,CAAA;AACpCgG,wCAAAA,YAAAA,EAAchG,mBAAmB,CAAI,GAAA,CAAA;wCACrCiG,UAAW,EAAA,sBAAA;AAEX,wCAAA,QAAA,gBAAA3I,GAAC4I,CAAAA,UAAAA,EAAAA;4CACCrB,MAAQnC,EAAAA,sBAAAA,CAAuBa,IAAI,CAACsB,MAAM;4CAC1CxG,QAAU1B,EAAAA,gBAAAA;4CACVwJ,aAAe,EAAA;;;kDAIrB/I,IAACgI,CAAAA,IAAAA,EAAAA;wCACCC,SAAU,EAAA,QAAA;wCACVC,UAAW,EAAA,SAAA;wCACXG,IAAM,EAAA,CAAA;wCACNnJ,MAAO,EAAA,MAAA;wCACPoJ,QAAS,EAAA,QAAA;;0DAETtI,IAACgI,CAAAA,IAAAA,EAAAA;gDACCC,SAAU,EAAA,KAAA;gDACVe,UAAW,EAAA,UAAA;gDACXjI,OAAS,EAAA,CAAA;gDACTwH,WAAY,EAAA,WAAA;gDACZC,WAAY,EAAA,YAAA;;AAEXrB,oDAAAA,kBAAAA,kBACCjH,GAAC+I,CAAAA,UAAAA,EAAAA;wDACCC,OAAQ,EAAA,OAAA;AACRpK,wDAAAA,KAAAA,EAAO0D,cACLI,gBACI,GAAA;4DACE7D,EAAI,EAAA,8CAAA;4DACJC,cAAgB,EAAA;yDAElB,GAAA;4DACED,EAAI,EAAA,6CAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;AAENmK,wDAAAA,OAAAA,EAAS,IAAMtG,mBAAAA,CAAoB,CAACuG,IAAAA,GAAS,CAACA,IAAAA,CAAAA;AAE9C,wDAAA,QAAA,gBAAAlJ,GAACqB,CAAAA,aAAAA,EAAAA;4DAAcI,iBAAmBiB,EAAAA;;;kEAGtC1C,GAAC8H,CAAAA,IAAAA,EAAAA;wDAAKqB,cAAe,EAAA,QAAA;wDAAShB,IAAM,EAAA,CAAA;AAClC,wDAAA,QAAA,gBAAAnI,GAACoJ,CAAAA,YAAAA,EAAAA;4DACCC,KAAO5F,EAAAA,UAAAA;AACP6F,4DAAAA,QAAAA,EAAU,CAAC3K,IAAAA,GAAS+E,aAAc/E,CAAAA,IAAAA,CAAK2F,QAAQ,EAAA,CAAA;AAC/CiF,4DAAAA,YAAAA,EAAYjH,aAAc,CAAA;gEACxBzD,EAAI,EAAA,uCAAA;gEACJC,cAAgB,EAAA;AAClB,6DAAA,CAAA;AAECJ,4DAAAA,QAAAA,EAAAA,OAAAA,CAAQ8K,GAAG,CAAC,CAACC,YAAAA,iBACZzJ,GAAC0J,CAAAA,kBAAAA,EAAAA;AAA2CL,oEAAAA,KAAAA,EAAOI,aAAa9K,IAAI;AACjE2D,oEAAAA,QAAAA,EAAAA,aAAAA,CAAcmH,aAAa7K,KAAK;AADV6K,iEAAAA,EAAAA,YAAAA,CAAa9K,IAAI,CAAA;;;;;0DAOlDqB,GAAC8H,CAAAA,IAAAA,EAAAA;gDAAKC,SAAU,EAAA,QAAA;gDAASoB,cAAe,EAAA,QAAA;gDAASL,UAAW,EAAA,UAAA;gDAAWX,IAAM,EAAA,CAAA;AAC3E,gDAAA,QAAA,gBAAAnI,GAACC,CAAAA,GAAAA,EAAAA;oDACC0J,aAAY,EAAA,gBAAA;oDACZC,GAAKtK,EAAAA,SAAAA;oDACLyC,GAAK+E,EAAAA,UAAAA;AASLQ,oDAAAA,KAAAA,EAAOhF,aAAc,CAAA;wDACnBzD,EAAI,EAAA,qCAAA;wDACJC,cAAgB,EAAA;AAClB,qDAAA,CAAA;AACAC,oDAAAA,KAAAA,EAAO4E,OAAO5E,KAAK;AACnBC,oDAAAA,MAAAA,EAAQ2E,OAAO3E,MAAM;oDACrBqJ,WAAa,EAAA,CAAA;oDACbwB,GAAI,EAAA;AARC/C,iDAAAA,EAAAA,UAAAA;;;;;;0CAab9G,GAACZ,CAAAA,oBAAAA,EAAAA;gCAAqBC,gBAAkBA,EAAAA;;;;;;;;AAMpD,CAAA;AAEA;;AAEkG,qGAElG,MAAMyK,wBAA2B,GAAA,IAAA;AAC/B,IAAA,MAAM,EAAEjH,IAAAA,EAAMC,KAAK,EAAE,GAAGG,SAAAA,EAAAA;IAGxB,MAAM,EACJ8G,cAAc,EAAE,EAChBzE,SAAS,EACTK,KAAK,EACN,GAAGqE,OAAQ,CAAA;AACV,QAAA;YAAEC,MAAQ,EAAA,uCAAA;YAAyCC,OAASpH,EAAAA;AAAM,SAAA;AAClE,QAAA;YAAEmH,MAAQ,EAAA,yCAAA;YAA2CC,OAASpH,EAAAA;AAAM,SAAA;AACpE,QAAA;YAAEmH,MAAQ,EAAA,0CAAA;YAA4CC,OAASpH,EAAAA;AAAM;AACtE,KAAA,CAAA;AAED,IAAA,IAAIwC,SAAW,EAAA;QACb,qBAAOtF,GAAA,CAACuF,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,IAAIG,KAAAA,IAAS,CAAC7C,KAAO,EAAA;AACnB,QAAA,qBACE9C,GAACC,CAAAA,GAAAA,EAAAA;YACCjB,MAAO,EAAA,OAAA;YACPD,KAAM,EAAA,OAAA;YACNmB,QAAS,EAAA,OAAA;YACTC,GAAK,EAAA,CAAA;YACLC,IAAM,EAAA,CAAA;YACNC,MAAQ,EAAA,CAAA;YACRyI,UAAW,EAAA,UAAA;oCAEX9I,GAAA,CAACuF,KAAKX,KAAK,EAAA,EAAA;;AAGjB;AAEA,IAAA,qBACE5E,GAACC,CAAAA,GAAAA,EAAAA;QACCjB,MAAO,EAAA,OAAA;QACPD,KAAM,EAAA,OAAA;QACNmB,QAAS,EAAA,OAAA;QACTC,GAAK,EAAA,CAAA;QACLC,IAAM,EAAA,CAAA;QACNC,MAAQ,EAAA,CAAA;QACRyI,UAAW,EAAA,UAAA;gCAEX9I,GAAA,CAACuF,KAAK4E,OAAO,EAAA;YACXJ,WAAaA,EAAAA,WAAAA,CAAYK,MAAM,CAAC,CAACC,aAC/BA,UAAWJ,CAAAA,MAAM,CAACK,QAAQ,CAAC,eAAA,CAAA,CAAA;AAG7B,YAAA,QAAA,gBAAAtK,GAACuK,CAAAA,YAAAA,EAAAA;gBAAaR,WAAaA,EAAAA,WAAAA;AACzB,gBAAA,QAAA,gBAAA/J,GAACmC,CAAAA,WAAAA,EAAAA,EAAAA;;;;AAKX,CAAA;AAEA,MAAMqI,oBAAuB,GAAA,IAAA;AAC3B,IAAA,qBACExK,GAACyK,CAAAA,MAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAzK,GAAC0K,CAAAA,SAAAA,EAAAA;AACC,YAAA,QAAA,gBAAA1K,GAAC8J,CAAAA,wBAAAA,EAAAA,EAAAA;;;AAIT;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var previewScript = require('./previewScript.js');
4
+
5
+ const scriptResponse = previewScript.previewScript(false);
6
+ /**
7
+ * These events can be changed safely. They're used by the content manager admin on one side, and by
8
+ * the preview script on the other. We own both ends, and they're not documented to users, so we can
9
+ * do what we want with them.
10
+ */ const INTERNAL_EVENTS = scriptResponse.INTERNAL_EVENTS;
11
+ /**
12
+ * These events are documented to users, and will be hardcoded in their frontends.
13
+ * Changing any of these would be a breaking change.
14
+ */ const PUBLIC_EVENTS = {
15
+ PREVIEW_READY: 'previewReady',
16
+ STRAPI_UPDATE: 'strapiUpdate',
17
+ STRAPI_SCRIPT: 'strapiScript'
18
+ };
19
+
20
+ exports.INTERNAL_EVENTS = INTERNAL_EVENTS;
21
+ exports.PUBLIC_EVENTS = PUBLIC_EVENTS;
22
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../admin/src/preview/utils/constants.ts"],"sourcesContent":["import { previewScript } from './previewScript';\n\nconst scriptResponse = previewScript(false);\n\n/**\n * These events can be changed safely. They're used by the content manager admin on one side, and by\n * the preview script on the other. We own both ends, and they're not documented to users, so we can\n * do what we want with them.\n */\nexport const INTERNAL_EVENTS = scriptResponse!.INTERNAL_EVENTS;\n\n/**\n * These events are documented to users, and will be hardcoded in their frontends.\n * Changing any of these would be a breaking change.\n */\nexport const PUBLIC_EVENTS = {\n PREVIEW_READY: 'previewReady',\n STRAPI_UPDATE: 'strapiUpdate',\n STRAPI_SCRIPT: 'strapiScript',\n} as const;\n"],"names":["scriptResponse","previewScript","INTERNAL_EVENTS","PUBLIC_EVENTS","PREVIEW_READY","STRAPI_UPDATE","STRAPI_SCRIPT"],"mappings":";;;;AAEA,MAAMA,iBAAiBC,2BAAc,CAAA,KAAA,CAAA;AAErC;;;;AAIC,IACM,MAAMC,eAAkBF,GAAAA,cAAAA,CAAgBE;AAE/C;;;UAIaC,aAAgB,GAAA;IAC3BC,aAAe,EAAA,cAAA;IACfC,aAAe,EAAA,cAAA;IACfC,aAAe,EAAA;AACjB;;;;;"}
@@ -0,0 +1,19 @@
1
+ import { previewScript } from './previewScript.mjs';
2
+
3
+ const scriptResponse = previewScript(false);
4
+ /**
5
+ * These events can be changed safely. They're used by the content manager admin on one side, and by
6
+ * the preview script on the other. We own both ends, and they're not documented to users, so we can
7
+ * do what we want with them.
8
+ */ const INTERNAL_EVENTS = scriptResponse.INTERNAL_EVENTS;
9
+ /**
10
+ * These events are documented to users, and will be hardcoded in their frontends.
11
+ * Changing any of these would be a breaking change.
12
+ */ const PUBLIC_EVENTS = {
13
+ PREVIEW_READY: 'previewReady',
14
+ STRAPI_UPDATE: 'strapiUpdate',
15
+ STRAPI_SCRIPT: 'strapiScript'
16
+ };
17
+
18
+ export { INTERNAL_EVENTS, PUBLIC_EVENTS };
19
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../admin/src/preview/utils/constants.ts"],"sourcesContent":["import { previewScript } from './previewScript';\n\nconst scriptResponse = previewScript(false);\n\n/**\n * These events can be changed safely. They're used by the content manager admin on one side, and by\n * the preview script on the other. We own both ends, and they're not documented to users, so we can\n * do what we want with them.\n */\nexport const INTERNAL_EVENTS = scriptResponse!.INTERNAL_EVENTS;\n\n/**\n * These events are documented to users, and will be hardcoded in their frontends.\n * Changing any of these would be a breaking change.\n */\nexport const PUBLIC_EVENTS = {\n PREVIEW_READY: 'previewReady',\n STRAPI_UPDATE: 'strapiUpdate',\n STRAPI_SCRIPT: 'strapiScript',\n} as const;\n"],"names":["scriptResponse","previewScript","INTERNAL_EVENTS","PUBLIC_EVENTS","PREVIEW_READY","STRAPI_UPDATE","STRAPI_SCRIPT"],"mappings":";;AAEA,MAAMA,iBAAiBC,aAAc,CAAA,KAAA,CAAA;AAErC;;;;AAIC,IACM,MAAMC,eAAkBF,GAAAA,cAAAA,CAAgBE;AAE/C;;;UAIaC,aAAgB,GAAA;IAC3BC,aAAe,EAAA,cAAA;IACfC,aAAe,EAAA,cAAA;IACfC,aAAe,EAAA;AACjB;;;;"}