@strapi/content-manager 5.48.1 → 5.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/dist/admin/components/ActionsDrawer.js +3 -2
  2. package/dist/admin/components/ActionsDrawer.js.map +1 -1
  3. package/dist/admin/components/ComponentIcon.js +4 -3
  4. package/dist/admin/components/ComponentIcon.js.map +1 -1
  5. package/dist/admin/components/ConfigurationForm/EditFieldForm.js +3 -2
  6. package/dist/admin/components/ConfigurationForm/EditFieldForm.js.map +1 -1
  7. package/dist/admin/components/ConfigurationForm/Fields.js +3 -2
  8. package/dist/admin/components/ConfigurationForm/Fields.js.map +1 -1
  9. package/dist/admin/components/ConfigurationForm/Form.js +7 -3
  10. package/dist/admin/components/ConfigurationForm/Form.js.map +1 -1
  11. package/dist/admin/components/LeftMenu.js +3 -2
  12. package/dist/admin/components/LeftMenu.js.map +1 -1
  13. package/dist/admin/components/RelativeTime.js +3 -2
  14. package/dist/admin/components/RelativeTime.js.map +1 -1
  15. package/dist/admin/components/Widgets.js +3 -2
  16. package/dist/admin/components/Widgets.js.map +1 -1
  17. package/dist/admin/features/DocumentRBAC.js +3 -2
  18. package/dist/admin/features/DocumentRBAC.js.map +1 -1
  19. package/dist/admin/history/components/VersionContent.js +7 -3
  20. package/dist/admin/history/components/VersionContent.js.map +1 -1
  21. package/dist/admin/history/components/VersionHeader.js +3 -2
  22. package/dist/admin/history/components/VersionHeader.js.map +1 -1
  23. package/dist/admin/history/components/VersionInputRenderer.js +3 -2
  24. package/dist/admin/history/components/VersionInputRenderer.js.map +1 -1
  25. package/dist/admin/history/pages/History.js +3 -2
  26. package/dist/admin/history/pages/History.js.map +1 -1
  27. package/dist/admin/history/routes.js +3 -2
  28. package/dist/admin/history/routes.js.map +1 -1
  29. package/dist/admin/hooks/useContentTypeSchema.js +3 -2
  30. package/dist/admin/hooks/useContentTypeSchema.js.map +1 -1
  31. package/dist/admin/hooks/useDocument.js +3 -2
  32. package/dist/admin/hooks/useDocument.js.map +1 -1
  33. package/dist/admin/hooks/useDocumentActions.js +3 -2
  34. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  35. package/dist/admin/hooks/useDocumentContext.js +3 -2
  36. package/dist/admin/hooks/useDocumentContext.js.map +1 -1
  37. package/dist/admin/hooks/useDocumentLayout.js +3 -2
  38. package/dist/admin/hooks/useDocumentLayout.js.map +1 -1
  39. package/dist/admin/hooks/useDragAndDrop.js +3 -2
  40. package/dist/admin/hooks/useDragAndDrop.js.map +1 -1
  41. package/dist/admin/hooks/useKeyboardDragAndDrop.js +3 -2
  42. package/dist/admin/hooks/useKeyboardDragAndDrop.js.map +1 -1
  43. package/dist/admin/hooks/useOnce.js +3 -2
  44. package/dist/admin/hooks/useOnce.js.map +1 -1
  45. package/dist/admin/hooks/usePersistentQueryParams.js +7 -2
  46. package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -1
  47. package/dist/admin/layout.js +3 -1
  48. package/dist/admin/layout.js.map +1 -1
  49. package/dist/admin/layout.mjs +5 -3
  50. package/dist/admin/layout.mjs.map +1 -1
  51. package/dist/admin/pages/ComponentConfigurationPage.js +3 -2
  52. package/dist/admin/pages/ComponentConfigurationPage.js.map +1 -1
  53. package/dist/admin/pages/EditConfigurationPage.js +3 -2
  54. package/dist/admin/pages/EditConfigurationPage.js.map +1 -1
  55. package/dist/admin/pages/EditView/EditViewPage.js +3 -2
  56. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  57. package/dist/admin/pages/EditView/components/DocumentActions.js +238 -108
  58. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  59. package/dist/admin/pages/EditView/components/DocumentActions.mjs +225 -103
  60. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  61. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +3 -2
  62. package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
  63. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js +4 -3
  64. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Code.js.map +1 -1
  65. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js +3 -2
  66. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Image.js.map +1 -1
  67. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +3 -2
  68. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
  69. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +3 -2
  70. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
  71. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +3 -2
  72. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
  73. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +3 -2
  74. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
  75. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -3
  76. package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
  77. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js +3 -2
  78. package/dist/admin/pages/EditView/components/FormInputs/Component/Input.js.map +1 -1
  79. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +3 -2
  80. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  81. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +3 -2
  82. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  83. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +6 -1
  84. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
  85. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +2 -1
  86. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
  87. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +9 -4
  88. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  89. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +3 -2
  90. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  91. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +13 -4
  92. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
  93. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +6 -1
  94. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
  95. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +3 -2
  96. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  97. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +7 -3
  98. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  99. package/dist/admin/pages/EditView/components/FormInputs/UID.js +3 -2
  100. package/dist/admin/pages/EditView/components/FormInputs/UID.js.map +1 -1
  101. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +8 -4
  102. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
  103. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +3 -2
  104. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
  105. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +3 -2
  106. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
  107. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js +5 -1
  108. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/continueList.js.map +1 -1
  109. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js +15 -2
  110. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/mdRenderer.js.map +1 -1
  111. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js +5 -1
  112. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/utils/sanitizer.js.map +1 -1
  113. package/dist/admin/pages/EditView/components/FormLayout.js +3 -2
  114. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  115. package/dist/admin/pages/EditView/components/Header.js +3 -2
  116. package/dist/admin/pages/EditView/components/Header.js.map +1 -1
  117. package/dist/admin/pages/EditView/components/InputRenderer.js +3 -2
  118. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  119. package/dist/admin/pages/EditView/components/Panels.js +3 -2
  120. package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
  121. package/dist/admin/pages/EditView/utils/data.js +5 -1
  122. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  123. package/dist/admin/pages/EditView/utils/draftRelationCounts.js +117 -0
  124. package/dist/admin/pages/EditView/utils/draftRelationCounts.js.map +1 -0
  125. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs +109 -0
  126. package/dist/admin/pages/EditView/utils/draftRelationCounts.mjs.map +1 -0
  127. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js +35 -0
  128. package/dist/admin/pages/EditView/utils/keyboardShortcuts.js.map +1 -0
  129. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs +33 -0
  130. package/dist/admin/pages/EditView/utils/keyboardShortcuts.mjs.map +1 -0
  131. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js +3 -2
  132. package/dist/admin/pages/ListConfiguration/ListConfigurationPage.js.map +1 -1
  133. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js +3 -2
  134. package/dist/admin/pages/ListConfiguration/components/DraggableCard.js.map +1 -1
  135. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js +3 -2
  136. package/dist/admin/pages/ListConfiguration/components/EditFieldForm.js.map +1 -1
  137. package/dist/admin/pages/ListConfiguration/components/Settings.js +3 -2
  138. package/dist/admin/pages/ListConfiguration/components/Settings.js.map +1 -1
  139. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js +3 -2
  140. package/dist/admin/pages/ListConfiguration/components/SortDisplayedFields.js.map +1 -1
  141. package/dist/admin/pages/ListView/ListViewPage.js +3 -2
  142. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  143. package/dist/admin/pages/ListView/components/BulkActions/Actions.js +3 -2
  144. package/dist/admin/pages/ListView/components/BulkActions/Actions.js.map +1 -1
  145. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js +4 -3
  146. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.js.map +1 -1
  147. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs +1 -1
  148. package/dist/admin/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.mjs.map +1 -1
  149. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +3 -2
  150. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  151. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  152. package/dist/admin/pages/ListView/components/Filters.js +3 -2
  153. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  154. package/dist/admin/pages/ListView/components/TableActions.js +3 -2
  155. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  156. package/dist/admin/pages/ListView/components/TableCells/CellContent.js +9 -5
  157. package/dist/admin/pages/ListView/components/TableCells/CellContent.js.map +1 -1
  158. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs +2 -2
  159. package/dist/admin/pages/ListView/components/TableCells/CellContent.mjs.map +1 -1
  160. package/dist/admin/pages/ListView/components/TableCells/CellValue.js +7 -2
  161. package/dist/admin/pages/ListView/components/TableCells/CellValue.js.map +1 -1
  162. package/dist/admin/pages/ListView/components/TableCells/Relations.js +4 -3
  163. package/dist/admin/pages/ListView/components/TableCells/Relations.js.map +1 -1
  164. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs +1 -1
  165. package/dist/admin/pages/ListView/components/TableCells/Relations.mjs.map +1 -1
  166. package/dist/admin/preview/components/InputPopover.js +3 -2
  167. package/dist/admin/preview/components/InputPopover.js.map +1 -1
  168. package/dist/admin/preview/hooks/usePreviewInputManager.js +3 -2
  169. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
  170. package/dist/admin/preview/pages/Preview.js +41 -13
  171. package/dist/admin/preview/pages/Preview.js.map +1 -1
  172. package/dist/admin/preview/pages/Preview.mjs +39 -12
  173. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  174. package/dist/admin/preview/routes.js +3 -2
  175. package/dist/admin/preview/routes.js.map +1 -1
  176. package/dist/admin/preview/utils/constants.js +9 -15
  177. package/dist/admin/preview/utils/constants.js.map +1 -1
  178. package/dist/admin/preview/utils/constants.mjs +10 -15
  179. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  180. package/dist/admin/src/components/InjectionZone.d.ts +1 -2
  181. package/dist/admin/src/content-manager.d.ts +15 -15
  182. package/dist/admin/src/history/services/historyVersion.d.ts +2 -2
  183. package/dist/admin/src/hooks/useContentTypeSchema.d.ts +1 -1
  184. package/dist/admin/src/hooks/useDocument.d.ts +8 -9
  185. package/dist/admin/src/hooks/useDocumentLayout.d.ts +3 -3
  186. package/dist/admin/src/hooks/useDragAndDrop.d.ts +4 -4
  187. package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  188. package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +0 -1
  189. package/dist/admin/src/modules/app.d.ts +5 -5
  190. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +1 -1
  191. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +12 -1
  192. package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +1 -1
  193. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +1 -1
  194. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +2 -2
  195. package/dist/admin/src/pages/EditView/components/FormInputs/ComponentContext.d.ts +1 -2
  196. package/dist/admin/src/pages/EditView/components/FormInputs/Relations/Relations.d.ts +4 -4
  197. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  198. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +19 -20
  199. package/dist/admin/src/pages/EditView/components/FormLayout.d.ts +12 -12
  200. package/dist/admin/src/pages/EditView/utils/draftRelationCounts.d.ts +26 -0
  201. package/dist/admin/src/pages/EditView/utils/keyboardShortcuts.d.ts +18 -0
  202. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +1 -1
  203. package/dist/admin/src/pages/ListView/components/Filters.d.ts +1 -1
  204. package/dist/admin/src/pages/formatComponentConfigurationEditLayout.d.ts +1 -1
  205. package/dist/admin/src/preview/utils/constants.d.ts +1 -7
  206. package/dist/admin/src/preview/utils/getSendMessage.d.ts +0 -1
  207. package/dist/admin/src/services/documents.d.ts +30 -70
  208. package/dist/admin/src/services/relations.d.ts +6 -20
  209. package/dist/admin/src/services/uid.d.ts +5 -5
  210. package/dist/admin/src/utils/layouts/normalizeContentManagerLayout.d.ts +4 -4
  211. package/dist/admin/src/utils/users.d.ts +1 -1
  212. package/dist/admin/src/utils/validation.d.ts +1 -1
  213. package/dist/admin/translations/cs.json.js +2 -1
  214. package/dist/admin/translations/cs.json.js.map +1 -1
  215. package/dist/admin/translations/cs.json.mjs +2 -1
  216. package/dist/admin/translations/cs.json.mjs.map +1 -1
  217. package/dist/admin/translations/de.json.js +2 -1
  218. package/dist/admin/translations/de.json.js.map +1 -1
  219. package/dist/admin/translations/de.json.mjs +2 -1
  220. package/dist/admin/translations/de.json.mjs.map +1 -1
  221. package/dist/admin/translations/en.json.js +7 -3
  222. package/dist/admin/translations/en.json.js.map +1 -1
  223. package/dist/admin/translations/en.json.mjs +7 -3
  224. package/dist/admin/translations/en.json.mjs.map +1 -1
  225. package/dist/admin/translations/es.json.js +2 -1
  226. package/dist/admin/translations/es.json.js.map +1 -1
  227. package/dist/admin/translations/es.json.mjs +2 -1
  228. package/dist/admin/translations/es.json.mjs.map +1 -1
  229. package/dist/admin/translations/fr.json.js +2 -1
  230. package/dist/admin/translations/fr.json.js.map +1 -1
  231. package/dist/admin/translations/fr.json.mjs +2 -1
  232. package/dist/admin/translations/fr.json.mjs.map +1 -1
  233. package/dist/admin/translations/ja.json.js +262 -87
  234. package/dist/admin/translations/ja.json.js.map +1 -1
  235. package/dist/admin/translations/ja.json.mjs +262 -87
  236. package/dist/admin/translations/ja.json.mjs.map +1 -1
  237. package/dist/admin/translations/nl.json.js +2 -1
  238. package/dist/admin/translations/nl.json.js.map +1 -1
  239. package/dist/admin/translations/nl.json.mjs +2 -1
  240. package/dist/admin/translations/nl.json.mjs.map +1 -1
  241. package/dist/admin/translations/pl.json.js +2 -1
  242. package/dist/admin/translations/pl.json.js.map +1 -1
  243. package/dist/admin/translations/pl.json.mjs +2 -1
  244. package/dist/admin/translations/pl.json.mjs.map +1 -1
  245. package/dist/admin/translations/sk.json.js +2 -1
  246. package/dist/admin/translations/sk.json.js.map +1 -1
  247. package/dist/admin/translations/sk.json.mjs +2 -1
  248. package/dist/admin/translations/sk.json.mjs.map +1 -1
  249. package/dist/admin/utils/objects.js +9 -4
  250. package/dist/admin/utils/objects.js.map +1 -1
  251. package/dist/admin/utils/validation.js +7 -3
  252. package/dist/admin/utils/validation.js.map +1 -1
  253. package/dist/server/controllers/collection-types.js +2 -2
  254. package/dist/server/controllers/collection-types.js.map +1 -1
  255. package/dist/server/controllers/collection-types.mjs +2 -2
  256. package/dist/server/controllers/collection-types.mjs.map +1 -1
  257. package/dist/server/controllers/single-types.js +2 -2
  258. package/dist/server/controllers/single-types.js.map +1 -1
  259. package/dist/server/controllers/single-types.mjs +2 -2
  260. package/dist/server/controllers/single-types.mjs.map +1 -1
  261. package/dist/server/controllers/utils/clone.js +5 -1
  262. package/dist/server/controllers/utils/clone.js.map +1 -1
  263. package/dist/server/controllers/utils/clone.mjs.map +1 -1
  264. package/dist/server/controllers/validation/index.js +6 -2
  265. package/dist/server/controllers/validation/index.js.map +1 -1
  266. package/dist/server/homepage/services/homepage.js +6 -1
  267. package/dist/server/homepage/services/homepage.js.map +1 -1
  268. package/dist/server/homepage/services/homepage.mjs +6 -1
  269. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  270. package/dist/server/mcp/handlers/collection-handlers.js +15 -18
  271. package/dist/server/mcp/handlers/collection-handlers.js.map +1 -1
  272. package/dist/server/mcp/handlers/collection-handlers.mjs +16 -19
  273. package/dist/server/mcp/handlers/collection-handlers.mjs.map +1 -1
  274. package/dist/server/mcp/handlers/single-type-handlers.js +12 -12
  275. package/dist/server/mcp/handlers/single-type-handlers.js.map +1 -1
  276. package/dist/server/mcp/handlers/single-type-handlers.mjs +13 -13
  277. package/dist/server/mcp/handlers/single-type-handlers.mjs.map +1 -1
  278. package/dist/server/mcp/register-content-manager-mcp-tools.js +4 -1
  279. package/dist/server/mcp/register-content-manager-mcp-tools.js.map +1 -1
  280. package/dist/server/mcp/register-content-manager-mcp-tools.mjs +4 -1
  281. package/dist/server/mcp/register-content-manager-mcp-tools.mjs.map +1 -1
  282. package/dist/server/mcp/sanitizers/shape-relations.js +108 -0
  283. package/dist/server/mcp/sanitizers/shape-relations.js.map +1 -0
  284. package/dist/server/mcp/sanitizers/shape-relations.mjs +103 -0
  285. package/dist/server/mcp/sanitizers/shape-relations.mjs.map +1 -0
  286. package/dist/server/mcp/schemas/data-schema.js +0 -3
  287. package/dist/server/mcp/schemas/data-schema.js.map +1 -1
  288. package/dist/server/mcp/schemas/data-schema.mjs +0 -3
  289. package/dist/server/mcp/schemas/data-schema.mjs.map +1 -1
  290. package/dist/server/mcp/schemas/output-schemas.js +30 -4
  291. package/dist/server/mcp/schemas/output-schemas.js.map +1 -1
  292. package/dist/server/mcp/schemas/output-schemas.mjs +30 -4
  293. package/dist/server/mcp/schemas/output-schemas.mjs.map +1 -1
  294. package/dist/server/mcp/utils.js +30 -3
  295. package/dist/server/mcp/utils.js.map +1 -1
  296. package/dist/server/mcp/utils.mjs +30 -4
  297. package/dist/server/mcp/utils.mjs.map +1 -1
  298. package/dist/server/middlewares/routing.js +5 -1
  299. package/dist/server/middlewares/routing.js.map +1 -1
  300. package/dist/server/preview/controllers/preview.js +9 -0
  301. package/dist/server/preview/controllers/preview.js.map +1 -1
  302. package/dist/server/preview/controllers/preview.mjs +9 -0
  303. package/dist/server/preview/controllers/preview.mjs.map +1 -1
  304. package/dist/server/preview/controllers/previewScript.js +1450 -0
  305. package/dist/server/preview/routes/preview.js +11 -0
  306. package/dist/server/preview/routes/preview.js.map +1 -1
  307. package/dist/server/preview/routes/preview.mjs +11 -0
  308. package/dist/server/preview/routes/preview.mjs.map +1 -1
  309. package/dist/server/services/document-manager.js +13 -19
  310. package/dist/server/services/document-manager.js.map +1 -1
  311. package/dist/server/services/document-manager.mjs +13 -19
  312. package/dist/server/services/document-manager.mjs.map +1 -1
  313. package/dist/server/services/populate-builder.js.map +1 -1
  314. package/dist/server/services/populate-builder.mjs.map +1 -1
  315. package/dist/server/services/uid.js +9 -4
  316. package/dist/server/services/uid.js.map +1 -1
  317. package/dist/server/services/utils/configuration/attributes.js +14 -10
  318. package/dist/server/services/utils/configuration/attributes.js.map +1 -1
  319. package/dist/server/services/utils/configuration/layouts.js +8 -4
  320. package/dist/server/services/utils/configuration/layouts.js.map +1 -1
  321. package/dist/server/services/utils/configuration/metadatas.js +19 -15
  322. package/dist/server/services/utils/configuration/metadatas.js.map +1 -1
  323. package/dist/server/services/utils/configuration/settings.js +5 -1
  324. package/dist/server/services/utils/configuration/settings.js.map +1 -1
  325. package/dist/server/services/utils/draft-relations.js +9 -0
  326. package/dist/server/services/utils/draft-relations.js.map +1 -0
  327. package/dist/server/services/utils/draft-relations.mjs +7 -0
  328. package/dist/server/services/utils/draft-relations.mjs.map +1 -0
  329. package/dist/server/services/utils/draft.js +123 -26
  330. package/dist/server/services/utils/draft.js.map +1 -1
  331. package/dist/server/services/utils/draft.mjs +118 -25
  332. package/dist/server/services/utils/draft.mjs.map +1 -1
  333. package/dist/server/services/utils/populate.js +23 -5
  334. package/dist/server/services/utils/populate.js.map +1 -1
  335. package/dist/server/services/utils/populate.mjs +15 -1
  336. package/dist/server/services/utils/populate.mjs.map +1 -1
  337. package/dist/server/services/utils/store.js +9 -5
  338. package/dist/server/services/utils/store.js.map +1 -1
  339. package/dist/server/src/controllers/index.d.ts +1 -1
  340. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  341. package/dist/server/src/controllers/utils/clone.d.ts +1 -1
  342. package/dist/server/src/controllers/utils/clone.d.ts.map +1 -1
  343. package/dist/server/src/controllers/utils/document-status.d.ts +1 -1
  344. package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -1
  345. package/dist/server/src/controllers/utils/metadata.d.ts +5 -5
  346. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -1
  347. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  348. package/dist/server/src/controllers/validation/index.d.ts +3 -3
  349. package/dist/server/src/controllers/validation/index.d.ts.map +1 -1
  350. package/dist/server/src/controllers/validation/model-configuration.d.ts.map +1 -1
  351. package/dist/server/src/controllers/validation/relations.d.ts +2 -2
  352. package/dist/server/src/history/controllers/history-version.d.ts +1 -7
  353. package/dist/server/src/history/controllers/history-version.d.ts.map +1 -1
  354. package/dist/server/src/history/controllers/index.d.ts +2 -1
  355. package/dist/server/src/history/controllers/index.d.ts.map +1 -1
  356. package/dist/server/src/history/controllers/validation/history-version.d.ts +1 -1
  357. package/dist/server/src/history/services/history.d.ts +0 -2
  358. package/dist/server/src/history/services/history.d.ts.map +1 -1
  359. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  360. package/dist/server/src/history/services/utils.d.ts +3 -3
  361. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  362. package/dist/server/src/history/utils.d.ts +1 -18
  363. package/dist/server/src/history/utils.d.ts.map +1 -1
  364. package/dist/server/src/homepage/controllers/homepage.d.ts +0 -1
  365. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  366. package/dist/server/src/homepage/controllers/index.d.ts +2 -1
  367. package/dist/server/src/homepage/controllers/index.d.ts.map +1 -1
  368. package/dist/server/src/homepage/index.d.ts +4 -8
  369. package/dist/server/src/homepage/index.d.ts.map +1 -1
  370. package/dist/server/src/homepage/services/homepage-query-utils.d.ts.map +1 -1
  371. package/dist/server/src/homepage/services/homepage.d.ts +3 -4
  372. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  373. package/dist/server/src/homepage/services/index.d.ts +4 -8
  374. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  375. package/dist/server/src/index.d.ts +82 -86
  376. package/dist/server/src/index.d.ts.map +1 -1
  377. package/dist/server/src/mcp/derive-content-type-mcp-tools.d.ts.map +1 -1
  378. package/dist/server/src/mcp/handlers/collection-handlers.d.ts.map +1 -1
  379. package/dist/server/src/mcp/handlers/single-type-handlers.d.ts.map +1 -1
  380. package/dist/server/src/mcp/permissions.d.ts +1 -1
  381. package/dist/server/src/mcp/permissions.d.ts.map +1 -1
  382. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts +2 -1
  383. package/dist/server/src/mcp/register-content-manager-mcp-tools.d.ts.map +1 -1
  384. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts +38 -0
  385. package/dist/server/src/mcp/sanitizers/shape-relations.d.ts.map +1 -0
  386. package/dist/server/src/mcp/schemas/blocks-schema.d.ts.map +1 -1
  387. package/dist/server/src/mcp/schemas/data-schema.d.ts +0 -3
  388. package/dist/server/src/mcp/schemas/data-schema.d.ts.map +1 -1
  389. package/dist/server/src/mcp/schemas/filters-schema.d.ts.map +1 -1
  390. package/dist/server/src/mcp/schemas/output-schemas.d.ts +2 -2
  391. package/dist/server/src/mcp/schemas/output-schemas.d.ts.map +1 -1
  392. package/dist/server/src/mcp/schemas/sort-schema.d.ts.map +1 -1
  393. package/dist/server/src/mcp/types.d.ts +2 -2
  394. package/dist/server/src/mcp/types.d.ts.map +1 -1
  395. package/dist/server/src/mcp/utils.d.ts +19 -1
  396. package/dist/server/src/mcp/utils.d.ts.map +1 -1
  397. package/dist/server/src/middlewares/routing.d.ts.map +1 -1
  398. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  399. package/dist/server/src/policies/index.d.ts.map +1 -1
  400. package/dist/server/src/preview/controllers/index.d.ts +2 -1
  401. package/dist/server/src/preview/controllers/index.d.ts.map +1 -1
  402. package/dist/server/src/preview/controllers/preview.d.ts +5 -0
  403. package/dist/server/src/preview/controllers/preview.d.ts.map +1 -1
  404. package/dist/server/src/preview/controllers/validation/preview.d.ts +1 -2
  405. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  406. package/dist/server/src/preview/routes/preview.d.ts.map +1 -1
  407. package/dist/server/src/preview/services/index.d.ts +1 -1
  408. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  409. package/dist/server/src/preview/services/preview-config.d.ts +1 -1
  410. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  411. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  412. package/dist/server/src/preview/utils.d.ts +1 -16
  413. package/dist/server/src/preview/utils.d.ts.map +1 -1
  414. package/dist/server/src/services/components.d.ts +2 -2
  415. package/dist/server/src/services/components.d.ts.map +1 -1
  416. package/dist/server/src/services/configuration.d.ts.map +1 -1
  417. package/dist/server/src/services/content-types.d.ts.map +1 -1
  418. package/dist/server/src/services/data-mapper.d.ts +5 -5
  419. package/dist/server/src/services/data-mapper.d.ts.map +1 -1
  420. package/dist/server/src/services/document-manager.d.ts +14 -14
  421. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  422. package/dist/server/src/services/document-metadata.d.ts +6 -6
  423. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  424. package/dist/server/src/services/field-sizes.d.ts +2 -2
  425. package/dist/server/src/services/field-sizes.d.ts.map +1 -1
  426. package/dist/server/src/services/index.d.ts +81 -85
  427. package/dist/server/src/services/index.d.ts.map +1 -1
  428. package/dist/server/src/services/metrics.d.ts.map +1 -1
  429. package/dist/server/src/services/permission-checker.d.ts +12 -31
  430. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  431. package/dist/server/src/services/permission.d.ts.map +1 -1
  432. package/dist/server/src/services/populate-builder.d.ts +7 -5
  433. package/dist/server/src/services/populate-builder.d.ts.map +1 -1
  434. package/dist/server/src/services/uid.d.ts.map +1 -1
  435. package/dist/server/src/services/utils/configuration/attributes.d.ts.map +1 -1
  436. package/dist/server/src/services/utils/configuration/settings.d.ts.map +1 -1
  437. package/dist/server/src/services/utils/count.d.ts.map +1 -1
  438. package/dist/server/src/services/utils/draft-relations.d.ts +19 -0
  439. package/dist/server/src/services/utils/draft-relations.d.ts.map +1 -0
  440. package/dist/server/src/services/utils/draft.d.ts +8 -7
  441. package/dist/server/src/services/utils/draft.d.ts.map +1 -1
  442. package/dist/server/src/services/utils/populate.d.ts +3 -1
  443. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  444. package/dist/server/src/services/utils/store.d.ts.map +1 -1
  445. package/dist/server/src/utils/index.d.ts.map +1 -1
  446. package/dist/server/src/validation/policies/hasPermissions.d.ts +1 -1
  447. package/dist/server/src/validation/zod.d.ts +1 -1
  448. package/dist/server/src/validation/zod.d.ts.map +1 -1
  449. package/dist/shared/contracts/collection-types.d.ts +4 -1
  450. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  451. package/dist/shared/contracts/single-types.d.ts +4 -1
  452. package/dist/shared/contracts/single-types.d.ts.map +1 -1
  453. package/package.json +10 -10
  454. package/dist/admin/preview/utils/previewScript.js +0 -1068
  455. package/dist/admin/preview/utils/previewScript.js.map +0 -1
  456. package/dist/admin/preview/utils/previewScript.mjs +0 -1066
  457. package/dist/admin/preview/utils/previewScript.mjs.map +0 -1
  458. package/dist/admin/src/preview/utils/previewScript.d.ts +0 -32
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/EditView/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useForm,\n BackButton,\n useNotification,\n useClipboard,\n useStrapiApp,\n useQueryParams,\n useIsDesktop,\n useDebounce,\n RESPONSIVE_DEFAULT_SPACING,\n useIsMobile,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n Menu,\n SingleSelect,\n SingleSelectOption,\n Typography,\n IconButton,\n Dialog,\n Popover,\n} from '@strapi/design-system';\nimport { Duplicate, ListPlus, Pencil, Trash, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate, useParams } from 'react-router-dom';\n\nimport { RelativeTime } from '../../../components/RelativeTime';\nimport {\n CREATED_AT_ATTRIBUTE_NAME,\n CREATED_BY_ATTRIBUTE_NAME,\n PUBLISHED_AT_ATTRIBUTE_NAME,\n PUBLISHED_BY_ATTRIBUTE_NAME,\n UPDATED_AT_ATTRIBUTE_NAME,\n UPDATED_BY_ATTRIBUTE_NAME,\n} from '../../../constants/attributes';\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { CLONE_PATH, LIST_PATH } from '../../../router';\nimport { getDisplayName } from '../../../utils/users';\n\nimport { DocumentActionsMenu } from './DocumentActions';\nimport { DocumentStatus } from './DocumentStatus';\n\nimport type { ContentManagerPlugin, DocumentActionComponent } from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n isCreating?: boolean;\n status?: 'draft' | 'published' | 'modified';\n title?: string;\n}\n\nconst Header = ({ isCreating, status, title: documentTitle = 'Untitled' }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const isCloning = useMatch(CLONE_PATH) !== null;\n const isMobile = useIsMobile();\n const params = useParams<{ collectionType: string; slug: string }>();\n const [\n {\n query: { status: activeTab = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n const title = isCreating\n ? formatMessage({\n id: 'content-manager.containers.edit.title.new',\n defaultMessage: 'Create an entry',\n })\n : documentTitle;\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={{\n initial: 4,\n medium: 6,\n }}\n paddingBottom={4}\n gap={2}\n >\n {!isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <Flex\n width=\"100%\"\n justifyContent=\"space-between\"\n gap={{\n initial: 2,\n medium: '8rem',\n }}\n alignItems=\"flex-start\"\n direction={{\n initial: 'column-reverse',\n medium: 'row',\n }}\n >\n <Flex\n gap={2}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n width=\"100%\"\n overflow=\"hidden\"\n >\n <Typography variant=\"alpha\" tag=\"h1\" overflow=\"hidden\">\n {title}\n </Typography>\n <Box display={{ initial: 'block', medium: 'none' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n <Flex width={{ initial: '100%', medium: 'auto' }} gap={3} justifyContent=\"space-between\">\n {isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <HeaderToolbar activeTab={activeTab} isCloning={isCloning} />\n </Flex>\n </Flex>\n {status ? (\n <Box marginTop={1}>\n <DocumentStatus status={isCloning ? 'draft' : status} />\n </Box>\n ) : null}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderToolbar\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DialogOptions {\n type: 'dialog';\n title: string;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\ninterface HeaderActionDescription {\n disabled?: boolean;\n label: string;\n icon?: React.ReactNode;\n type?: 'icon' | 'default';\n onClick?: (event: React.SyntheticEvent) => Promise<boolean | void> | boolean | void;\n dialog?: DialogOptions;\n options?: Array<{\n disabled?: boolean;\n label: string;\n startIcon?: React.ReactNode;\n textValue?: string;\n value: string;\n /**\n * @internal\n * @description\n * Internal SelectOption renderer used to display the status of AI translation background jobs\n */\n _render?: () => React.ReactNode;\n }>;\n /**\n * @internal\n * @description\n * Internal document header action to display the status of AI translation background jobs\n */\n _status?: {\n message: React.ReactNode;\n tooltip?: React.ReactNode;\n };\n onSelect?: (value: string) => void;\n value?: string;\n customizeContent?: (value: string) => React.ReactNode;\n}\n\ninterface HeaderDocumentActionsProps {\n activeTab: 'draft' | 'published';\n isCloning: boolean;\n}\n\nconst HeaderDocumentActions = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const { formatMessage } = useIntl();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n return (\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('header')}\n >\n {(actions) => {\n const headerActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('header');\n });\n\n const documentId = document?.documentId ?? id;\n\n return (\n <DocumentActionsMenu\n actions={headerActions}\n label={formatMessage({\n id: 'content-manager.containers.edit.header.more-actions',\n defaultMessage: 'More actions',\n })}\n >\n {collectionType !== SINGLE_TYPES && <CopyDocumentIdMenuItem documentId={documentId} />}\n <Information activeTab={activeTab} />\n </DocumentActionsMenu>\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/**\n * @description Contains the document actions that have `position: header`, if there are\n * none we still render the menu because we render the information about the document there.\n */\nconst HeaderToolbar = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getHeaderActions()}\n >\n {(actions) => {\n if (actions.length > 0) {\n return <HeaderActions actions={actions} />;\n } else {\n return null;\n }\n }}\n </DescriptionComponentRenderer>\n <Box display={{ initial: 'none', medium: 'block' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CopyDocumentIdMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CopyDocumentIdMenuItemProps {\n documentId: string | undefined;\n}\n\nconst CopyDocumentIdMenuItem = ({ documentId }: CopyDocumentIdMenuItemProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n if (!documentId) {\n return null;\n }\n\n const handleCopy = async () => {\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n };\n\n return (\n <>\n <Menu.Separator />\n <Menu.Item onSelect={handleCopy} startIcon={<Duplicate />}>\n {formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy document ID',\n })}\n </Menu.Item>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Information\n * -----------------------------------------------------------------------------------------------*/\n\ninterface InformationProps {\n activeTab: 'draft' | 'published';\n}\n\nconst Information = ({ activeTab }: InformationProps) => {\n const { formatMessage } = useIntl();\n const { document, meta, id, collectionType } = useDoc();\n\n if (!document?.id && !id) {\n return null;\n }\n\n /**\n * Because in the backend separate entries are made for draft and published\n * documents, the creator fields are different for each of them. For example,\n * you could make your draft in January and then publish it for the first time\n * in Feb. This would make the createdAt value for the published entry in Feb\n * but really we want to show the document as a whole. The draft entry will also\n * never have the publishedAt values.\n *\n * So, we decipher which document to show the creator for based on the activeTab.\n */\n\n const createAndUpdateDocument =\n activeTab === 'draft'\n ? document\n : meta?.availableStatus?.find((status) => status.publishedAt === null);\n\n const publishDocument =\n activeTab === 'published'\n ? document\n : meta?.availableStatus?.find((status) => status.publishedAt !== null);\n\n const creator = createAndUpdateDocument?.[CREATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[CREATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const updator = createAndUpdateDocument?.[UPDATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[UPDATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const information: Array<{ isDisplayed?: boolean; label: string; value: React.ReactNode }> = [\n {\n isDisplayed: !!publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-published.label',\n defaultMessage: 'Published',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-published.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime timestamp={new Date(publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME])} />\n ),\n isAnonymous: !publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME],\n author: publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME])\n : null,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-draft.label',\n defaultMessage: 'Updated',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-draft.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !updator,\n author: updator,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.document.label',\n defaultMessage: 'Created',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.document.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !creator,\n author: creator,\n }\n ),\n },\n {\n isDisplayed: collectionType !== SINGLE_TYPES && !!(document?.documentId ?? id),\n label: formatMessage({\n id: 'content-manager.containers.edit.information.documentId.label',\n defaultMessage: 'Document ID',\n }),\n value: document?.documentId ?? id ?? '',\n },\n ].filter((info) => info.isDisplayed);\n\n return (\n <Flex\n borderWidth=\"1px 0 0 0\"\n borderStyle=\"solid\"\n borderColor=\"neutral150\"\n direction=\"column\"\n marginTop={1}\n tag=\"dl\"\n padding={5}\n gap={3}\n alignItems=\"flex-start\"\n /**\n * The menu content has a padding of 4px, but we want our divider (the border top applied) to\n * be flush with the menu content. So we need to adjust the margin & width to account for the padding.\n */\n marginLeft=\"-0.4rem\"\n marginRight=\"-0.4rem\"\n width=\"calc(100% + 8px)\"\n >\n {information.map((info) => (\n <Flex gap={1} direction=\"column\" alignItems=\"flex-start\" key={info.label}>\n <Typography tag=\"dt\" variant=\"pi\" fontWeight=\"bold\">\n {info.label}\n </Typography>\n <Typography\n tag=\"dd\"\n variant=\"pi\"\n textColor=\"neutral600\"\n style={{ wordBreak: 'break-word' }}\n >\n {info.value}\n </Typography>\n </Flex>\n ))}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionsProps {\n actions: Array<HeaderActionDescription & { id: string }>;\n}\n\nconst HeaderActions = ({ actions }: HeaderActionsProps) => {\n const [dialogId, setDialogId] = React.useState<string | null>(null);\n\n const handleClick =\n (action: HeaderActionDescription & { id: string }) => async (e: React.MouseEvent) => {\n if (!('options' in action)) {\n const { onClick = () => false, dialog, id } = action;\n\n const muteDialog = await onClick(e);\n\n if (dialog && !muteDialog) {\n e.preventDefault();\n setDialogId(id);\n }\n }\n };\n\n const handleClose = () => {\n setDialogId(null);\n };\n\n return (\n <Flex gap={1}>\n {actions.map((action) => {\n if (action.options) {\n return (\n <SingleSelect\n key={action.id}\n size=\"S\"\n // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.\n onChange={action.onSelect}\n aria-label={action.label}\n {...action}\n >\n {action.options.map(({ label, ...option }) => {\n if (option._render) {\n return option._render();\n }\n\n return (\n <SingleSelectOption key={option.value} {...option}>\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n } else if (action._status) {\n return (\n <HeaderActionStatus tooltip={action._status?.tooltip} key={action.id}>\n {action._status.message}\n </HeaderActionStatus>\n );\n } else {\n return (\n <React.Fragment key={action.id}>\n <IconButton\n disabled={action.disabled}\n label={action.label}\n size=\"S\"\n onClick={handleClick(action)}\n >\n {action.icon}\n </IconButton>\n {action.dialog ? (\n <HeaderActionDialog\n {...action.dialog}\n isOpen={dialogId === action.id}\n onClose={handleClose}\n />\n ) : null}\n </React.Fragment>\n );\n }\n })}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionStatus\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionStatusProps {\n tooltip: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst HeaderActionStatus = ({ tooltip, children }: HeaderActionStatusProps) => {\n const [open, setOpen] = React.useState(false);\n // Debounce the open/close so the user can hover over the popover content before it closes\n const debouncedOpen = useDebounce(open, 100);\n\n const handleMouseEnter = () => {\n if (tooltip) {\n setOpen(true);\n }\n };\n const handleMouseLeave = () => {\n if (tooltip) {\n setOpen(false);\n }\n };\n\n return (\n <Popover.Root open={debouncedOpen} onOpenChange={setOpen}>\n <Popover.Anchor\n style={{ alignSelf: 'stretch' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n aria-describedby=\"document-header-action-status\"\n >\n <Box height=\"100%\">{children}</Box>\n </Popover.Anchor>\n <Popover.Content\n role=\"tooltip\"\n id=\"document-header-action-status\"\n side=\"bottom\"\n align=\"center\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {tooltip}\n </Popover.Content>\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionDialog\n * -----------------------------------------------------------------------------------------------*/\ninterface HeaderActionDialogProps {\n onClose: () => void;\n onCancel?: () => Promise<void>;\n title: string;\n content?: React.ReactNode | ((props: { onClose: () => void }) => React.ReactNode);\n isOpen: boolean;\n}\n\nconst HeaderActionDialog = ({\n onClose,\n onCancel,\n title,\n content: Content,\n isOpen,\n}: HeaderActionDialogProps) => {\n const handleClose = async () => {\n if (onCancel) {\n await onCancel();\n }\n\n onClose();\n };\n\n return (\n <Dialog.Root open={isOpen} onOpenChange={handleClose}>\n <Dialog.Content>\n <Dialog.Header>{title}</Dialog.Header>\n {typeof Content === 'function' ? <Content onClose={handleClose} /> : Content}\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DocumentActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst ConfigureTheViewAction: DocumentActionComponent = ({ collectionType, model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n }),\n icon: <ListPlus />,\n onClick: () => {\n navigate(`../${collectionType}/${model}/configurations/edit`);\n },\n position: 'header',\n }\n : null;\n};\n\nConfigureTheViewAction.type = 'configure-the-view';\nConfigureTheViewAction.position = 'header';\n\nconst EditTheModelAction: DocumentActionComponent = ({ model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'content-manager.link-to-ctb',\n defaultMessage: 'Edit the model',\n }),\n icon: <Pencil />,\n onClick: () => {\n navigate(`/plugins/content-type-builder/content-types/${model}`);\n },\n position: 'header',\n }\n : null;\n};\n\nEditTheModelAction.type = 'edit-the-model';\nEditTheModelAction.position = 'header';\n\nconst DeleteAction: DocumentActionComponent = ({ documentId, model, collectionType, document }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const listViewPathMatch = useMatch(LIST_PATH);\n const canDelete = useDocumentRBAC('DeleteAction', (state) => state.canDelete);\n const { delete: deleteAction, isLoading } = useDocumentActions();\n const { toggleNotification } = useNotification();\n const setSubmitting = useForm('DeleteAction', (state) => state.setSubmitting);\n const isLocalized = document?.locale != null;\n\n return {\n disabled: !canDelete || !document,\n label: formatMessage(\n {\n id: 'content-manager.actions.delete.label',\n defaultMessage: 'Delete entry{isLocalized, select, true { (all locales)} other {}}',\n },\n { isLocalized }\n ),\n icon: <Trash />,\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography tag=\"p\" variant=\"omega\" textAlign=\"center\">\n {formatMessage({\n id: 'content-manager.actions.delete.dialog.body',\n defaultMessage: 'Are you sure?',\n })}\n </Typography>\n </Flex>\n ),\n loading: isLoading,\n onConfirm: async () => {\n /**\n * If we have a match, we're in the list view\n * and therefore not in a form and shouldn't be\n * trying to set the submitting value.\n */\n if (!listViewPathMatch) {\n setSubmitting(true);\n }\n try {\n if (!documentId && collectionType !== SINGLE_TYPES) {\n console.error(\n \"You're trying to delete a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.delete.error',\n defaultMessage: 'An error occurred while trying to delete the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await deleteAction({\n documentId,\n model,\n collectionType,\n params: {\n locale: '*',\n },\n });\n\n if (!('error' in res)) {\n navigate({ pathname: `../${collectionType}/${model}` }, { replace: true });\n }\n } finally {\n if (!listViewPathMatch) {\n setSubmitting(false);\n }\n }\n },\n },\n variant: 'danger',\n position: ['header', 'table-row'],\n };\n};\n\nDeleteAction.type = 'delete';\nDeleteAction.position = ['header', 'table-row'];\n\nconst DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction];\n\nexport { Header, DEFAULT_HEADER_ACTIONS };\nexport type { HeaderProps, HeaderActionDescription };\n"],"names":["Header","isCreating","status","title","documentTitle","formatMessage","useIntl","isCloning","useMatch","CLONE_PATH","isMobile","useIsMobile","params","useParams","query","activeTab","useQueryParams","id","defaultMessage","_jsxs","Flex","direction","alignItems","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","initial","medium","paddingBottom","gap","_jsx","BackButton","fallback","collectionType","SINGLE_TYPES","undefined","COLLECTION_TYPES","slug","width","justifyContent","overflow","Typography","variant","tag","Box","display","HeaderDocumentActions","HeaderToolbar","marginTop","DocumentStatus","model","document","meta","useDoc","plugins","useStrapiApp","state","DescriptionComponentRenderer","props","documentId","descriptions","apis","getDocumentActions","actions","headerActions","filter","action","positions","Array","isArray","position","includes","DocumentActionsMenu","label","CopyDocumentIdMenuItem","Information","getHeaderActions","length","HeaderActions","toggleNotification","useNotification","copy","useClipboard","handleCopy","didCopy","type","message","_Fragment","Menu","Separator","Item","onSelect","startIcon","Duplicate","createAndUpdateDocument","availableStatus","find","publishedAt","publishDocument","creator","CREATED_BY_ATTRIBUTE_NAME","getDisplayName","updator","UPDATED_BY_ATTRIBUTE_NAME","information","isDisplayed","PUBLISHED_AT_ATTRIBUTE_NAME","value","time","RelativeTime","timestamp","Date","isAnonymous","PUBLISHED_BY_ATTRIBUTE_NAME","author","UPDATED_AT_ATTRIBUTE_NAME","CREATED_AT_ATTRIBUTE_NAME","info","borderWidth","borderStyle","borderColor","padding","marginLeft","marginRight","map","fontWeight","textColor","style","wordBreak","dialogId","setDialogId","React","useState","handleClick","e","onClick","dialog","muteDialog","preventDefault","handleClose","options","SingleSelect","size","onChange","aria-label","option","_render","SingleSelectOption","_status","HeaderActionStatus","tooltip","Fragment","IconButton","disabled","icon","HeaderActionDialog","isOpen","onClose","children","open","setOpen","debouncedOpen","useDebounce","handleMouseEnter","handleMouseLeave","Popover","Root","onOpenChange","Anchor","alignSelf","onMouseEnter","onMouseLeave","aria-describedby","height","Content","role","side","align","onCancel","content","Dialog","ConfigureTheViewAction","navigate","useNavigate","isDesktop","useIsDesktop","ListPlus","EditTheModelAction","Pencil","DeleteAction","listViewPathMatch","LIST_PATH","canDelete","useDocumentRBAC","delete","deleteAction","isLoading","useDocumentActions","setSubmitting","useForm","isLocalized","locale","Trash","WarningCircle","fill","textAlign","loading","onConfirm","console","error","res","pathname","replace","DEFAULT_HEADER_ACTIONS"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/EditView/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useForm,\n BackButton,\n useNotification,\n useClipboard,\n useStrapiApp,\n useQueryParams,\n useIsDesktop,\n useDebounce,\n RESPONSIVE_DEFAULT_SPACING,\n useIsMobile,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n Menu,\n SingleSelect,\n SingleSelectOption,\n Typography,\n IconButton,\n Dialog,\n Popover,\n} from '@strapi/design-system';\nimport { Duplicate, ListPlus, Pencil, Trash, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate, useParams } from 'react-router-dom';\n\nimport { RelativeTime } from '../../../components/RelativeTime';\nimport {\n CREATED_AT_ATTRIBUTE_NAME,\n CREATED_BY_ATTRIBUTE_NAME,\n PUBLISHED_AT_ATTRIBUTE_NAME,\n PUBLISHED_BY_ATTRIBUTE_NAME,\n UPDATED_AT_ATTRIBUTE_NAME,\n UPDATED_BY_ATTRIBUTE_NAME,\n} from '../../../constants/attributes';\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { CLONE_PATH, LIST_PATH } from '../../../router';\nimport { getDisplayName } from '../../../utils/users';\n\nimport { DocumentActionsMenu } from './DocumentActions';\nimport { DocumentStatus } from './DocumentStatus';\n\nimport type { ContentManagerPlugin, DocumentActionComponent } from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n isCreating?: boolean;\n status?: 'draft' | 'published' | 'modified';\n title?: string;\n}\n\nconst Header = ({ isCreating, status, title: documentTitle = 'Untitled' }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const isCloning = useMatch(CLONE_PATH) !== null;\n const isMobile = useIsMobile();\n const params = useParams<{ collectionType: string; slug: string }>();\n const [\n {\n query: { status: activeTab = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n const title = isCreating\n ? formatMessage({\n id: 'content-manager.containers.edit.title.new',\n defaultMessage: 'Create an entry',\n })\n : documentTitle;\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={{\n initial: 4,\n medium: 6,\n }}\n paddingBottom={4}\n gap={2}\n >\n {!isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <Flex\n width=\"100%\"\n justifyContent=\"space-between\"\n gap={{\n initial: 2,\n medium: '8rem',\n }}\n alignItems=\"flex-start\"\n direction={{\n initial: 'column-reverse',\n medium: 'row',\n }}\n >\n <Flex\n gap={2}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n width=\"100%\"\n overflow=\"hidden\"\n >\n <Typography variant=\"alpha\" tag=\"h1\" overflow=\"hidden\">\n {title}\n </Typography>\n <Box display={{ initial: 'block', medium: 'none' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n <Flex width={{ initial: '100%', medium: 'auto' }} gap={3} justifyContent=\"space-between\">\n {isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <HeaderToolbar activeTab={activeTab} isCloning={isCloning} />\n </Flex>\n </Flex>\n {status ? (\n <Box marginTop={1}>\n <DocumentStatus status={isCloning ? 'draft' : status} />\n </Box>\n ) : null}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderToolbar\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DialogOptions {\n type: 'dialog';\n title: string;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\ninterface HeaderActionDescription {\n disabled?: boolean;\n label: string;\n icon?: React.ReactNode;\n type?: 'icon' | 'default';\n onClick?: (event: React.SyntheticEvent) => Promise<boolean | void> | boolean | void;\n dialog?: DialogOptions;\n options?: Array<{\n disabled?: boolean;\n label: string;\n startIcon?: React.ReactNode;\n textValue?: string;\n value: string;\n /**\n * @internal\n * @description\n * Internal SelectOption renderer used to display the status of AI translation background jobs\n */\n _render?: () => React.ReactNode;\n }>;\n /**\n * @internal\n * @description\n * Internal document header action to display the status of AI translation background jobs\n */\n _status?: {\n message: React.ReactNode;\n tooltip?: React.ReactNode;\n };\n onSelect?: (value: string) => void;\n value?: string;\n customizeContent?: (value: string) => React.ReactNode;\n}\n\ninterface HeaderDocumentActionsProps {\n activeTab: 'draft' | 'published';\n isCloning: boolean;\n}\n\nconst HeaderDocumentActions = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const { formatMessage } = useIntl();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n return (\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('header')}\n >\n {(actions) => {\n const headerActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('header');\n });\n\n const documentId = document?.documentId ?? id;\n\n return (\n <DocumentActionsMenu\n actions={headerActions}\n label={formatMessage({\n id: 'content-manager.containers.edit.header.more-actions',\n defaultMessage: 'More actions',\n })}\n >\n {collectionType !== SINGLE_TYPES && <CopyDocumentIdMenuItem documentId={documentId} />}\n <Information activeTab={activeTab} />\n </DocumentActionsMenu>\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/**\n * @description Contains the document actions that have `position: header`, if there are\n * none we still render the menu because we render the information about the document there.\n */\nconst HeaderToolbar = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getHeaderActions()}\n >\n {(actions) => {\n if (actions.length > 0) {\n return <HeaderActions actions={actions} />;\n } else {\n return null;\n }\n }}\n </DescriptionComponentRenderer>\n <Box display={{ initial: 'none', medium: 'block' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CopyDocumentIdMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CopyDocumentIdMenuItemProps {\n documentId: string | undefined;\n}\n\nconst CopyDocumentIdMenuItem = ({ documentId }: CopyDocumentIdMenuItemProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n if (!documentId) {\n return null;\n }\n\n const handleCopy = async () => {\n const didCopy = await copy(documentId);\n if (didCopy) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.actions.copy-documentId.success',\n defaultMessage: 'Document ID copied to clipboard',\n }),\n });\n }\n };\n\n return (\n <>\n <Menu.Separator />\n <Menu.Item onSelect={handleCopy} startIcon={<Duplicate />}>\n {formatMessage({\n id: 'content-manager.actions.copy-documentId.label',\n defaultMessage: 'Copy document ID',\n })}\n </Menu.Item>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Information\n * -----------------------------------------------------------------------------------------------*/\n\ninterface InformationProps {\n activeTab: 'draft' | 'published';\n}\n\nconst Information = ({ activeTab }: InformationProps) => {\n const { formatMessage } = useIntl();\n const { document, meta, id, collectionType } = useDoc();\n\n if (!document?.id && !id) {\n return null;\n }\n\n /**\n * Because in the backend separate entries are made for draft and published\n * documents, the creator fields are different for each of them. For example,\n * you could make your draft in January and then publish it for the first time\n * in Feb. This would make the createdAt value for the published entry in Feb\n * but really we want to show the document as a whole. The draft entry will also\n * never have the publishedAt values.\n *\n * So, we decipher which document to show the creator for based on the activeTab.\n */\n\n const createAndUpdateDocument =\n activeTab === 'draft'\n ? document\n : meta?.availableStatus?.find((status) => status.publishedAt === null);\n\n const publishDocument =\n activeTab === 'published'\n ? document\n : meta?.availableStatus?.find((status) => status.publishedAt !== null);\n\n const creator = createAndUpdateDocument?.[CREATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[CREATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const updator = createAndUpdateDocument?.[UPDATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[UPDATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const information: Array<{ isDisplayed?: boolean; label: string; value: React.ReactNode }> = [\n {\n isDisplayed: !!publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-published.label',\n defaultMessage: 'Published',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-published.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime timestamp={new Date(publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME])} />\n ),\n isAnonymous: !publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME],\n author: publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME])\n : null,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-draft.label',\n defaultMessage: 'Updated',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-draft.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !updator,\n author: updator,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.document.label',\n defaultMessage: 'Created',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.document.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !creator,\n author: creator,\n }\n ),\n },\n {\n isDisplayed: collectionType !== SINGLE_TYPES && !!(document?.documentId ?? id),\n label: formatMessage({\n id: 'content-manager.containers.edit.information.documentId.label',\n defaultMessage: 'Document ID',\n }),\n value: document?.documentId ?? id ?? '',\n },\n ].filter((info) => info.isDisplayed);\n\n return (\n <Flex\n borderWidth=\"1px 0 0 0\"\n borderStyle=\"solid\"\n borderColor=\"neutral150\"\n direction=\"column\"\n marginTop={1}\n tag=\"dl\"\n padding={5}\n gap={3}\n alignItems=\"flex-start\"\n /**\n * The menu content has a padding of 4px, but we want our divider (the border top applied) to\n * be flush with the menu content. So we need to adjust the margin & width to account for the padding.\n */\n marginLeft=\"-0.4rem\"\n marginRight=\"-0.4rem\"\n width=\"calc(100% + 8px)\"\n >\n {information.map((info) => (\n <Flex gap={1} direction=\"column\" alignItems=\"flex-start\" key={info.label}>\n <Typography tag=\"dt\" variant=\"pi\" fontWeight=\"bold\">\n {info.label}\n </Typography>\n <Typography\n tag=\"dd\"\n variant=\"pi\"\n textColor=\"neutral600\"\n style={{ wordBreak: 'break-word' }}\n >\n {info.value}\n </Typography>\n </Flex>\n ))}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionsProps {\n actions: Array<HeaderActionDescription & { id: string }>;\n}\n\nconst HeaderActions = ({ actions }: HeaderActionsProps) => {\n const [dialogId, setDialogId] = React.useState<string | null>(null);\n\n const handleClick =\n (action: HeaderActionDescription & { id: string }) => async (e: React.MouseEvent) => {\n if (!('options' in action)) {\n const { onClick = () => false, dialog, id } = action;\n\n const muteDialog = await onClick(e);\n\n if (dialog && !muteDialog) {\n e.preventDefault();\n setDialogId(id);\n }\n }\n };\n\n const handleClose = () => {\n setDialogId(null);\n };\n\n return (\n <Flex gap={1}>\n {actions.map((action) => {\n if (action.options) {\n return (\n <SingleSelect\n key={action.id}\n size=\"S\"\n // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.\n onChange={action.onSelect}\n aria-label={action.label}\n {...action}\n >\n {action.options.map(({ label, ...option }) => {\n if (option._render) {\n return option._render();\n }\n\n return (\n <SingleSelectOption key={option.value} {...option}>\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n } else if (action._status) {\n return (\n <HeaderActionStatus tooltip={action._status?.tooltip} key={action.id}>\n {action._status.message}\n </HeaderActionStatus>\n );\n } else {\n return (\n <React.Fragment key={action.id}>\n <IconButton\n disabled={action.disabled}\n label={action.label}\n size=\"S\"\n onClick={handleClick(action)}\n >\n {action.icon}\n </IconButton>\n {action.dialog ? (\n <HeaderActionDialog\n {...action.dialog}\n isOpen={dialogId === action.id}\n onClose={handleClose}\n />\n ) : null}\n </React.Fragment>\n );\n }\n })}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionStatus\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionStatusProps {\n tooltip: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst HeaderActionStatus = ({ tooltip, children }: HeaderActionStatusProps) => {\n const [open, setOpen] = React.useState(false);\n // Debounce the open/close so the user can hover over the popover content before it closes\n const debouncedOpen = useDebounce(open, 100);\n\n const handleMouseEnter = () => {\n if (tooltip) {\n setOpen(true);\n }\n };\n const handleMouseLeave = () => {\n if (tooltip) {\n setOpen(false);\n }\n };\n\n return (\n <Popover.Root open={debouncedOpen} onOpenChange={setOpen}>\n <Popover.Anchor\n style={{ alignSelf: 'stretch' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n aria-describedby=\"document-header-action-status\"\n >\n <Box height=\"100%\">{children}</Box>\n </Popover.Anchor>\n <Popover.Content\n role=\"tooltip\"\n id=\"document-header-action-status\"\n side=\"bottom\"\n align=\"center\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {tooltip}\n </Popover.Content>\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionDialog\n * -----------------------------------------------------------------------------------------------*/\ninterface HeaderActionDialogProps {\n onClose: () => void;\n onCancel?: () => Promise<void>;\n title: string;\n content?: React.ReactNode | ((props: { onClose: () => void }) => React.ReactNode);\n isOpen: boolean;\n}\n\nconst HeaderActionDialog = ({\n onClose,\n onCancel,\n title,\n content: Content,\n isOpen,\n}: HeaderActionDialogProps) => {\n const handleClose = async () => {\n if (onCancel) {\n await onCancel();\n }\n\n onClose();\n };\n\n return (\n <Dialog.Root open={isOpen} onOpenChange={handleClose}>\n <Dialog.Content>\n <Dialog.Header>{title}</Dialog.Header>\n {typeof Content === 'function' ? <Content onClose={handleClose} /> : Content}\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DocumentActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst ConfigureTheViewAction: DocumentActionComponent = ({ collectionType, model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n }),\n icon: <ListPlus />,\n onClick: () => {\n navigate(`../${collectionType}/${model}/configurations/edit`);\n },\n position: 'header',\n }\n : null;\n};\n\nConfigureTheViewAction.type = 'configure-the-view';\nConfigureTheViewAction.position = 'header';\n\nconst EditTheModelAction: DocumentActionComponent = ({ model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'content-manager.link-to-ctb',\n defaultMessage: 'Edit the model',\n }),\n icon: <Pencil />,\n onClick: () => {\n navigate(`/plugins/content-type-builder/content-types/${model}`);\n },\n position: 'header',\n }\n : null;\n};\n\nEditTheModelAction.type = 'edit-the-model';\nEditTheModelAction.position = 'header';\n\nconst DeleteAction: DocumentActionComponent = ({ documentId, model, collectionType, document }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const listViewPathMatch = useMatch(LIST_PATH);\n const canDelete = useDocumentRBAC('DeleteAction', (state) => state.canDelete);\n const { delete: deleteAction, isLoading } = useDocumentActions();\n const { toggleNotification } = useNotification();\n const setSubmitting = useForm('DeleteAction', (state) => state.setSubmitting);\n const isLocalized = document?.locale != null;\n\n return {\n disabled: !canDelete || !document,\n label: formatMessage(\n {\n id: 'content-manager.actions.delete.label',\n defaultMessage: 'Delete entry{isLocalized, select, true { (all locales)} other {}}',\n },\n { isLocalized }\n ),\n icon: <Trash />,\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography tag=\"p\" variant=\"omega\" textAlign=\"center\">\n {formatMessage({\n id: 'content-manager.actions.delete.dialog.body',\n defaultMessage: 'Are you sure?',\n })}\n </Typography>\n </Flex>\n ),\n loading: isLoading,\n onConfirm: async () => {\n /**\n * If we have a match, we're in the list view\n * and therefore not in a form and shouldn't be\n * trying to set the submitting value.\n */\n if (!listViewPathMatch) {\n setSubmitting(true);\n }\n try {\n if (!documentId && collectionType !== SINGLE_TYPES) {\n console.error(\n \"You're trying to delete a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.delete.error',\n defaultMessage: 'An error occurred while trying to delete the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await deleteAction({\n documentId,\n model,\n collectionType,\n params: {\n locale: '*',\n },\n });\n\n if (!('error' in res)) {\n navigate({ pathname: `../${collectionType}/${model}` }, { replace: true });\n }\n } finally {\n if (!listViewPathMatch) {\n setSubmitting(false);\n }\n }\n },\n },\n variant: 'danger',\n position: ['header', 'table-row'],\n };\n};\n\nDeleteAction.type = 'delete';\nDeleteAction.position = ['header', 'table-row'];\n\nconst DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction];\n\nexport { Header, DEFAULT_HEADER_ACTIONS };\nexport type { HeaderProps, HeaderActionDescription };\n"],"names":["Header","isCreating","status","title","documentTitle","formatMessage","useIntl","isCloning","useMatch","CLONE_PATH","isMobile","useIsMobile","params","useParams","query","activeTab","useQueryParams","id","defaultMessage","_jsxs","Flex","direction","alignItems","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","initial","medium","paddingBottom","gap","_jsx","BackButton","fallback","collectionType","SINGLE_TYPES","undefined","COLLECTION_TYPES","slug","width","justifyContent","overflow","Typography","variant","tag","Box","display","HeaderDocumentActions","HeaderToolbar","marginTop","DocumentStatus","model","document","meta","useDoc","plugins","useStrapiApp","state","DescriptionComponentRenderer","props","documentId","descriptions","apis","getDocumentActions","actions","headerActions","filter","action","positions","Array","isArray","position","includes","DocumentActionsMenu","label","CopyDocumentIdMenuItem","Information","getHeaderActions","length","HeaderActions","toggleNotification","useNotification","copy","useClipboard","handleCopy","didCopy","type","message","_Fragment","Menu","Separator","Item","onSelect","startIcon","Duplicate","createAndUpdateDocument","availableStatus","find","publishedAt","publishDocument","creator","CREATED_BY_ATTRIBUTE_NAME","getDisplayName","updator","UPDATED_BY_ATTRIBUTE_NAME","information","isDisplayed","PUBLISHED_AT_ATTRIBUTE_NAME","value","time","RelativeTime","timestamp","Date","isAnonymous","PUBLISHED_BY_ATTRIBUTE_NAME","author","UPDATED_AT_ATTRIBUTE_NAME","CREATED_AT_ATTRIBUTE_NAME","info","borderWidth","borderStyle","borderColor","padding","marginLeft","marginRight","map","fontWeight","textColor","style","wordBreak","dialogId","setDialogId","React","useState","handleClick","e","onClick","dialog","muteDialog","preventDefault","handleClose","options","SingleSelect","size","onChange","aria-label","option","_render","SingleSelectOption","_status","HeaderActionStatus","tooltip","Fragment","IconButton","disabled","icon","HeaderActionDialog","isOpen","onClose","children","open","setOpen","debouncedOpen","useDebounce","handleMouseEnter","handleMouseLeave","Popover","Root","onOpenChange","Anchor","alignSelf","onMouseEnter","onMouseLeave","aria-describedby","height","Content","role","side","align","onCancel","content","Dialog","ConfigureTheViewAction","navigate","useNavigate","isDesktop","useIsDesktop","ListPlus","EditTheModelAction","Pencil","DeleteAction","listViewPathMatch","LIST_PATH","canDelete","useDocumentRBAC","delete","deleteAction","isLoading","useDocumentActions","setSubmitting","useForm","isLocalized","locale","Trash","WarningCircle","fill","textAlign","loading","onConfirm","console","error","res","pathname","replace","DEFAULT_HEADER_ACTIONS"],"mappings":"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"}
@@ -21,7 +21,8 @@ var Relations = require('./FormInputs/Relations/Relations.js');
21
21
  var UID = require('./FormInputs/UID.js');
22
22
  var Field$1 = require('./FormInputs/Wysiwyg/Field.js');
23
23
 
24
- function _interopNamespaceDefault(e) {
24
+ function _interopNamespace(e) {
25
+ if (e && e.__esModule) return e;
25
26
  var n = Object.create(null);
26
27
  if (e) {
27
28
  Object.keys(e).forEach(function (k) {
@@ -38,7 +39,7 @@ function _interopNamespaceDefault(e) {
38
39
  return Object.freeze(n);
39
40
  }
40
41
 
41
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
42
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
42
43
 
43
44
  /**
44
45
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"InputRenderer.js","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport { useHasInputPopoverParent } from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":"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"}
1
+ {"version":3,"file":"InputRenderer.js","sources":["../../../../../admin/src/pages/EditView/components/InputRenderer.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useForm,\n InputRenderer as FormInputRenderer,\n useField,\n createRulesEngine,\n type JsonLogicCondition,\n} from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { type UseDocument } from '../../../hooks/useDocument';\nimport { useDocumentContext } from '../../../hooks/useDocumentContext';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../../hooks/useLazyComponents';\nimport { useHasInputPopoverParent } from '../../../preview/components/InputPopover';\nimport { usePreviewInputManager } from '../../../preview/hooks/usePreviewInputManager';\nimport {\n getConditionDependencyPaths,\n getConditionDependencySubscriptionValue,\n} from '../../../utils/conditionalFields';\nimport { getDirectParent } from '../utils/data';\n\nimport { BlocksInput } from './FormInputs/BlocksInput/BlocksInput';\nimport { ComponentInput } from './FormInputs/Component/Input';\nimport { DynamicZone, useDynamicZone } from './FormInputs/DynamicZone/Field';\nimport { NotAllowedInput } from './FormInputs/NotAllowed';\nimport { RelationsInput } from './FormInputs/Relations/Relations';\nimport { UIDInput } from './FormInputs/UID';\nimport { Wysiwyg } from './FormInputs/Wysiwyg/Field';\n\nimport type { EditFieldLayout } from '../../../hooks/useDocumentLayout';\nimport type { Schema } from '@strapi/types';\nimport type { DistributiveOmit } from 'react-redux';\n\ntype InputRendererProps = DistributiveOmit<EditFieldLayout, 'size'> & {\n document?: ReturnType<UseDocument>;\n};\n\n/**\n * @internal\n *\n * @description An abstraction around the regular form input renderer designed\n * specifically to be used in the EditView of the content-manager this understands\n * the complete EditFieldLayout and will handle RBAC conditions and rendering CM specific\n * components such as Blocks / Relations.\n */\nconst BaseInputRenderer = ({\n visible,\n hint: providedHint,\n document: providedDocument,\n ...inputProps\n}: InputRendererProps) => {\n const { currentDocument, currentDocumentMeta } = useDocumentContext('DynamicComponent');\n // Most edit-view fields can read the document from context, which avoids threading a\n // frequently-changing `document` prop through nested component/DZ trees and reduces churn.\n // Keep `providedDocument` as an explicit override for callers outside that default flow.\n const document = providedDocument ?? currentDocument;\n const localeKey = document?.document?.locale || 'default';\n const {\n edit: { components },\n } = useDocumentLayout(currentDocumentMeta.model);\n\n const collectionType =\n document.schema?.kind === 'collectionType' ? 'collection-types' : 'single-types';\n\n const isInDynamicZone = useDynamicZone('isInDynamicZone', (state) => state.isInDynamicZone);\n const isInPreviewPopover = useHasInputPopoverParent();\n const shouldIgnorePermissions = isInDynamicZone || isInPreviewPopover;\n\n const isFormDisabled = useForm('InputRenderer', (state) => state.disabled);\n const canCreateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canCreateFields);\n const canReadFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canReadFields);\n const canUpdateFields = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUpdateFields);\n const canUserAction = useDocumentRBAC('InputRenderer', (rbac) => rbac.canUserAction);\n\n let idToCheck = document.document?.documentId;\n if (collectionType === SINGLE_TYPES) {\n idToCheck = document?.document?.documentId;\n }\n\n const editableFields = idToCheck ? canUpdateFields : canCreateFields;\n const readableFields = idToCheck ? canReadFields : canCreateFields;\n\n // Everything preview related\n const previewProps = usePreviewInputManager(inputProps.name, inputProps.attribute);\n const props = { ...inputProps, ...previewProps };\n\n /**\n * Component fields are always readable and editable,\n * however the fields within them may not be.\n */\n const canUserReadField = canUserAction(props.name, readableFields, props.type);\n const canUserEditField = canUserAction(props.name, editableFields, props.type);\n\n const fields = useStrapiApp('InputRenderer', (app) => app.fields);\n const { lazyComponentStore } = useLazyComponents(\n attributeHasCustomFieldProperty(props.attribute) ? [props.attribute.customField] : undefined\n );\n\n const hint = useFieldHint(providedHint, props.attribute);\n const renderComponentInput = React.useCallback(\n (componentInputProps: InputRendererProps) => (\n <MemoizedInputRenderer\n key={`input-${componentInputProps.name}-${localeKey}`}\n {...componentInputProps}\n />\n ),\n [localeKey]\n );\n\n // We pass field in case of Custom Fields to keep backward compatibility\n const field = useField(props.name);\n\n if (!visible) {\n return null;\n }\n\n /**\n * If the user can't read the field then we don't want to ever render it.\n */\n if (!canUserReadField && !shouldIgnorePermissions) {\n return <NotAllowedInput hint={hint} {...props} />;\n }\n\n const fieldIsDisabled =\n (!canUserEditField && !shouldIgnorePermissions) || props.disabled || isFormDisabled;\n\n /**\n * Because a custom field has a unique prop but the type could be confused with either\n * the useField hook or the type of the field we need to handle it separately and first.\n */\n if (attributeHasCustomFieldProperty(props.attribute)) {\n const CustomInput = lazyComponentStore[props.attribute.customField];\n\n if (CustomInput) {\n return (\n <CustomInput\n {...props}\n {...field}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – this workaround lets us display that the custom field is missing.\n type={props.attribute.customField}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * This is where we handle ONLY the fields from the `useLibrary` hook.\n */\n const addedInputTypes = Object.keys(fields);\n if (!attributeHasCustomFieldProperty(props.attribute) && addedInputTypes.includes(props.type)) {\n const CustomInput = fields[props.type];\n return (\n <CustomInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n // @ts-expect-error – TODO: fix this type error in the useLazyComponents hook.\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n }\n\n /**\n * These include the content-manager specific fields, failing that we fall back\n * to the more generic form input renderer.\n */\n switch (props.type) {\n case 'blocks':\n return (\n <BlocksInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'component':\n // Preview focus/blur handlers are not used for data-structure roots (component/dynamic zone).\n // Dropping them avoids unstable function props cascading through memoized component trees.\n const { onBlur: _onComponentBlur, onFocus: _onComponentFocus, ...componentProps } = props;\n\n return (\n <ComponentInput\n key={`input-${props.name}-${localeKey}`}\n {...componentProps}\n hint={hint}\n layout={components[props.attribute.component].layout}\n disabled={fieldIsDisabled}\n >\n {renderComponentInput}\n </ComponentInput>\n );\n case 'dynamiczone':\n // Same rationale as `component` above: keep data-structure root props stable.\n const { onBlur: _onDzBlur, onFocus: _onDzFocus, ...dynamicZoneProps } = props;\n\n return (\n <DynamicZone\n key={`input-${props.name}-${localeKey}`}\n {...dynamicZoneProps}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'relation':\n return (\n <RelationsInput\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n disabled={fieldIsDisabled}\n />\n );\n case 'richtext':\n return (\n <Wysiwyg\n key={`input-${props.name}-${localeKey}`}\n {...props}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n case 'uid':\n // These props are not needed for the generic form input renderer.\n const { unique: _uniqueUID, ...restUIDProps } = props;\n return (\n <UIDInput\n key={`input-${props.name}-${localeKey}`}\n {...restUIDProps}\n hint={hint}\n type={props.type}\n disabled={fieldIsDisabled}\n />\n );\n /**\n * Enumerations are a special case because they require options.\n */\n case 'enumeration':\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...props}\n {...previewProps}\n hint={hint}\n options={props.attribute.enum.map((value) => ({ value }))}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n default:\n // These props are not needed for the generic form input renderer.\n const { unique: _unique, mainField: _mainField, ...restProps } = props;\n return (\n <FormInputRenderer\n key={`input-${props.name}-${localeKey}`}\n {...restProps}\n {...previewProps}\n hint={hint}\n // @ts-expect-error – Temp workaround so we don't forget custom-fields don't work!\n type={props.customField ? 'custom-field' : props.type}\n disabled={fieldIsDisabled}\n />\n );\n }\n};\n\n// Reuse one rules engine instance instead of recreating it for every field render.\nconst rulesEngine = createRulesEngine();\n\n/**\n * A wrapper around BaseInputRenderer that conditionally renders it depending on the attribute's condition.\n */\nconst ConditionAwareInputRenderer = ({\n condition,\n ...props\n}: InputRendererProps & { condition: JsonLogicCondition }) => {\n // Extract only the field paths the visibility rule depends on so unrelated form changes\n // do not force this conditional field to re-render.\n const conditionDependencyPaths = React.useMemo(\n () => getConditionDependencyPaths(condition),\n [condition]\n );\n const getValues = useForm(\n 'ConditionalInputRenderer',\n (state) => (state as typeof state & { getValues: () => unknown }).getValues\n );\n const conditionSubscriptionValue = useForm('ConditionalInputRenderer', (state) => {\n // Subscribe to a small, comparable snapshot of the parent scope instead of all form values.\n return getConditionDependencySubscriptionValue(\n getDirectParent(state.values, props.name),\n conditionDependencyPaths\n );\n });\n\n // When dependencies are known, read the latest parent scope lazily via getValues() so the\n // rule still evaluates against fresh data without subscribing to every form change.\n const targetValues =\n conditionDependencyPaths === null\n ? conditionSubscriptionValue\n : getDirectParent(getValues(), props.name);\n\n const isVisible = rulesEngine.evaluate(condition, targetValues);\n\n if (!isVisible) {\n return null;\n }\n\n return <BaseInputRenderer {...props} />;\n};\n\nconst attributeHasCustomFieldProperty = (\n attribute: Schema.Attribute.AnyAttribute\n): attribute is Schema.Attribute.AnyAttribute & Schema.Attribute.CustomField<string> =>\n 'customField' in attribute && typeof attribute.customField === 'string';\n\nconst useFieldHint = (\n hint: React.ReactNode = undefined,\n attribute: Schema.Attribute.AnyAttribute\n) => {\n const { formatMessage } = useIntl();\n\n const { maximum, minimum } = getMinMax(attribute);\n\n if (!maximum && !minimum) {\n return hint;\n }\n\n const units = ['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(attribute.type)\n ? formatMessage(\n {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n {\n maxValue: Math.max(minimum || 0, maximum || 0),\n }\n )\n : null;\n\n const hasMinAndMax = typeof minimum === 'number' && typeof maximum === 'number';\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: hint,\n unit: units,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: <br />,\n }\n );\n};\n\nconst getMinMax = (attribute: Schema.Attribute.AnyAttribute) => {\n if ('min' in attribute || 'max' in attribute) {\n return {\n maximum: !Number.isNaN(Number(attribute.max)) ? Number(attribute.max) : undefined,\n minimum: !Number.isNaN(Number(attribute.min)) ? Number(attribute.min) : undefined,\n };\n } else if ('maxLength' in attribute || 'minLength' in attribute) {\n return { maximum: attribute.maxLength, minimum: attribute.minLength };\n } else {\n return { maximum: undefined, minimum: undefined };\n }\n};\n\n/**\n * Conditionally routes the exported InputRender component towards ConditionalInputRenderer\n * (when there's a JSON logic condition on the attribute, or BaseInputRenderer otherwise.\n * We do this because rendering a conditional field requires access to the values of\n * other form fields, which causes many re-renders and performance issues on complex content\n * types. By splitting the component into two, we isolate the performance issue to\n * conditional fields only, not all edit view fields.\n */\nconst MemoizedInputRenderer = React.memo((props: InputRendererProps) => {\n const condition = props.attribute.conditions?.visible;\n if (condition) {\n return <ConditionAwareInputRenderer {...props} condition={condition} />;\n }\n\n return <BaseInputRenderer {...props} />;\n});\n\nexport type { InputRendererProps };\nexport { MemoizedInputRenderer as InputRenderer, useFieldHint };\n"],"names":["BaseInputRenderer","visible","hint","providedHint","document","providedDocument","inputProps","currentDocument","currentDocumentMeta","useDocumentContext","localeKey","locale","edit","components","useDocumentLayout","model","collectionType","schema","kind","isInDynamicZone","useDynamicZone","state","isInPreviewPopover","useHasInputPopoverParent","shouldIgnorePermissions","isFormDisabled","useForm","disabled","canCreateFields","useDocumentRBAC","rbac","canReadFields","canUpdateFields","canUserAction","idToCheck","documentId","SINGLE_TYPES","editableFields","readableFields","previewProps","usePreviewInputManager","name","attribute","props","canUserReadField","type","canUserEditField","fields","useStrapiApp","app","lazyComponentStore","useLazyComponents","attributeHasCustomFieldProperty","customField","undefined","useFieldHint","renderComponentInput","React","useCallback","componentInputProps","_jsx","MemoizedInputRenderer","field","useField","NotAllowedInput","fieldIsDisabled","CustomInput","FormInputRenderer","addedInputTypes","Object","keys","includes","BlocksInput","onBlur","_onComponentBlur","onFocus","_onComponentFocus","componentProps","ComponentInput","layout","component","_onDzBlur","_onDzFocus","dynamicZoneProps","DynamicZone","RelationsInput","Wysiwyg","unique","_uniqueUID","restUIDProps","UIDInput","options","enum","map","value","_unique","mainField","_mainField","restProps","rulesEngine","createRulesEngine","ConditionAwareInputRenderer","condition","conditionDependencyPaths","useMemo","getConditionDependencyPaths","getValues","conditionSubscriptionValue","getConditionDependencySubscriptionValue","getDirectParent","values","targetValues","isVisible","evaluate","formatMessage","useIntl","maximum","minimum","getMinMax","units","id","defaultMessage","maxValue","Math","max","hasMinAndMax","min","description","unit","divider","br","Number","isNaN","maxLength","minLength","memo","conditions"],"mappings":"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"}
@@ -11,7 +11,8 @@ var useDocument = require('../../../hooks/useDocument.js');
11
11
  var router = require('../../../router.js');
12
12
  var DocumentActions = require('./DocumentActions.js');
13
13
 
14
- function _interopNamespaceDefault(e) {
14
+ function _interopNamespace(e) {
15
+ if (e && e.__esModule) return e;
15
16
  var n = Object.create(null);
16
17
  if (e) {
17
18
  Object.keys(e).forEach(function (k) {
@@ -28,7 +29,7 @@ function _interopNamespaceDefault(e) {
28
29
  return Object.freeze(n);
29
30
  }
30
31
 
31
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
32
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
33
 
33
34
  const PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength })=>{
34
35
  React__namespace.useEffect(()=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Panels.js","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n useIsDesktop,\n createContext,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\ninterface PanelsItemsProps {\n panels: (PanelDescription & { id: string })[];\n setVisiblePanels:\n | React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>\n | null\n | undefined;\n visiblePanelsLength: number | undefined;\n}\n\nconst PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength }: PanelsItemsProps) => {\n React.useEffect(() => {\n if (setVisiblePanels && visiblePanelsLength !== panels.length) {\n setVisiblePanels(panels);\n }\n }, [panels, panels.length, setVisiblePanels, visiblePanelsLength]);\n\n return (\n <>\n {panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = ({ withActions = true }: { withActions?: boolean }) => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n // Optional context consumer\n const setVisiblePanels = usePanelsContext('Panels', (s) => s.setVisiblePanels, false);\n const visiblePanels = usePanelsContext('Panels', (s) => s.visiblePanels, false);\n\n const allPanels = (\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels();\n const filteredPanels = allPanels.filter((panel) => (panel as PanelComponent).type !== 'actions');\n const panelsToDisplay = withActions ? allPanels : filteredPanels;\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer props={props} descriptions={panelsToDisplay}>\n {(panels) => (\n <PanelsItems\n panels={panels}\n setVisiblePanels={setVisiblePanels}\n visiblePanelsLength={visiblePanels?.length}\n />\n )}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n const isDesktop = useIsDesktop();\n\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background={{ initial: 'transparent', large: 'neutral0' }}\n borderColor={{ initial: 'transparent', large: 'neutral150' }}\n hasRadius={isDesktop}\n padding={{ initial: 0, large: 4 }}\n shadow={{ initial: 'none', large: 'tableShadow' }}\n gap={{ initial: 4, large: 3 }}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * PanelsContext\n * -----------------------------------------------------------------------------------------------*/\n\nconst [PanelsProviderImpl, usePanelsContext] = createContext<{\n visiblePanels: (PanelDescription & { id: string })[];\n setVisiblePanels: React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>;\n}>('PanelsContext');\n\nconst PanelsProvider = ({ children }: React.PropsWithChildren) => {\n const [visiblePanels, setVisiblePanels] = React.useState<(PanelDescription & { id: string })[]>(\n []\n );\n\n return (\n <PanelsProviderImpl visiblePanels={visiblePanels} setVisiblePanels={setVisiblePanels}>\n {children}\n </PanelsProviderImpl>\n );\n};\n\nexport { Panels, ActionsPanel, ActionsPanelContent, PanelsProvider, usePanelsContext };\nexport type { PanelDescription };\n"],"names":["PanelsItems","panels","setVisiblePanels","visiblePanelsLength","React","useEffect","length","_jsx","_Fragment","map","content","id","description","Panel","Panels","withActions","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","usePanelsContext","s","visiblePanels","allPanels","apis","getEditViewSidePanels","filteredPanels","filter","panel","type","panelsToDisplay","props","activeTab","documentId","undefined","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","forwardRef","children","ref","isDesktop","useIsDesktop","tag","aria-labelledby","background","initial","large","borderColor","hasRadius","padding","shadow","justifyContent","Typography","variant","textTransform","textColor","PanelsProviderImpl","createContext","PanelsProvider","useState"],"mappings":"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"}
1
+ {"version":3,"file":"Panels.js","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n useIsDesktop,\n createContext,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\ninterface PanelsItemsProps {\n panels: (PanelDescription & { id: string })[];\n setVisiblePanels:\n | React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>\n | null\n | undefined;\n visiblePanelsLength: number | undefined;\n}\n\nconst PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength }: PanelsItemsProps) => {\n React.useEffect(() => {\n if (setVisiblePanels && visiblePanelsLength !== panels.length) {\n setVisiblePanels(panels);\n }\n }, [panels, panels.length, setVisiblePanels, visiblePanelsLength]);\n\n return (\n <>\n {panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = ({ withActions = true }: { withActions?: boolean }) => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n // Optional context consumer\n const setVisiblePanels = usePanelsContext('Panels', (s) => s.setVisiblePanels, false);\n const visiblePanels = usePanelsContext('Panels', (s) => s.visiblePanels, false);\n\n const allPanels = (\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels();\n const filteredPanels = allPanels.filter((panel) => (panel as PanelComponent).type !== 'actions');\n const panelsToDisplay = withActions ? allPanels : filteredPanels;\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer props={props} descriptions={panelsToDisplay}>\n {(panels) => (\n <PanelsItems\n panels={panels}\n setVisiblePanels={setVisiblePanels}\n visiblePanelsLength={visiblePanels?.length}\n />\n )}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n const isDesktop = useIsDesktop();\n\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background={{ initial: 'transparent', large: 'neutral0' }}\n borderColor={{ initial: 'transparent', large: 'neutral150' }}\n hasRadius={isDesktop}\n padding={{ initial: 0, large: 4 }}\n shadow={{ initial: 'none', large: 'tableShadow' }}\n gap={{ initial: 4, large: 3 }}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * PanelsContext\n * -----------------------------------------------------------------------------------------------*/\n\nconst [PanelsProviderImpl, usePanelsContext] = createContext<{\n visiblePanels: (PanelDescription & { id: string })[];\n setVisiblePanels: React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>;\n}>('PanelsContext');\n\nconst PanelsProvider = ({ children }: React.PropsWithChildren) => {\n const [visiblePanels, setVisiblePanels] = React.useState<(PanelDescription & { id: string })[]>(\n []\n );\n\n return (\n <PanelsProviderImpl visiblePanels={visiblePanels} setVisiblePanels={setVisiblePanels}>\n {children}\n </PanelsProviderImpl>\n );\n};\n\nexport { Panels, ActionsPanel, ActionsPanelContent, PanelsProvider, usePanelsContext };\nexport type { PanelDescription };\n"],"names":["PanelsItems","panels","setVisiblePanels","visiblePanelsLength","React","useEffect","length","_jsx","_Fragment","map","content","id","description","Panel","Panels","withActions","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","usePanelsContext","s","visiblePanels","allPanels","apis","getEditViewSidePanels","filteredPanels","filter","panel","type","panelsToDisplay","props","activeTab","documentId","undefined","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","forwardRef","children","ref","isDesktop","useIsDesktop","tag","aria-labelledby","background","initial","large","borderColor","hasRadius","padding","shadow","justifyContent","Typography","variant","textTransform","textColor","PanelsProviderImpl","createContext","PanelsProvider","useState"],"mappings":"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"}
@@ -5,6 +5,10 @@ var fractionalIndexing = require('fractional-indexing');
5
5
  var pipe = require('lodash/fp/pipe');
6
6
  var attributes = require('../../../constants/attributes.js');
7
7
 
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var pipe__default = /*#__PURE__*/_interopDefault(pipe);
11
+
8
12
  const BLOCK_LIST_ATTRIBUTE_KEYS = [
9
13
  '__component',
10
14
  '__temp_key__'
@@ -143,7 +147,7 @@ const BLOCK_LIST_ATTRIBUTE_KEYS = [
143
147
  * and applies consistent data transformations to it. This is also used when we add new components to the
144
148
  * form to ensure the data is correctly prepared from their default state e.g. relations are set to an empty array.
145
149
  */ const transformDocument = (schema, components = {})=>(document)=>{
146
- const transformations = pipe(removeFieldsThatDontExistOnSchema(schema), removeProhibitedFields([
150
+ const transformations = pipe__default.default(removeFieldsThatDontExistOnSchema(schema), removeProhibitedFields([
147
151
  'password'
148
152
  ])(schema, components), removeNullValues(schema, components), prepareRelations(schema, components), prepareTempKeys(schema, components));
149
153
  return transformations(document);