@strapi/content-manager 0.0.0-next.e21fe90bf2ab9906267ea6e6ca620bdcc729906c → 0.0.0-next.e326c69a49373b420f6566c30aca26f4b6274c6a

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 (407) hide show
  1. package/dist/admin/components/ConfigurationForm/Fields.js +304 -205
  2. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  3. package/dist/admin/components/ConfigurationForm/Fields.mjs +309 -211
  4. package/dist/admin/components/ConfigurationForm/Fields.mjs.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/Form.js +1 -1
  6. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Form.mjs +3 -3
  8. package/dist/admin/components/ConfigurationForm/Form.mjs.map +1 -1
  9. package/dist/admin/components/DragPreviews/CardDragPreview.js +3 -1
  10. package/dist/admin/components/DragPreviews/CardDragPreview.js.map +1 -1
  11. package/dist/admin/components/DragPreviews/CardDragPreview.mjs +3 -1
  12. package/dist/admin/components/DragPreviews/CardDragPreview.mjs.map +1 -1
  13. package/dist/admin/components/DragPreviews/ComponentDragPreview.js +3 -1
  14. package/dist/admin/components/DragPreviews/ComponentDragPreview.js.map +1 -1
  15. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs +3 -1
  16. package/dist/admin/components/DragPreviews/ComponentDragPreview.mjs.map +1 -1
  17. package/dist/admin/components/DragPreviews/RelationDragPreview.js +3 -1
  18. package/dist/admin/components/DragPreviews/RelationDragPreview.js.map +1 -1
  19. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs +3 -1
  20. package/dist/admin/components/DragPreviews/RelationDragPreview.mjs.map +1 -1
  21. package/dist/admin/components/LeftMenu.js +92 -48
  22. package/dist/admin/components/LeftMenu.js.map +1 -1
  23. package/dist/admin/components/LeftMenu.mjs +95 -51
  24. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  25. package/dist/admin/components/Widgets.js +269 -9
  26. package/dist/admin/components/Widgets.js.map +1 -1
  27. package/dist/admin/components/Widgets.mjs +252 -12
  28. package/dist/admin/components/Widgets.mjs.map +1 -1
  29. package/dist/admin/history/components/VersionContent.js +24 -3
  30. package/dist/admin/history/components/VersionContent.js.map +1 -1
  31. package/dist/admin/history/components/VersionContent.mjs +25 -4
  32. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  33. package/dist/admin/history/components/VersionHeader.js +7 -0
  34. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  35. package/dist/admin/history/components/VersionHeader.mjs +8 -1
  36. package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
  37. package/dist/admin/history/components/VersionsList.js +1 -1
  38. package/dist/admin/history/components/VersionsList.js.map +1 -1
  39. package/dist/admin/history/components/VersionsList.mjs +1 -1
  40. package/dist/admin/history/components/VersionsList.mjs.map +1 -1
  41. package/dist/admin/history/pages/History.js +7 -7
  42. package/dist/admin/history/pages/History.js.map +1 -1
  43. package/dist/admin/history/pages/History.mjs +7 -7
  44. package/dist/admin/history/pages/History.mjs.map +1 -1
  45. package/dist/admin/hooks/useDocumentActions.js +12 -7
  46. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  47. package/dist/admin/hooks/useDocumentActions.mjs +13 -8
  48. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  49. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  50. package/dist/admin/hooks/useDocumentContext.mjs.map +1 -1
  51. package/dist/admin/index.js +48 -11
  52. package/dist/admin/index.js.map +1 -1
  53. package/dist/admin/index.mjs +47 -9
  54. package/dist/admin/index.mjs.map +1 -1
  55. package/dist/admin/layout.js +28 -33
  56. package/dist/admin/layout.js.map +1 -1
  57. package/dist/admin/layout.mjs +29 -15
  58. package/dist/admin/layout.mjs.map +1 -1
  59. package/dist/admin/pages/EditView/EditViewPage.js +98 -77
  60. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  61. package/dist/admin/pages/EditView/EditViewPage.mjs +100 -79
  62. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  63. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  64. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  65. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  66. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  67. package/dist/admin/pages/EditView/components/DocumentActions.js +304 -91
  68. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/DocumentActions.mjs +308 -95
  70. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +12 -15
  72. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +12 -15
  74. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +61 -26
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +63 -28
  78. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +21 -35
  80. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +21 -35
  82. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +46 -95
  84. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +48 -78
  86. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  88. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +17 -3
  92. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +18 -4
  94. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +1 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +1 -2
  98. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +20 -6
  100. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +22 -8
  102. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +129 -55
  104. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +129 -55
  106. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +126 -34
  108. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +130 -38
  110. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/UID.js +4 -2
  112. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs +4 -2
  114. package/dist/admin/pages/EditView/components/FormInputs/UID.mjs.map +1 -1
  115. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +1 -1
  116. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +1 -1
  118. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
  119. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +50 -97
  120. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
  121. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +51 -79
  122. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
  123. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +86 -118
  124. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  125. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +86 -118
  126. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  127. package/dist/admin/pages/EditView/components/FormLayout.js +59 -34
  128. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  129. package/dist/admin/pages/EditView/components/FormLayout.mjs +60 -34
  130. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  131. package/dist/admin/pages/EditView/components/Header.js +22 -7
  132. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  133. package/dist/admin/pages/EditView/components/Header.mjs +23 -8
  134. package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
  135. package/dist/admin/pages/EditView/components/InputRenderer.js +20 -7
  136. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  137. package/dist/admin/pages/EditView/components/InputRenderer.mjs +20 -7
  138. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  139. package/dist/admin/pages/EditView/utils/data.js +128 -0
  140. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  141. package/dist/admin/pages/EditView/utils/data.mjs +128 -1
  142. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  143. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +1 -0
  144. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  145. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs +1 -0
  146. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.mjs.map +1 -1
  147. package/dist/admin/pages/ListView/ListViewPage.js +227 -132
  148. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  149. package/dist/admin/pages/ListView/ListViewPage.mjs +229 -134
  150. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  151. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +2 -1
  152. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  153. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +2 -1
  154. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  155. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  156. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  157. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  158. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  159. package/dist/admin/pages/ListView/components/Filters.js +4 -1
  160. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  161. package/dist/admin/pages/ListView/components/Filters.mjs +4 -1
  162. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  163. package/dist/admin/pages/ListView/components/TableActions.js +13 -3
  164. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  165. package/dist/admin/pages/ListView/components/TableActions.mjs +13 -3
  166. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  167. package/dist/admin/preview/components/InputPopover.js +189 -0
  168. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  169. package/dist/admin/preview/components/InputPopover.mjs +167 -0
  170. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  171. package/dist/admin/preview/components/PreviewHeader.js +1 -2
  172. package/dist/admin/preview/components/PreviewHeader.js.map +1 -1
  173. package/dist/admin/preview/components/PreviewHeader.mjs +1 -2
  174. package/dist/admin/preview/components/PreviewHeader.mjs.map +1 -1
  175. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  176. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  177. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  178. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  179. package/dist/admin/preview/hooks/usePreviewInputManager.js +77 -0
  180. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  181. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +56 -0
  182. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  183. package/dist/admin/preview/pages/Preview.js +178 -74
  184. package/dist/admin/preview/pages/Preview.js.map +1 -1
  185. package/dist/admin/preview/pages/Preview.mjs +180 -76
  186. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  187. package/dist/admin/preview/utils/constants.js +56 -0
  188. package/dist/admin/preview/utils/constants.js.map +1 -0
  189. package/dist/admin/preview/utils/constants.mjs +52 -0
  190. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  191. package/dist/admin/preview/utils/fieldUtils.js +107 -0
  192. package/dist/admin/preview/utils/fieldUtils.js.map +1 -0
  193. package/dist/admin/preview/utils/fieldUtils.mjs +102 -0
  194. package/dist/admin/preview/utils/fieldUtils.mjs.map +1 -0
  195. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  196. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  197. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  198. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  199. package/dist/admin/preview/utils/previewScript.js +534 -0
  200. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  201. package/dist/admin/preview/utils/previewScript.mjs +532 -0
  202. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  203. package/dist/admin/services/api.js +4 -1
  204. package/dist/admin/services/api.js.map +1 -1
  205. package/dist/admin/services/api.mjs +4 -1
  206. package/dist/admin/services/api.mjs.map +1 -1
  207. package/dist/admin/services/documents.js +42 -16
  208. package/dist/admin/services/documents.js.map +1 -1
  209. package/dist/admin/services/documents.mjs +42 -16
  210. package/dist/admin/services/documents.mjs.map +1 -1
  211. package/dist/admin/services/homepage.js +9 -5
  212. package/dist/admin/services/homepage.js.map +1 -1
  213. package/dist/admin/services/homepage.mjs +9 -5
  214. package/dist/admin/services/homepage.mjs.map +1 -1
  215. package/dist/admin/src/components/ConfigurationForm/Fields.d.ts +6 -4
  216. package/dist/admin/src/components/LeftMenu.d.ts +3 -1
  217. package/dist/admin/src/components/Widgets.d.ts +2 -1
  218. package/dist/admin/src/exports.d.ts +1 -0
  219. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  220. package/dist/admin/src/hooks/useDocumentActions.d.ts +1 -0
  221. package/dist/admin/src/hooks/useDocumentContext.d.ts +1 -1
  222. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  223. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -2
  224. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +26 -5
  225. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +1 -0
  226. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +7 -11
  227. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  228. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  229. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  230. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +5 -0
  231. package/dist/admin/src/preview/pages/Preview.d.ts +12 -0
  232. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  233. package/dist/admin/src/preview/utils/constants.d.ts +55 -0
  234. package/dist/admin/src/preview/utils/fieldUtils.d.ts +22 -0
  235. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  236. package/dist/admin/src/preview/utils/previewScript.d.ts +24 -0
  237. package/dist/admin/src/services/api.d.ts +1 -1
  238. package/dist/admin/src/services/components.d.ts +2 -2
  239. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  240. package/dist/admin/src/services/documents.d.ts +23 -17
  241. package/dist/admin/src/services/homepage.d.ts +1 -1
  242. package/dist/admin/src/services/init.d.ts +1 -1
  243. package/dist/admin/src/services/relations.d.ts +2 -2
  244. package/dist/admin/src/services/uid.d.ts +3 -3
  245. package/dist/admin/src/utils/api.d.ts +1 -1
  246. package/dist/admin/src/utils/validation.d.ts +1 -0
  247. package/dist/admin/translations/en.json.js +15 -1
  248. package/dist/admin/translations/en.json.js.map +1 -1
  249. package/dist/admin/translations/en.json.mjs +15 -1
  250. package/dist/admin/translations/en.json.mjs.map +1 -1
  251. package/dist/admin/translations/es.json.js +6 -2
  252. package/dist/admin/translations/es.json.js.map +1 -1
  253. package/dist/admin/translations/es.json.mjs +6 -2
  254. package/dist/admin/translations/es.json.mjs.map +1 -1
  255. package/dist/admin/translations/fr.json.js +11 -2
  256. package/dist/admin/translations/fr.json.js.map +1 -1
  257. package/dist/admin/translations/fr.json.mjs +11 -2
  258. package/dist/admin/translations/fr.json.mjs.map +1 -1
  259. package/dist/admin/translations/ru.json.js +235 -226
  260. package/dist/admin/translations/ru.json.js.map +1 -1
  261. package/dist/admin/translations/ru.json.mjs +230 -226
  262. package/dist/admin/translations/ru.json.mjs.map +1 -1
  263. package/dist/admin/utils/api.js +1 -1
  264. package/dist/admin/utils/api.js.map +1 -1
  265. package/dist/admin/utils/api.mjs +1 -1
  266. package/dist/admin/utils/api.mjs.map +1 -1
  267. package/dist/admin/utils/validation.js +19 -7
  268. package/dist/admin/utils/validation.js.map +1 -1
  269. package/dist/admin/utils/validation.mjs +19 -7
  270. package/dist/admin/utils/validation.mjs.map +1 -1
  271. package/dist/server/controllers/content-types.js +11 -1
  272. package/dist/server/controllers/content-types.js.map +1 -1
  273. package/dist/server/controllers/content-types.mjs +11 -1
  274. package/dist/server/controllers/content-types.mjs.map +1 -1
  275. package/dist/server/controllers/index.js +3 -1
  276. package/dist/server/controllers/index.js.map +1 -1
  277. package/dist/server/controllers/index.mjs +3 -1
  278. package/dist/server/controllers/index.mjs.map +1 -1
  279. package/dist/server/controllers/relations.js +2 -2
  280. package/dist/server/controllers/relations.js.map +1 -1
  281. package/dist/server/controllers/relations.mjs +2 -2
  282. package/dist/server/controllers/relations.mjs.map +1 -1
  283. package/dist/server/controllers/validation/index.js +14 -2
  284. package/dist/server/controllers/validation/index.js.map +1 -1
  285. package/dist/server/controllers/validation/index.mjs +14 -2
  286. package/dist/server/controllers/validation/index.mjs.map +1 -1
  287. package/dist/server/history/services/lifecycles.js +23 -19
  288. package/dist/server/history/services/lifecycles.js.map +1 -1
  289. package/dist/server/history/services/lifecycles.mjs +23 -19
  290. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  291. package/dist/server/homepage/controllers/homepage.js +62 -0
  292. package/dist/server/homepage/controllers/homepage.js.map +1 -0
  293. package/dist/server/homepage/controllers/homepage.mjs +41 -0
  294. package/dist/server/homepage/controllers/homepage.mjs.map +1 -0
  295. package/dist/server/homepage/controllers/index.js +10 -0
  296. package/dist/server/homepage/controllers/index.js.map +1 -0
  297. package/dist/server/homepage/controllers/index.mjs +8 -0
  298. package/dist/server/homepage/controllers/index.mjs.map +1 -0
  299. package/dist/server/homepage/index.js +14 -0
  300. package/dist/server/homepage/index.js.map +1 -0
  301. package/dist/server/homepage/index.mjs +12 -0
  302. package/dist/server/homepage/index.mjs.map +1 -0
  303. package/dist/server/homepage/routes/homepage.js +36 -0
  304. package/dist/server/homepage/routes/homepage.js.map +1 -0
  305. package/dist/server/homepage/routes/homepage.mjs +34 -0
  306. package/dist/server/homepage/routes/homepage.mjs.map +1 -0
  307. package/dist/server/homepage/routes/index.js +13 -0
  308. package/dist/server/homepage/routes/index.js.map +1 -0
  309. package/dist/server/homepage/routes/index.mjs +11 -0
  310. package/dist/server/homepage/routes/index.mjs.map +1 -0
  311. package/dist/server/homepage/services/homepage.js +197 -0
  312. package/dist/server/homepage/services/homepage.js.map +1 -0
  313. package/dist/server/homepage/services/homepage.mjs +195 -0
  314. package/dist/server/homepage/services/homepage.mjs.map +1 -0
  315. package/dist/server/homepage/services/index.js +10 -0
  316. package/dist/server/homepage/services/index.js.map +1 -0
  317. package/dist/server/homepage/services/index.mjs +8 -0
  318. package/dist/server/homepage/services/index.mjs.map +1 -0
  319. package/dist/server/preview/services/preview-config.js +5 -1
  320. package/dist/server/preview/services/preview-config.js.map +1 -1
  321. package/dist/server/preview/services/preview-config.mjs +5 -1
  322. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  323. package/dist/server/preview/services/preview.js +4 -1
  324. package/dist/server/preview/services/preview.js.map +1 -1
  325. package/dist/server/preview/services/preview.mjs +4 -1
  326. package/dist/server/preview/services/preview.mjs.map +1 -1
  327. package/dist/server/routes/index.js +3 -1
  328. package/dist/server/routes/index.js.map +1 -1
  329. package/dist/server/routes/index.mjs +3 -1
  330. package/dist/server/routes/index.mjs.map +1 -1
  331. package/dist/server/services/data-mapper.js +4 -1
  332. package/dist/server/services/data-mapper.js.map +1 -1
  333. package/dist/server/services/data-mapper.mjs +4 -1
  334. package/dist/server/services/data-mapper.mjs.map +1 -1
  335. package/dist/server/services/document-manager.js +8 -1
  336. package/dist/server/services/document-manager.js.map +1 -1
  337. package/dist/server/services/document-manager.mjs +8 -1
  338. package/dist/server/services/document-manager.mjs.map +1 -1
  339. package/dist/server/services/document-metadata.js +3 -1
  340. package/dist/server/services/document-metadata.js.map +1 -1
  341. package/dist/server/services/document-metadata.mjs +3 -1
  342. package/dist/server/services/document-metadata.mjs.map +1 -1
  343. package/dist/server/services/index.js +3 -1
  344. package/dist/server/services/index.js.map +1 -1
  345. package/dist/server/services/index.mjs +3 -1
  346. package/dist/server/services/index.mjs.map +1 -1
  347. package/dist/server/services/utils/configuration/attributes.js +1 -1
  348. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  349. package/dist/server/services/utils/configuration/attributes.mjs +1 -1
  350. package/dist/server/services/utils/configuration/attributes.mjs.map +1 -1
  351. package/dist/server/services/utils/configuration/layouts.js +1 -1
  352. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  353. package/dist/server/services/utils/configuration/layouts.mjs +1 -1
  354. package/dist/server/services/utils/configuration/layouts.mjs.map +1 -1
  355. package/dist/server/services/utils/configuration/metadatas.js +8 -0
  356. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  357. package/dist/server/services/utils/configuration/metadatas.mjs +8 -0
  358. package/dist/server/services/utils/configuration/metadatas.mjs.map +1 -1
  359. package/dist/server/services/utils/populate.js +11 -0
  360. package/dist/server/services/utils/populate.js.map +1 -1
  361. package/dist/server/services/utils/populate.mjs +11 -0
  362. package/dist/server/services/utils/populate.mjs.map +1 -1
  363. package/dist/server/src/controllers/content-types.d.ts.map +1 -1
  364. package/dist/server/src/controllers/index.d.ts.map +1 -1
  365. package/dist/server/src/controllers/validation/index.d.ts +6 -1
  366. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  367. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  368. package/dist/server/src/homepage/controllers/homepage.d.ts +8 -0
  369. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -0
  370. package/dist/server/src/homepage/controllers/index.d.ts +2 -0
  371. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -0
  372. package/dist/server/src/homepage/index.d.ts +23 -0
  373. package/dist/server/src/homepage/index.d.ts.map +1 -0
  374. package/dist/server/src/homepage/routes/homepage.d.ts +4 -0
  375. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -0
  376. package/dist/server/src/homepage/routes/index.d.ts +8 -0
  377. package/dist/server/src/homepage/routes/index.d.ts.map +1 -0
  378. package/dist/server/src/homepage/services/homepage.d.ts +14 -0
  379. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -0
  380. package/dist/server/src/homepage/services/index.d.ts +16 -0
  381. package/dist/server/src/homepage/services/index.d.ts.map +1 -0
  382. package/dist/server/src/index.d.ts +15 -0
  383. package/dist/server/src/index.d.ts.map +1 -1
  384. package/dist/server/src/preview/services/index.d.ts +1 -0
  385. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  386. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  387. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  388. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  389. package/dist/server/src/preview/utils.d.ts +1 -0
  390. package/dist/server/src/preview/utils.d.ts.map +1 -1
  391. package/dist/server/src/routes/index.d.ts +1 -0
  392. package/dist/server/src/routes/index.d.ts.map +1 -1
  393. package/dist/server/src/services/data-mapper.d.ts +1 -0
  394. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  395. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  396. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  397. package/dist/server/src/services/index.d.ts +14 -0
  398. package/dist/server/src/services/index.d.ts.map +1 -1
  399. package/dist/server/src/services/utils/configuration/metadatas.d.ts.map +1 -1
  400. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  401. package/dist/shared/contracts/collection-types.d.ts +0 -1
  402. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  403. package/dist/shared/contracts/homepage.d.ts +13 -0
  404. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  405. package/package.json +11 -9
  406. package/dist/server/src/services/homepage.d.ts +0 -11
  407. package/dist/server/src/services/homepage.d.ts.map +0 -1
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ // Generic error class for preview field operations
4
+ class PreviewFieldError extends Error {
5
+ constructor(messageKey){
6
+ super(messageKey);
7
+ this.name = 'PreviewFieldError';
8
+ this.messageKey = messageKey;
9
+ }
10
+ }
11
+ // Helper function to parse path with array indices and return clean attribute names
12
+ const parsePathWithIndices = (path)=>{
13
+ // Split by dots, then parse array indices from each part. For example:
14
+ // input "components.4.field.relations.2.name"
15
+ // output [{name: "components", index: 4}, {name: "field"}, {name: "relations", index: 2}, {name: "name"}]
16
+ return path.split('.').map((part)=>{
17
+ const numericIndex = parseInt(part, 10);
18
+ if (!isNaN(numericIndex) && part === numericIndex.toString()) {
19
+ // This part is a pure numeric index, return it as an index for the previous part
20
+ return {
21
+ name: '',
22
+ index: numericIndex
23
+ };
24
+ }
25
+ return {
26
+ name: part
27
+ };
28
+ }).reduce((acc, part)=>{
29
+ if (part.name === '' && part.index !== undefined) {
30
+ // This is an index, attach it to the previous part
31
+ if (acc.length > 0) {
32
+ acc[acc.length - 1].index = part.index;
33
+ }
34
+ } else {
35
+ acc.push(part);
36
+ }
37
+ return acc;
38
+ }, []);
39
+ };
40
+ function getAttributeSchemaFromPath({ path, schema, components, document }) {
41
+ /**
42
+ * Create the function that will be recursively called.
43
+ * We don't do recursion on getAttributeSchemaFromPath itself because:
44
+ * - it takes a path string, not the parsed array that's better for recursion
45
+ * - even when several levels deep, we still need access to the root schema and components
46
+ */ const visitor = (currentPathParts, currentAttributes, currentData)=>{
47
+ const [currentPart, ...remainingParts] = currentPathParts;
48
+ // Get the data and schema for the current path
49
+ const currentAttribute = currentAttributes[currentPart.name];
50
+ if (!currentAttribute) {
51
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
52
+ }
53
+ if (currentAttribute.type === 'relation') {
54
+ throw new PreviewFieldError('RELATIONS_NOT_HANDLED');
55
+ }
56
+ if (currentAttribute.type === 'component') {
57
+ const componentAttributes = components[currentAttribute.component].attributes;
58
+ if (currentAttribute.repeatable) {
59
+ // We must have the index, otherwise we don't know what data to use
60
+ if (currentPart.index === undefined) {
61
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
62
+ }
63
+ return visitor(remainingParts, componentAttributes, currentData[currentPart.name][currentPart.index]);
64
+ }
65
+ // Non repeatable component
66
+ return visitor(remainingParts, componentAttributes, currentData[currentPart.name]);
67
+ }
68
+ if (currentAttribute.type === 'dynamiczone') {
69
+ // We must have the index, otherwise we don't know what component we're dealing with
70
+ if (currentPart.index === undefined) {
71
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
72
+ }
73
+ const componentData = currentData[currentPart.name][currentPart.index];
74
+ const componentAttributes = components[componentData.__component].attributes;
75
+ return visitor(remainingParts, componentAttributes, componentData);
76
+ }
77
+ // Plain regular field. It ends the recursion
78
+ return currentAttributes[currentPart.name];
79
+ };
80
+ return visitor(parsePathWithIndices(path), schema.attributes, document);
81
+ }
82
+ function parseFieldMetaData(strapiSource) {
83
+ const searchParams = new URLSearchParams(strapiSource);
84
+ const path = searchParams.get('path');
85
+ const type = searchParams.get('type');
86
+ const documentId = searchParams.get('documentId');
87
+ const locale = searchParams.get('locale');
88
+ const model = searchParams.get('model');
89
+ const kind = searchParams.get('kind');
90
+ if (!path || !type || !documentId || !model) {
91
+ return null;
92
+ }
93
+ return {
94
+ path,
95
+ type: type,
96
+ documentId,
97
+ locale: locale ?? null,
98
+ model: model,
99
+ kind: kind ? kind : undefined
100
+ };
101
+ }
102
+
103
+ exports.PreviewFieldError = PreviewFieldError;
104
+ exports.getAttributeSchemaFromPath = getAttributeSchemaFromPath;
105
+ exports.parseFieldMetaData = parseFieldMetaData;
106
+ exports.parsePathWithIndices = parsePathWithIndices;
107
+ //# sourceMappingURL=fieldUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldUtils.js","sources":["../../../../admin/src/preview/utils/fieldUtils.ts"],"sourcesContent":["import { type FieldContentSourceMap } from '@strapi/admin/strapi-admin';\n\nimport type { PREVIEW_ERROR_MESSAGES } from './constants';\nimport type { PreviewContextValue } from '../pages/Preview';\nimport type { Modules, Schema, Struct, UID } from '@strapi/types';\n\ntype PreviewErrorMessage = keyof typeof PREVIEW_ERROR_MESSAGES;\n\n// Generic error class for preview field operations\nexport class PreviewFieldError extends Error {\n public readonly messageKey: PreviewErrorMessage;\n\n constructor(messageKey: PreviewErrorMessage) {\n super(messageKey);\n this.name = 'PreviewFieldError';\n this.messageKey = messageKey;\n }\n}\n\ntype PathPart = { name: string; index?: number };\n\n// Helper function to parse path with array indices and return clean attribute names\nexport const parsePathWithIndices = (path: string): PathPart[] => {\n // Split by dots, then parse array indices from each part. For example:\n // input \"components.4.field.relations.2.name\"\n // output [{name: \"components\", index: 4}, {name: \"field\"}, {name: \"relations\", index: 2}, {name: \"name\"}]\n return path\n .split('.')\n .map((part) => {\n const numericIndex = parseInt(part, 10);\n if (!isNaN(numericIndex) && part === numericIndex.toString()) {\n // This part is a pure numeric index, return it as an index for the previous part\n return { name: '', index: numericIndex };\n }\n return { name: part };\n })\n .reduce((acc: PathPart[], part) => {\n if (part.name === '' && part.index !== undefined) {\n // This is an index, attach it to the previous part\n if (acc.length > 0) {\n acc[acc.length - 1].index = part.index;\n }\n } else {\n acc.push(part);\n }\n return acc;\n }, []);\n};\n\nexport function getAttributeSchemaFromPath({\n path,\n schema,\n components,\n document,\n}: {\n path: string;\n schema: PreviewContextValue['schema'] | PreviewContextValue['components'][string];\n components: PreviewContextValue['components'];\n document: Modules.Documents.AnyDocument;\n}): Schema.Attribute.AnyAttribute {\n /**\n * Create the function that will be recursively called.\n * We don't do recursion on getAttributeSchemaFromPath itself because:\n * - it takes a path string, not the parsed array that's better for recursion\n * - even when several levels deep, we still need access to the root schema and components\n */\n const visitor = (\n currentPathParts: PathPart[],\n currentAttributes: Schema.Attributes,\n currentData: any\n ): Schema.Attribute.AnyAttribute => {\n const [currentPart, ...remainingParts] = currentPathParts;\n\n // Get the data and schema for the current path\n const currentAttribute = currentAttributes[currentPart.name];\n\n if (!currentAttribute) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n\n if (currentAttribute.type === 'relation') {\n throw new PreviewFieldError('RELATIONS_NOT_HANDLED');\n }\n\n if (currentAttribute.type === 'component') {\n const componentAttributes = components[currentAttribute.component].attributes;\n if (currentAttribute.repeatable) {\n // We must have the index, otherwise we don't know what data to use\n if (currentPart.index === undefined) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n return visitor(\n remainingParts,\n componentAttributes,\n currentData[currentPart.name][currentPart.index]\n );\n }\n\n // Non repeatable component\n return visitor(remainingParts, componentAttributes, currentData[currentPart.name]);\n }\n\n if (currentAttribute.type === 'dynamiczone') {\n // We must have the index, otherwise we don't know what component we're dealing with\n if (currentPart.index === undefined) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n\n const componentData = currentData[currentPart.name][currentPart.index];\n const componentAttributes = components[componentData.__component].attributes;\n return visitor(remainingParts, componentAttributes, componentData);\n }\n\n // Plain regular field. It ends the recursion\n return currentAttributes[currentPart.name];\n };\n\n return visitor(parsePathWithIndices(path), schema.attributes, document);\n}\n\nexport function parseFieldMetaData(strapiSource: string): FieldContentSourceMap | null {\n const searchParams = new URLSearchParams(strapiSource);\n const path = searchParams.get('path');\n const type = searchParams.get('type');\n const documentId = searchParams.get('documentId');\n const locale = searchParams.get('locale');\n const model = searchParams.get('model');\n const kind = searchParams.get('kind');\n\n if (!path || !type || !documentId || !model) {\n return null;\n }\n\n return {\n path,\n type: type as Schema.Attribute.AnyAttribute['type'],\n documentId,\n locale: locale ?? null,\n model: model as UID.Schema | undefined,\n kind: kind ? (kind as Struct.ContentTypeKind) : undefined,\n };\n}\n"],"names":["PreviewFieldError","Error","constructor","messageKey","name","parsePathWithIndices","path","split","map","part","numericIndex","parseInt","isNaN","toString","index","reduce","acc","undefined","length","push","getAttributeSchemaFromPath","schema","components","document","visitor","currentPathParts","currentAttributes","currentData","currentPart","remainingParts","currentAttribute","type","componentAttributes","component","attributes","repeatable","componentData","__component","parseFieldMetaData","strapiSource","searchParams","URLSearchParams","get","documentId","locale","model","kind"],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ // Generic error class for preview field operations
2
+ class PreviewFieldError extends Error {
3
+ constructor(messageKey){
4
+ super(messageKey);
5
+ this.name = 'PreviewFieldError';
6
+ this.messageKey = messageKey;
7
+ }
8
+ }
9
+ // Helper function to parse path with array indices and return clean attribute names
10
+ const parsePathWithIndices = (path)=>{
11
+ // Split by dots, then parse array indices from each part. For example:
12
+ // input "components.4.field.relations.2.name"
13
+ // output [{name: "components", index: 4}, {name: "field"}, {name: "relations", index: 2}, {name: "name"}]
14
+ return path.split('.').map((part)=>{
15
+ const numericIndex = parseInt(part, 10);
16
+ if (!isNaN(numericIndex) && part === numericIndex.toString()) {
17
+ // This part is a pure numeric index, return it as an index for the previous part
18
+ return {
19
+ name: '',
20
+ index: numericIndex
21
+ };
22
+ }
23
+ return {
24
+ name: part
25
+ };
26
+ }).reduce((acc, part)=>{
27
+ if (part.name === '' && part.index !== undefined) {
28
+ // This is an index, attach it to the previous part
29
+ if (acc.length > 0) {
30
+ acc[acc.length - 1].index = part.index;
31
+ }
32
+ } else {
33
+ acc.push(part);
34
+ }
35
+ return acc;
36
+ }, []);
37
+ };
38
+ function getAttributeSchemaFromPath({ path, schema, components, document }) {
39
+ /**
40
+ * Create the function that will be recursively called.
41
+ * We don't do recursion on getAttributeSchemaFromPath itself because:
42
+ * - it takes a path string, not the parsed array that's better for recursion
43
+ * - even when several levels deep, we still need access to the root schema and components
44
+ */ const visitor = (currentPathParts, currentAttributes, currentData)=>{
45
+ const [currentPart, ...remainingParts] = currentPathParts;
46
+ // Get the data and schema for the current path
47
+ const currentAttribute = currentAttributes[currentPart.name];
48
+ if (!currentAttribute) {
49
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
50
+ }
51
+ if (currentAttribute.type === 'relation') {
52
+ throw new PreviewFieldError('RELATIONS_NOT_HANDLED');
53
+ }
54
+ if (currentAttribute.type === 'component') {
55
+ const componentAttributes = components[currentAttribute.component].attributes;
56
+ if (currentAttribute.repeatable) {
57
+ // We must have the index, otherwise we don't know what data to use
58
+ if (currentPart.index === undefined) {
59
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
60
+ }
61
+ return visitor(remainingParts, componentAttributes, currentData[currentPart.name][currentPart.index]);
62
+ }
63
+ // Non repeatable component
64
+ return visitor(remainingParts, componentAttributes, currentData[currentPart.name]);
65
+ }
66
+ if (currentAttribute.type === 'dynamiczone') {
67
+ // We must have the index, otherwise we don't know what component we're dealing with
68
+ if (currentPart.index === undefined) {
69
+ throw new PreviewFieldError('INVALID_FIELD_PATH');
70
+ }
71
+ const componentData = currentData[currentPart.name][currentPart.index];
72
+ const componentAttributes = components[componentData.__component].attributes;
73
+ return visitor(remainingParts, componentAttributes, componentData);
74
+ }
75
+ // Plain regular field. It ends the recursion
76
+ return currentAttributes[currentPart.name];
77
+ };
78
+ return visitor(parsePathWithIndices(path), schema.attributes, document);
79
+ }
80
+ function parseFieldMetaData(strapiSource) {
81
+ const searchParams = new URLSearchParams(strapiSource);
82
+ const path = searchParams.get('path');
83
+ const type = searchParams.get('type');
84
+ const documentId = searchParams.get('documentId');
85
+ const locale = searchParams.get('locale');
86
+ const model = searchParams.get('model');
87
+ const kind = searchParams.get('kind');
88
+ if (!path || !type || !documentId || !model) {
89
+ return null;
90
+ }
91
+ return {
92
+ path,
93
+ type: type,
94
+ documentId,
95
+ locale: locale ?? null,
96
+ model: model,
97
+ kind: kind ? kind : undefined
98
+ };
99
+ }
100
+
101
+ export { PreviewFieldError, getAttributeSchemaFromPath, parseFieldMetaData, parsePathWithIndices };
102
+ //# sourceMappingURL=fieldUtils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldUtils.mjs","sources":["../../../../admin/src/preview/utils/fieldUtils.ts"],"sourcesContent":["import { type FieldContentSourceMap } from '@strapi/admin/strapi-admin';\n\nimport type { PREVIEW_ERROR_MESSAGES } from './constants';\nimport type { PreviewContextValue } from '../pages/Preview';\nimport type { Modules, Schema, Struct, UID } from '@strapi/types';\n\ntype PreviewErrorMessage = keyof typeof PREVIEW_ERROR_MESSAGES;\n\n// Generic error class for preview field operations\nexport class PreviewFieldError extends Error {\n public readonly messageKey: PreviewErrorMessage;\n\n constructor(messageKey: PreviewErrorMessage) {\n super(messageKey);\n this.name = 'PreviewFieldError';\n this.messageKey = messageKey;\n }\n}\n\ntype PathPart = { name: string; index?: number };\n\n// Helper function to parse path with array indices and return clean attribute names\nexport const parsePathWithIndices = (path: string): PathPart[] => {\n // Split by dots, then parse array indices from each part. For example:\n // input \"components.4.field.relations.2.name\"\n // output [{name: \"components\", index: 4}, {name: \"field\"}, {name: \"relations\", index: 2}, {name: \"name\"}]\n return path\n .split('.')\n .map((part) => {\n const numericIndex = parseInt(part, 10);\n if (!isNaN(numericIndex) && part === numericIndex.toString()) {\n // This part is a pure numeric index, return it as an index for the previous part\n return { name: '', index: numericIndex };\n }\n return { name: part };\n })\n .reduce((acc: PathPart[], part) => {\n if (part.name === '' && part.index !== undefined) {\n // This is an index, attach it to the previous part\n if (acc.length > 0) {\n acc[acc.length - 1].index = part.index;\n }\n } else {\n acc.push(part);\n }\n return acc;\n }, []);\n};\n\nexport function getAttributeSchemaFromPath({\n path,\n schema,\n components,\n document,\n}: {\n path: string;\n schema: PreviewContextValue['schema'] | PreviewContextValue['components'][string];\n components: PreviewContextValue['components'];\n document: Modules.Documents.AnyDocument;\n}): Schema.Attribute.AnyAttribute {\n /**\n * Create the function that will be recursively called.\n * We don't do recursion on getAttributeSchemaFromPath itself because:\n * - it takes a path string, not the parsed array that's better for recursion\n * - even when several levels deep, we still need access to the root schema and components\n */\n const visitor = (\n currentPathParts: PathPart[],\n currentAttributes: Schema.Attributes,\n currentData: any\n ): Schema.Attribute.AnyAttribute => {\n const [currentPart, ...remainingParts] = currentPathParts;\n\n // Get the data and schema for the current path\n const currentAttribute = currentAttributes[currentPart.name];\n\n if (!currentAttribute) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n\n if (currentAttribute.type === 'relation') {\n throw new PreviewFieldError('RELATIONS_NOT_HANDLED');\n }\n\n if (currentAttribute.type === 'component') {\n const componentAttributes = components[currentAttribute.component].attributes;\n if (currentAttribute.repeatable) {\n // We must have the index, otherwise we don't know what data to use\n if (currentPart.index === undefined) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n return visitor(\n remainingParts,\n componentAttributes,\n currentData[currentPart.name][currentPart.index]\n );\n }\n\n // Non repeatable component\n return visitor(remainingParts, componentAttributes, currentData[currentPart.name]);\n }\n\n if (currentAttribute.type === 'dynamiczone') {\n // We must have the index, otherwise we don't know what component we're dealing with\n if (currentPart.index === undefined) {\n throw new PreviewFieldError('INVALID_FIELD_PATH');\n }\n\n const componentData = currentData[currentPart.name][currentPart.index];\n const componentAttributes = components[componentData.__component].attributes;\n return visitor(remainingParts, componentAttributes, componentData);\n }\n\n // Plain regular field. It ends the recursion\n return currentAttributes[currentPart.name];\n };\n\n return visitor(parsePathWithIndices(path), schema.attributes, document);\n}\n\nexport function parseFieldMetaData(strapiSource: string): FieldContentSourceMap | null {\n const searchParams = new URLSearchParams(strapiSource);\n const path = searchParams.get('path');\n const type = searchParams.get('type');\n const documentId = searchParams.get('documentId');\n const locale = searchParams.get('locale');\n const model = searchParams.get('model');\n const kind = searchParams.get('kind');\n\n if (!path || !type || !documentId || !model) {\n return null;\n }\n\n return {\n path,\n type: type as Schema.Attribute.AnyAttribute['type'],\n documentId,\n locale: locale ?? null,\n model: model as UID.Schema | undefined,\n kind: kind ? (kind as Struct.ContentTypeKind) : undefined,\n };\n}\n"],"names":["PreviewFieldError","Error","constructor","messageKey","name","parsePathWithIndices","path","split","map","part","numericIndex","parseInt","isNaN","toString","index","reduce","acc","undefined","length","push","getAttributeSchemaFromPath","schema","components","document","visitor","currentPathParts","currentAttributes","currentData","currentPart","remainingParts","currentAttribute","type","componentAttributes","component","attributes","repeatable","componentData","__component","parseFieldMetaData","strapiSource","searchParams","URLSearchParams","get","documentId","locale","model","kind"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * A function factory so we can generate a new sendMessage everytime we need one.
5
+ * We can't store and reuse a single sendMessage because it needs to have a stable identity
6
+ * as it used in a useEffect function. And we can't rely on useCallback because we need the
7
+ * up-to-date iframe ref, and this would make it stale (refs don't trigger callback reevaluations).
8
+ */ function getSendMessage(iframe) {
9
+ return (type, payload)=>{
10
+ if (!iframe?.current) return;
11
+ const { origin } = new URL(iframe.current.src);
12
+ iframe.current.contentWindow?.postMessage({
13
+ type,
14
+ ...payload !== undefined && {
15
+ payload
16
+ }
17
+ }, origin);
18
+ };
19
+ }
20
+
21
+ exports.getSendMessage = getSendMessage;
22
+ //# sourceMappingURL=getSendMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSendMessage.js","sources":["../../../../admin/src/preview/utils/getSendMessage.ts"],"sourcesContent":["import type { INTERNAL_EVENTS, PUBLIC_EVENTS } from './constants';\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 */\nexport function getSendMessage(iframe: React.RefObject<HTMLIFrameElement> | undefined) {\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"],"names":["getSendMessage","iframe","type","payload","current","origin","URL","src","contentWindow","postMessage","undefined"],"mappings":";;AAMA;;;;;IAMO,SAASA,cAAAA,CAAeC,MAAsD,EAAA;AACnF,IAAA,OAAO,CAACC,IAAmBC,EAAAA,OAAAA,GAAAA;QACzB,IAAI,CAACF,QAAQG,OAAS,EAAA;QAEtB,MAAM,EAAEC,MAAM,EAAE,GAAG,IAAIC,GAAIL,CAAAA,MAAAA,CAAOG,OAAO,CAACG,GAAG,CAAA;AAE7CN,QAAAA,MAAAA,CAAOG,OAAO,CAACI,aAAa,EAAEC,WAC5B,CAAA;AACEP,YAAAA,IAAAA;AACA,YAAA,GAAIC,YAAYO,SAAa,IAAA;AAAEP,gBAAAA;;SAEjCE,EAAAA,MAAAA,CAAAA;AAEJ,KAAA;AACF;;;;"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * A function factory so we can generate a new sendMessage everytime we need one.
3
+ * We can't store and reuse a single sendMessage because it needs to have a stable identity
4
+ * as it used in a useEffect function. And we can't rely on useCallback because we need the
5
+ * up-to-date iframe ref, and this would make it stale (refs don't trigger callback reevaluations).
6
+ */ function getSendMessage(iframe) {
7
+ return (type, payload)=>{
8
+ if (!iframe?.current) return;
9
+ const { origin } = new URL(iframe.current.src);
10
+ iframe.current.contentWindow?.postMessage({
11
+ type,
12
+ ...payload !== undefined && {
13
+ payload
14
+ }
15
+ }, origin);
16
+ };
17
+ }
18
+
19
+ export { getSendMessage };
20
+ //# sourceMappingURL=getSendMessage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSendMessage.mjs","sources":["../../../../admin/src/preview/utils/getSendMessage.ts"],"sourcesContent":["import type { INTERNAL_EVENTS, PUBLIC_EVENTS } from './constants';\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 */\nexport function getSendMessage(iframe: React.RefObject<HTMLIFrameElement> | undefined) {\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"],"names":["getSendMessage","iframe","type","payload","current","origin","URL","src","contentWindow","postMessage","undefined"],"mappings":"AAMA;;;;;IAMO,SAASA,cAAAA,CAAeC,MAAsD,EAAA;AACnF,IAAA,OAAO,CAACC,IAAmBC,EAAAA,OAAAA,GAAAA;QACzB,IAAI,CAACF,QAAQG,OAAS,EAAA;QAEtB,MAAM,EAAEC,MAAM,EAAE,GAAG,IAAIC,GAAIL,CAAAA,MAAAA,CAAOG,OAAO,CAACG,GAAG,CAAA;AAE7CN,QAAAA,MAAAA,CAAOG,OAAO,CAACI,aAAa,EAAEC,WAC5B,CAAA;AACEP,YAAAA,IAAAA;AACA,YAAA,GAAIC,YAAYO,SAAa,IAAA;AAAEP,gBAAAA;;SAEjCE,EAAAA,MAAAA,CAAAA;AAEJ,KAAA;AACF;;;;"}