@strapi/content-type-builder 5.13.1 → 5.15.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 (510) hide show
  1. package/dist/admin/components/AttributeIcon.js +1 -0
  2. package/dist/admin/components/AttributeIcon.js.map +1 -1
  3. package/dist/admin/components/AttributeIcon.mjs +1 -0
  4. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  5. package/dist/admin/components/AttributeOptions/AttributeOption.js +1 -1
  6. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  7. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +1 -1
  8. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  9. package/dist/admin/components/AttributeOptions/CustomFieldOption.js +1 -1
  10. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
  11. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +1 -1
  12. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
  13. package/dist/admin/components/AttributeRow.js +342 -0
  14. package/dist/admin/components/AttributeRow.js.map +1 -0
  15. package/dist/admin/components/AttributeRow.mjs +339 -0
  16. package/dist/admin/components/AttributeRow.mjs.map +1 -0
  17. package/dist/admin/components/AutoReloadOverlayBlocker.js +5 -2
  18. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
  19. package/dist/admin/components/AutoReloadOverlayBlocker.mjs +5 -2
  20. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
  21. package/dist/admin/components/ComponentCard/ComponentCard.js +13 -11
  22. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  23. package/dist/admin/components/ComponentCard/ComponentCard.mjs +13 -11
  24. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  25. package/dist/admin/components/ComponentList.js +12 -26
  26. package/dist/admin/components/ComponentList.js.map +1 -1
  27. package/dist/admin/components/ComponentList.mjs +12 -26
  28. package/dist/admin/components/ComponentList.mjs.map +1 -1
  29. package/dist/admin/components/{Tr.js → ComponentRow.js} +9 -15
  30. package/dist/admin/components/ComponentRow.js.map +1 -0
  31. package/dist/admin/components/{Tr.mjs → ComponentRow.mjs} +9 -15
  32. package/dist/admin/components/ComponentRow.mjs.map +1 -0
  33. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +253 -70
  34. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  35. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +256 -73
  36. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  37. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +53 -81
  38. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  39. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +54 -82
  40. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  41. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
  42. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
  43. package/dist/admin/components/DataManager/DataManagerProvider.js +344 -0
  44. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
  45. package/dist/admin/components/DataManager/DataManagerProvider.mjs +323 -0
  46. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
  47. package/dist/admin/components/DataManager/reducer.js +546 -0
  48. package/dist/admin/components/DataManager/reducer.js.map +1 -0
  49. package/dist/admin/components/DataManager/reducer.mjs +542 -0
  50. package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
  51. package/dist/admin/components/DataManager/undoRedo.js +102 -0
  52. package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
  53. package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
  54. package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
  55. package/dist/admin/{hooks → components/DataManager}/useDataManager.js +1 -1
  56. package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
  57. package/dist/admin/{hooks → components/DataManager}/useDataManager.mjs +1 -1
  58. package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
  59. package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
  60. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
  61. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
  62. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
  63. package/dist/admin/components/DataManager/utils/cleanData.js +128 -0
  64. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
  65. package/dist/admin/components/DataManager/utils/cleanData.mjs +125 -0
  66. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
  67. package/dist/admin/components/DataManager/utils/formatSchemas.js +21 -0
  68. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +1 -0
  69. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +18 -0
  70. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +1 -0
  71. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.js +1 -5
  72. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
  73. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.mjs +1 -5
  74. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
  75. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.js +3 -3
  76. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
  77. package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.mjs +3 -3
  78. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
  79. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
  80. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
  81. package/dist/admin/components/DisplayedType.js +14 -14
  82. package/dist/admin/components/DisplayedType.js.map +1 -1
  83. package/dist/admin/components/DisplayedType.mjs +15 -15
  84. package/dist/admin/components/DisplayedType.mjs.map +1 -1
  85. package/dist/admin/components/DynamicZoneList.js +34 -38
  86. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  87. package/dist/admin/components/DynamicZoneList.mjs +36 -40
  88. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  89. package/dist/admin/components/ExitPrompt.js +50 -0
  90. package/dist/admin/components/ExitPrompt.js.map +1 -0
  91. package/dist/admin/components/ExitPrompt.mjs +48 -0
  92. package/dist/admin/components/ExitPrompt.mjs.map +1 -0
  93. package/dist/admin/components/{NestedFooter.js → Footers.js} +35 -2
  94. package/dist/admin/components/Footers.js.map +1 -0
  95. package/dist/admin/components/{NestedFooter.mjs → Footers.mjs} +36 -4
  96. package/dist/admin/components/Footers.mjs.map +1 -0
  97. package/dist/admin/components/FormModal/FormModal.js +198 -164
  98. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  99. package/dist/admin/components/FormModal/FormModal.mjs +198 -165
  100. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  101. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  102. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  103. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  104. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  105. package/dist/admin/components/FormModal/component/createComponentSchema.js +2 -2
  106. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  107. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
  108. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
  109. package/dist/admin/components/FormModal/forms/forms.js +10 -27
  110. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  111. package/dist/admin/components/FormModal/forms/forms.mjs +10 -27
  112. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  113. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  114. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  115. package/dist/admin/components/FormModal/reducer.js +4 -4
  116. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  117. package/dist/admin/components/FormModal/reducer.mjs +4 -4
  118. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  119. package/dist/admin/components/FormModal/utils/canEditContentType.js +9 -14
  120. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  121. package/dist/admin/components/FormModal/utils/canEditContentType.mjs +9 -14
  122. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  123. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
  124. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
  125. package/dist/admin/components/FormModalEndActions.js +1 -34
  126. package/dist/admin/components/FormModalEndActions.js.map +1 -1
  127. package/dist/admin/components/FormModalEndActions.mjs +1 -34
  128. package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
  129. package/dist/admin/components/FormModalHeader.js +10 -28
  130. package/dist/admin/components/FormModalHeader.js.map +1 -1
  131. package/dist/admin/components/FormModalHeader.mjs +10 -28
  132. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  133. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
  134. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
  135. package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.js +91 -114
  136. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
  137. package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.mjs +91 -96
  138. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
  139. package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.js +1 -1
  140. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
  141. package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.mjs +1 -1
  142. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
  143. package/dist/admin/components/FormModalSubHeader.js.map +1 -1
  144. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
  145. package/dist/admin/components/GenericInputs.js +9 -5
  146. package/dist/admin/components/GenericInputs.js.map +1 -1
  147. package/dist/admin/components/GenericInputs.mjs +9 -5
  148. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  149. package/dist/admin/components/List.js +149 -199
  150. package/dist/admin/components/List.js.map +1 -1
  151. package/dist/admin/components/List.mjs +151 -202
  152. package/dist/admin/components/List.mjs.map +1 -1
  153. package/dist/admin/components/Relation/Relation.js +3 -2
  154. package/dist/admin/components/Relation/Relation.js.map +1 -1
  155. package/dist/admin/components/Relation/Relation.mjs +3 -2
  156. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  157. package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
  158. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  159. package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
  160. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  161. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +6 -5
  162. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
  163. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +6 -5
  164. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
  165. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +19 -21
  166. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
  167. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +19 -21
  168. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
  169. package/dist/admin/components/SelectCategory.js +1 -1
  170. package/dist/admin/components/SelectCategory.js.map +1 -1
  171. package/dist/admin/components/SelectCategory.mjs +1 -1
  172. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  173. package/dist/admin/components/SelectComponent.js +3 -6
  174. package/dist/admin/components/SelectComponent.js.map +1 -1
  175. package/dist/admin/components/SelectComponent.mjs +3 -6
  176. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  177. package/dist/admin/components/SelectComponents.js +9 -6
  178. package/dist/admin/components/SelectComponents.js.map +1 -1
  179. package/dist/admin/components/SelectComponents.mjs +9 -6
  180. package/dist/admin/components/SelectComponents.mjs.map +1 -1
  181. package/dist/admin/components/SelectNumber.js +0 -4
  182. package/dist/admin/components/SelectNumber.js.map +1 -1
  183. package/dist/admin/components/SelectNumber.mjs +0 -4
  184. package/dist/admin/components/SelectNumber.mjs.map +1 -1
  185. package/dist/admin/components/Status.js +73 -0
  186. package/dist/admin/components/Status.js.map +1 -0
  187. package/dist/admin/components/Status.mjs +70 -0
  188. package/dist/admin/components/Status.mjs.map +1 -0
  189. package/dist/admin/components/TabForm.js +2 -1
  190. package/dist/admin/components/TabForm.js.map +1 -1
  191. package/dist/admin/components/TabForm.mjs +2 -1
  192. package/dist/admin/components/TabForm.mjs.map +1 -1
  193. package/dist/admin/icons/Curve.js +1 -1
  194. package/dist/admin/icons/Curve.js.map +1 -1
  195. package/dist/admin/icons/Curve.mjs +1 -1
  196. package/dist/admin/icons/Curve.mjs.map +1 -1
  197. package/dist/admin/pages/App/index.js +39 -19
  198. package/dist/admin/pages/App/index.js.map +1 -1
  199. package/dist/admin/pages/App/index.mjs +41 -21
  200. package/dist/admin/pages/App/index.mjs.map +1 -1
  201. package/dist/admin/pages/ListView/EmptyState.js +38 -0
  202. package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
  203. package/dist/admin/pages/ListView/EmptyState.mjs +36 -0
  204. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
  205. package/dist/admin/pages/ListView/LinkToCMSettingsView.js +26 -17
  206. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
  207. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +26 -17
  208. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
  209. package/dist/admin/pages/ListView/ListView.js +105 -158
  210. package/dist/admin/pages/ListView/ListView.js.map +1 -1
  211. package/dist/admin/pages/ListView/ListView.mjs +110 -163
  212. package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
  213. package/dist/admin/reducers.js +3 -4
  214. package/dist/admin/reducers.js.map +1 -1
  215. package/dist/admin/reducers.mjs +3 -4
  216. package/dist/admin/reducers.mjs.map +1 -1
  217. package/dist/admin/src/components/AttributeRow.d.ts +28 -0
  218. package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +2 -2
  219. package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +5 -1
  220. package/dist/admin/src/components/ComponentList.d.ts +4 -6
  221. package/dist/admin/src/components/{BoxWrapper.d.ts → ComponentRow.d.ts} +5 -2
  222. package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +29 -14
  223. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +138 -0
  224. package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
  225. package/dist/admin/src/components/DataManager/reducer.d.ts +278 -0
  226. package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
  227. package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
  228. package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
  229. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +311 -0
  230. package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +3 -0
  231. package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.d.ts +3 -3
  232. package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.d.ts +4 -4
  233. package/dist/admin/src/components/DisplayedType.d.ts +2 -1
  234. package/dist/admin/src/components/DynamicZoneList.d.ts +8 -5
  235. package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
  236. package/dist/admin/src/components/{NestedFooter.d.ts → Footers.d.ts} +5 -1
  237. package/dist/admin/src/components/FormModal/forms/forms.d.ts +2 -38
  238. package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +3 -2
  239. package/dist/admin/src/components/FormModal/reducer.d.ts +10 -4
  240. package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +4 -4
  241. package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +1 -1
  242. package/dist/admin/src/components/FormModalEndActions.d.ts +1 -5
  243. package/dist/admin/src/components/FormModalHeader.d.ts +10 -7
  244. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
  245. package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +54 -0
  246. package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
  247. package/dist/admin/src/components/FormModalSubHeader.d.ts +3 -3
  248. package/dist/admin/src/components/GenericInputs.d.ts +2 -1
  249. package/dist/admin/src/components/List.d.ts +16 -13
  250. package/dist/admin/src/components/Relation/Relation.d.ts +2 -1
  251. package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +2 -1
  252. package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +3 -2
  253. package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +2 -1
  254. package/dist/admin/src/components/SelectComponents.d.ts +3 -1
  255. package/dist/admin/src/components/SelectNumber.d.ts +1 -7
  256. package/dist/admin/src/components/Status.d.ts +6 -0
  257. package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
  258. package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +3 -4
  259. package/dist/admin/src/pages/ListView/ListView.d.ts +1 -1
  260. package/dist/admin/src/reducers.d.ts +2 -8
  261. package/dist/admin/src/types.d.ts +40 -43
  262. package/dist/admin/src/utils/findAttribute.d.ts +2 -2
  263. package/dist/admin/src/utils/formAPI.d.ts +43 -1
  264. package/dist/admin/src/utils/getMaxDepth.d.ts +2 -2
  265. package/dist/admin/src/utils/getRelationType.d.ts +1 -1
  266. package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
  267. package/dist/admin/translations/de.json.js +0 -1
  268. package/dist/admin/translations/de.json.js.map +1 -1
  269. package/dist/admin/translations/de.json.mjs +0 -1
  270. package/dist/admin/translations/de.json.mjs.map +1 -1
  271. package/dist/admin/translations/dk.json.js +0 -1
  272. package/dist/admin/translations/dk.json.js.map +1 -1
  273. package/dist/admin/translations/dk.json.mjs +0 -1
  274. package/dist/admin/translations/dk.json.mjs.map +1 -1
  275. package/dist/admin/translations/en.json.js +4 -2
  276. package/dist/admin/translations/en.json.js.map +1 -1
  277. package/dist/admin/translations/en.json.mjs +4 -2
  278. package/dist/admin/translations/en.json.mjs.map +1 -1
  279. package/dist/admin/translations/es.json.js +0 -1
  280. package/dist/admin/translations/es.json.js.map +1 -1
  281. package/dist/admin/translations/es.json.mjs +0 -1
  282. package/dist/admin/translations/es.json.mjs.map +1 -1
  283. package/dist/admin/translations/ko.json.js +0 -1
  284. package/dist/admin/translations/ko.json.js.map +1 -1
  285. package/dist/admin/translations/ko.json.mjs +0 -1
  286. package/dist/admin/translations/ko.json.mjs.map +1 -1
  287. package/dist/admin/translations/pl.json.js +0 -1
  288. package/dist/admin/translations/pl.json.js.map +1 -1
  289. package/dist/admin/translations/pl.json.mjs +0 -1
  290. package/dist/admin/translations/pl.json.mjs.map +1 -1
  291. package/dist/admin/translations/pt-BR.json.js +0 -1
  292. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  293. package/dist/admin/translations/pt-BR.json.mjs +0 -1
  294. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  295. package/dist/admin/translations/sv.json.js +0 -1
  296. package/dist/admin/translations/sv.json.js.map +1 -1
  297. package/dist/admin/translations/sv.json.mjs +0 -1
  298. package/dist/admin/translations/sv.json.mjs.map +1 -1
  299. package/dist/admin/translations/tr.json.js +0 -1
  300. package/dist/admin/translations/tr.json.js.map +1 -1
  301. package/dist/admin/translations/tr.json.mjs +0 -1
  302. package/dist/admin/translations/tr.json.mjs.map +1 -1
  303. package/dist/admin/translations/zh.json.js +0 -1
  304. package/dist/admin/translations/zh.json.js.map +1 -1
  305. package/dist/admin/translations/zh.json.mjs +0 -1
  306. package/dist/admin/translations/zh.json.mjs.map +1 -1
  307. package/dist/admin/utils/findAttribute.js.map +1 -1
  308. package/dist/admin/utils/findAttribute.mjs.map +1 -1
  309. package/dist/admin/utils/formAPI.js +0 -1
  310. package/dist/admin/utils/formAPI.js.map +1 -1
  311. package/dist/admin/utils/formAPI.mjs +0 -1
  312. package/dist/admin/utils/formAPI.mjs.map +1 -1
  313. package/dist/admin/utils/getMaxDepth.js.map +1 -1
  314. package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
  315. package/dist/admin/utils/getRelationType.js.map +1 -1
  316. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  317. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
  318. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
  319. package/dist/server/controllers/index.js +3 -1
  320. package/dist/server/controllers/index.js.map +1 -1
  321. package/dist/server/controllers/index.mjs +3 -1
  322. package/dist/server/controllers/index.mjs.map +1 -1
  323. package/dist/server/controllers/schema.js +55 -0
  324. package/dist/server/controllers/schema.js.map +1 -0
  325. package/dist/server/controllers/schema.mjs +53 -0
  326. package/dist/server/controllers/schema.mjs.map +1 -0
  327. package/dist/server/controllers/validation/common.js +2 -0
  328. package/dist/server/controllers/validation/common.js.map +1 -1
  329. package/dist/server/controllers/validation/common.mjs +2 -1
  330. package/dist/server/controllers/validation/common.mjs.map +1 -1
  331. package/dist/server/controllers/validation/content-type.js.map +1 -1
  332. package/dist/server/controllers/validation/content-type.mjs.map +1 -1
  333. package/dist/server/controllers/validation/schema.js +612 -0
  334. package/dist/server/controllers/validation/schema.js.map +1 -0
  335. package/dist/server/controllers/validation/schema.mjs +610 -0
  336. package/dist/server/controllers/validation/schema.mjs.map +1 -0
  337. package/dist/server/routes/admin.js +51 -0
  338. package/dist/server/routes/admin.js.map +1 -1
  339. package/dist/server/routes/admin.mjs +51 -0
  340. package/dist/server/routes/admin.mjs.map +1 -1
  341. package/dist/server/services/index.js +3 -1
  342. package/dist/server/services/index.js.map +1 -1
  343. package/dist/server/services/index.mjs +3 -1
  344. package/dist/server/services/index.mjs.map +1 -1
  345. package/dist/server/services/schema-builder/component-builder.js +12 -2
  346. package/dist/server/services/schema-builder/component-builder.js.map +1 -1
  347. package/dist/server/services/schema-builder/component-builder.mjs +12 -2
  348. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
  349. package/dist/server/services/schema-builder/content-type-builder.js +43 -28
  350. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  351. package/dist/server/services/schema-builder/content-type-builder.mjs +43 -28
  352. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  353. package/dist/server/services/schema-builder/index.js +51 -49
  354. package/dist/server/services/schema-builder/index.js.map +1 -1
  355. package/dist/server/services/schema-builder/index.mjs +51 -49
  356. package/dist/server/services/schema-builder/index.mjs.map +1 -1
  357. package/dist/server/services/schema.js +246 -0
  358. package/dist/server/services/schema.js.map +1 -0
  359. package/dist/server/services/schema.mjs +242 -0
  360. package/dist/server/services/schema.mjs.map +1 -0
  361. package/dist/server/src/controllers/index.d.ts +5 -0
  362. package/dist/server/src/controllers/index.d.ts.map +1 -1
  363. package/dist/server/src/controllers/schema.d.ts +8 -0
  364. package/dist/server/src/controllers/schema.d.ts.map +1 -0
  365. package/dist/server/src/controllers/validation/common.d.ts +1 -0
  366. package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
  367. package/dist/server/src/controllers/validation/content-type.d.ts +3 -2
  368. package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
  369. package/dist/server/src/controllers/validation/schema.d.ts +81514 -0
  370. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
  371. package/dist/server/src/index.d.ts +6 -0
  372. package/dist/server/src/index.d.ts.map +1 -1
  373. package/dist/server/src/routes/admin.d.ts.map +1 -1
  374. package/dist/server/src/services/index.d.ts +2 -0
  375. package/dist/server/src/services/index.d.ts.map +1 -1
  376. package/dist/server/src/services/schema-builder/component-builder.d.ts +1 -0
  377. package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
  378. package/dist/server/src/services/schema-builder/content-type-builder.d.ts +2 -3
  379. package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
  380. package/dist/server/src/services/schema-builder/index.d.ts +3 -0
  381. package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
  382. package/dist/server/src/services/schema.d.ts +2756 -0
  383. package/dist/server/src/services/schema.d.ts.map +1 -0
  384. package/dist/server/src/utils/index.d.ts +2 -0
  385. package/dist/server/src/utils/index.d.ts.map +1 -1
  386. package/dist/server/utils/index.js.map +1 -1
  387. package/dist/server/utils/index.mjs.map +1 -1
  388. package/package.json +14 -9
  389. package/dist/admin/components/BoxWrapper.js +0 -44
  390. package/dist/admin/components/BoxWrapper.js.map +0 -1
  391. package/dist/admin/components/BoxWrapper.mjs +0 -42
  392. package/dist/admin/components/BoxWrapper.mjs.map +0 -1
  393. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +0 -520
  394. package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +0 -1
  395. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +0 -518
  396. package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +0 -1
  397. package/dist/admin/components/DataManagerProvider/reducer.js +0 -583
  398. package/dist/admin/components/DataManagerProvider/reducer.js.map +0 -1
  399. package/dist/admin/components/DataManagerProvider/reducer.mjs +0 -579
  400. package/dist/admin/components/DataManagerProvider/reducer.mjs.map +0 -1
  401. package/dist/admin/components/DataManagerProvider/selectors.js +0 -20
  402. package/dist/admin/components/DataManagerProvider/selectors.js.map +0 -1
  403. package/dist/admin/components/DataManagerProvider/selectors.mjs +0 -17
  404. package/dist/admin/components/DataManagerProvider/selectors.mjs.map +0 -1
  405. package/dist/admin/components/DataManagerProvider/utils/cleanData.js +0 -126
  406. package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +0 -1
  407. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +0 -120
  408. package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +0 -1
  409. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +0 -9
  410. package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +0 -1
  411. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +0 -7
  412. package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +0 -1
  413. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +0 -20
  414. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +0 -1
  415. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +0 -18
  416. package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +0 -1
  417. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +0 -30
  418. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +0 -1
  419. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +0 -27
  420. package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +0 -1
  421. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +0 -46
  422. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +0 -1
  423. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +0 -44
  424. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +0 -1
  425. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +0 -1
  426. package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +0 -1
  427. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +0 -1
  428. package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +0 -1
  429. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +0 -1
  430. package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +0 -1
  431. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +0 -37
  432. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +0 -1
  433. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +0 -35
  434. package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +0 -1
  435. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +0 -9
  436. package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +0 -1
  437. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +0 -7
  438. package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +0 -1
  439. package/dist/admin/components/FormModal/category/createCategorySchema.js +0 -43
  440. package/dist/admin/components/FormModal/category/createCategorySchema.js.map +0 -1
  441. package/dist/admin/components/FormModal/category/createCategorySchema.mjs +0 -22
  442. package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +0 -1
  443. package/dist/admin/components/FormModal/category/form.js +0 -34
  444. package/dist/admin/components/FormModal/category/form.js.map +0 -1
  445. package/dist/admin/components/FormModal/category/form.mjs +0 -32
  446. package/dist/admin/components/FormModal/category/form.mjs.map +0 -1
  447. package/dist/admin/components/FormModal/category/regex.js +0 -6
  448. package/dist/admin/components/FormModal/category/regex.js.map +0 -1
  449. package/dist/admin/components/FormModal/category/regex.mjs +0 -4
  450. package/dist/admin/components/FormModal/category/regex.mjs.map +0 -1
  451. package/dist/admin/components/FormModal/selectors.js +0 -20
  452. package/dist/admin/components/FormModal/selectors.js.map +0 -1
  453. package/dist/admin/components/FormModal/selectors.mjs +0 -17
  454. package/dist/admin/components/FormModal/selectors.mjs.map +0 -1
  455. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +0 -1
  456. package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +0 -1
  457. package/dist/admin/components/FormModalNavigationProvider/constants.js +0 -21
  458. package/dist/admin/components/FormModalNavigationProvider/constants.js.map +0 -1
  459. package/dist/admin/components/FormModalNavigationProvider/constants.mjs +0 -19
  460. package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +0 -1
  461. package/dist/admin/components/ListRow.js +0 -164
  462. package/dist/admin/components/ListRow.js.map +0 -1
  463. package/dist/admin/components/ListRow.mjs +0 -161
  464. package/dist/admin/components/ListRow.mjs.map +0 -1
  465. package/dist/admin/components/NestedFooter.js.map +0 -1
  466. package/dist/admin/components/NestedFooter.mjs.map +0 -1
  467. package/dist/admin/components/Tr.js.map +0 -1
  468. package/dist/admin/components/Tr.mjs.map +0 -1
  469. package/dist/admin/components/UpperFirst.js +0 -11
  470. package/dist/admin/components/UpperFirst.js.map +0 -1
  471. package/dist/admin/components/UpperFirst.mjs +0 -9
  472. package/dist/admin/components/UpperFirst.mjs.map +0 -1
  473. package/dist/admin/contexts/DataManagerContext.js.map +0 -1
  474. package/dist/admin/contexts/DataManagerContext.mjs.map +0 -1
  475. package/dist/admin/contexts/FormModalNavigationContext.js.map +0 -1
  476. package/dist/admin/contexts/FormModalNavigationContext.mjs.map +0 -1
  477. package/dist/admin/hooks/useDataManager.js.map +0 -1
  478. package/dist/admin/hooks/useDataManager.mjs.map +0 -1
  479. package/dist/admin/hooks/useFormModalNavigation.js.map +0 -1
  480. package/dist/admin/hooks/useFormModalNavigation.mjs.map +0 -1
  481. package/dist/admin/src/components/DataManagerProvider/DataManagerProvider.d.ts +0 -6
  482. package/dist/admin/src/components/DataManagerProvider/reducer.d.ts +0 -103
  483. package/dist/admin/src/components/DataManagerProvider/selectors.d.ts +0 -17
  484. package/dist/admin/src/components/DataManagerProvider/utils/cleanData.d.ts +0 -23
  485. package/dist/admin/src/components/DataManagerProvider/utils/createDataObject.d.ts +0 -2
  486. package/dist/admin/src/components/DataManagerProvider/utils/createModifiedDataSchema.d.ts +0 -6
  487. package/dist/admin/src/components/DataManagerProvider/utils/formatSchemas.d.ts +0 -6
  488. package/dist/admin/src/components/DataManagerProvider/utils/retrieveComponentsFromSchema.d.ts +0 -4
  489. package/dist/admin/src/components/DataManagerProvider/utils/serverRestartWatcher.d.ts +0 -6
  490. package/dist/admin/src/components/DataManagerProvider/utils/validateSchema.d.ts +0 -1
  491. package/dist/admin/src/components/FormModal/category/createCategorySchema.d.ts +0 -5
  492. package/dist/admin/src/components/FormModal/category/form.d.ts +0 -20
  493. package/dist/admin/src/components/FormModal/category/regex.d.ts +0 -1
  494. package/dist/admin/src/components/FormModal/selectors.d.ts +0 -16
  495. package/dist/admin/src/components/FormModalNavigationProvider/FormModalNavigationProvider.d.ts +0 -22
  496. package/dist/admin/src/components/FormModalNavigationProvider/constants.d.ts +0 -17
  497. package/dist/admin/src/components/ListRow.d.ts +0 -27
  498. package/dist/admin/src/components/Tr.d.ts +0 -5
  499. package/dist/admin/src/components/UpperFirst.d.ts +0 -3
  500. package/dist/admin/src/contexts/DataManagerContext.d.ts +0 -41
  501. package/dist/admin/src/contexts/FormModalNavigationContext.d.ts +0 -40
  502. package/dist/admin/src/hooks/useDataManager.d.ts +0 -1
  503. package/dist/admin/src/hooks/useFormModalNavigation.d.ts +0 -1
  504. /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.js +0 -0
  505. /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.mjs +0 -0
  506. /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.js +0 -0
  507. /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.mjs +0 -0
  508. /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.js +0 -0
  509. /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.mjs +0 -0
  510. /package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.d.ts +0 -0
@@ -1,518 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { memo, useRef, useEffect, useMemo } from 'react';
3
- import { useNotification, useGuidedTour, useStrapiApp, useAppInfo, useTracking, useAuth, useFetchClient } from '@strapi/admin/strapi-admin';
4
- import get from 'lodash/get';
5
- import groupBy from 'lodash/groupBy';
6
- import set from 'lodash/set';
7
- import size from 'lodash/size';
8
- import { useIntl } from 'react-intl';
9
- import { useDispatch, useSelector } from 'react-redux';
10
- import { useLocation, useMatch, Navigate } from 'react-router-dom';
11
- import { DataManagerContext } from '../../contexts/DataManagerContext.mjs';
12
- import { useFormModalNavigation } from '../../hooks/useFormModalNavigation.mjs';
13
- import { pluginId } from '../../pluginId.mjs';
14
- import { getTrad } from '../../utils/getTrad.mjs';
15
- import { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker.mjs';
16
- import { FormModal } from '../FormModal/FormModal.mjs';
17
- import { actions } from './reducer.mjs';
18
- import { makeSelectDataManagerProvider } from './selectors.mjs';
19
- import { sortContentType, getComponentsToPost, formatMainDataType } from './utils/cleanData.mjs';
20
- import { createDataObject } from './utils/createDataObject.mjs';
21
- import { createModifiedDataSchema } from './utils/createModifiedDataSchema.mjs';
22
- import { formatSchemas } from './utils/formatSchemas.mjs';
23
- import { retrieveComponentsFromSchema } from './utils/retrieveComponentsFromSchema.mjs';
24
- import { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents.mjs';
25
- import { retrieveNestedComponents } from './utils/retrieveNestedComponents.mjs';
26
- import { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents.mjs';
27
- import { serverRestartWatcher } from './utils/serverRestartWatcher.mjs';
28
- import { validateSchema } from './utils/validateSchema.mjs';
29
-
30
- const DataManagerProvider = ({ children })=>{
31
- const dispatch = useDispatch();
32
- // refactor
33
- const { components, contentTypes, isLoading, initialData, modifiedData, reservedNames } = useSelector(makeSelectDataManagerProvider());
34
- const { toggleNotification } = useNotification();
35
- const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();
36
- const { setCurrentStep, setStepState } = useGuidedTour('DataManagerProvider', (state)=>state);
37
- const getPlugin = useStrapiApp('DataManagerProvider', (state)=>state.getPlugin);
38
- const plugin = getPlugin(pluginId);
39
- const autoReload = useAppInfo('DataManagerProvider', (state)=>state.autoReload);
40
- const { formatMessage } = useIntl();
41
- const { trackUsage } = useTracking();
42
- const refetchPermissions = useAuth('DataManagerProvider', (state)=>state.refetchPermissions);
43
- const { pathname } = useLocation();
44
- const { onCloseModal } = useFormModalNavigation();
45
- const contentTypeMatch = useMatch(`/plugins/${pluginId}/content-types/:uid`);
46
- const componentMatch = useMatch(`/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`);
47
- const fetchClient = useFetchClient();
48
- const { put, post, del } = fetchClient;
49
- const isInDevelopmentMode = autoReload;
50
- const isInContentTypeView = contentTypeMatch !== null;
51
- const firstKeyToMainSchema = isInContentTypeView ? 'contentType' : 'component';
52
- const currentUid = isInContentTypeView ? get(contentTypeMatch, 'params.uid', null) : get(componentMatch, 'params.componentUid', null);
53
- const getDataRef = useRef();
54
- const endPoint = isInContentTypeView ? 'content-types' : 'components';
55
- getDataRef.current = async ()=>{
56
- try {
57
- const [componentsResponse, contentTypesResponse, reservedNamesResponse] = await Promise.all([
58
- fetchClient.get(`/content-type-builder/components`),
59
- fetchClient.get(`/content-type-builder/content-types`),
60
- fetchClient.get(`/content-type-builder/reserved-names`)
61
- ]);
62
- const components = createDataObject(componentsResponse.data.data);
63
- const formattedComponents = formatSchemas(components);
64
- const contentTypes = createDataObject(contentTypesResponse.data.data);
65
- const formattedContentTypes = formatSchemas(contentTypes);
66
- dispatch(actions.init({
67
- components: formattedComponents,
68
- contentTypes: formattedContentTypes,
69
- reservedNames: reservedNamesResponse.data
70
- }));
71
- } catch (err) {
72
- console.error({
73
- err
74
- });
75
- toggleNotification({
76
- type: 'danger',
77
- message: formatMessage({
78
- id: 'notification.error',
79
- defaultMessage: 'An error occurred'
80
- })
81
- });
82
- }
83
- };
84
- useEffect(()=>{
85
- getDataRef.current();
86
- return ()=>{
87
- // Reload the plugin so the cycle is new again
88
- dispatch(actions.reloadPlugin());
89
- };
90
- // eslint-disable-next-line react-hooks/exhaustive-deps
91
- }, []);
92
- useEffect(()=>{
93
- // We need to set the modifiedData after the data has been retrieved
94
- // and also on pathname change
95
- if (!isLoading && currentUid) {
96
- setModifiedData();
97
- }
98
- // eslint-disable-next-line react-hooks/exhaustive-deps
99
- }, [
100
- isLoading,
101
- pathname,
102
- currentUid
103
- ]);
104
- useEffect(()=>{
105
- if (!autoReload) {
106
- toggleNotification({
107
- type: 'info',
108
- message: formatMessage({
109
- id: getTrad('notification.info.autoreaload-disable')
110
- })
111
- });
112
- }
113
- }, [
114
- autoReload,
115
- toggleNotification,
116
- formatMessage
117
- ]);
118
- const addAttribute = (attributeToSet, forTarget, targetUid, isEditing = false, initialAttribute, shouldAddComponentToData = false)=>{
119
- if (isEditing) {
120
- const payload = {
121
- attributeToSet,
122
- forTarget,
123
- targetUid,
124
- // NOTE: using ! here to avoid changing the code logic before bigger refactorings
125
- initialAttribute: initialAttribute,
126
- shouldAddComponentToData
127
- };
128
- dispatch(actions.editAttribute(payload));
129
- } else {
130
- const payload = {
131
- attributeToSet,
132
- forTarget,
133
- targetUid,
134
- shouldAddComponentToData
135
- };
136
- dispatch(actions.addAttribute(payload));
137
- }
138
- };
139
- const addCustomFieldAttribute = ({ attributeToSet, forTarget, targetUid })=>{
140
- dispatch(actions.addCustomFieldAttribute({
141
- attributeToSet,
142
- forTarget,
143
- targetUid
144
- }));
145
- };
146
- const editCustomFieldAttribute = ({ attributeToSet, forTarget, targetUid, initialAttribute })=>{
147
- dispatch(actions.editCustomFieldAttribute({
148
- attributeToSet,
149
- forTarget,
150
- targetUid,
151
- initialAttribute
152
- }));
153
- };
154
- const addCreatedComponentToDynamicZone = (dynamicZoneTarget, componentsToAdd)=>{
155
- dispatch(actions.addCreatedComponentToDynamicZone({
156
- dynamicZoneTarget,
157
- componentsToAdd
158
- }));
159
- };
160
- const createSchema = (data, schemaType, uid, componentCategory, shouldAddComponentToData = false)=>{
161
- if (schemaType === 'contentType') {
162
- const payload = {
163
- data,
164
- uid
165
- };
166
- dispatch(actions.createSchema(payload));
167
- } else {
168
- const payload = {
169
- data,
170
- uid,
171
- componentCategory: componentCategory,
172
- shouldAddComponentToData
173
- };
174
- dispatch(actions.createComponentSchema(payload));
175
- }
176
- };
177
- const changeDynamicZoneComponents = (dynamicZoneTarget, newComponents)=>{
178
- dispatch(actions.changeDynamicZoneComponents({
179
- dynamicZoneTarget,
180
- newComponents
181
- }));
182
- };
183
- const removeAttribute = (mainDataKey, attributeToRemoveName, componentUid = '')=>{
184
- if (mainDataKey === 'components') {
185
- dispatch(actions.removeFieldFromDisplayedComponent({
186
- attributeToRemoveName,
187
- componentUid
188
- }));
189
- } else {
190
- if (mainDataKey === 'contentType') {
191
- trackUsage('willDeleteFieldOfContentType');
192
- }
193
- dispatch(actions.removeField({
194
- mainDataKey,
195
- attributeToRemoveName
196
- }));
197
- }
198
- };
199
- const deleteCategory = async (categoryUid)=>{
200
- try {
201
- const requestURL = `/${pluginId}/component-categories/${categoryUid}`;
202
- // eslint-disable-next-line no-alert
203
- const userConfirm = window.confirm(formatMessage({
204
- id: getTrad('popUpWarning.bodyMessage.category.delete')
205
- }));
206
- // Close the modal
207
- onCloseModal();
208
- if (userConfirm) {
209
- lockAppWithAutoreload?.();
210
- await del(requestURL);
211
- // Make sure the server has restarted
212
- await serverRestartWatcher(true);
213
- // Unlock the app
214
- unlockAppWithAutoreload?.();
215
- await updatePermissions();
216
- }
217
- } catch (err) {
218
- console.error({
219
- err
220
- });
221
- toggleNotification({
222
- type: 'danger',
223
- message: formatMessage({
224
- id: 'notification.error',
225
- defaultMessage: 'An error occurred'
226
- })
227
- });
228
- } finally{
229
- unlockAppWithAutoreload?.();
230
- }
231
- };
232
- const deleteData = async ()=>{
233
- try {
234
- const requestURL = `/${pluginId}/${endPoint}/${currentUid}`;
235
- const isTemporary = get(modifiedData, [
236
- firstKeyToMainSchema,
237
- 'isTemporary'
238
- ], false);
239
- // eslint-disable-next-line no-alert
240
- const userConfirm = window.confirm(formatMessage({
241
- id: getTrad(`popUpWarning.bodyMessage.${isInContentTypeView ? 'contentType' : 'component'}.delete`)
242
- }));
243
- // Close the modal
244
- onCloseModal();
245
- if (userConfirm) {
246
- if (isTemporary) {
247
- // Delete the not saved type
248
- // Here we just need to reset the components to the initial ones and also the content types
249
- // Doing so will trigging a url change since the type doesn't exist in either the contentTypes or the components
250
- // so the modified and the initial data will also be reset in the useEffect...
251
- dispatch(actions.deleteNotSavedType());
252
- return;
253
- }
254
- lockAppWithAutoreload?.();
255
- await del(requestURL);
256
- // Make sure the server has restarted
257
- await serverRestartWatcher(true);
258
- // Unlock the app
259
- await unlockAppWithAutoreload?.();
260
- await getDataRef.current();
261
- // Refetch the permissions
262
- await updatePermissions();
263
- }
264
- } catch (err) {
265
- console.error({
266
- err
267
- });
268
- toggleNotification({
269
- type: 'danger',
270
- message: formatMessage({
271
- id: 'notification.error',
272
- defaultMessage: 'An error occurred'
273
- })
274
- });
275
- } finally{
276
- unlockAppWithAutoreload?.();
277
- }
278
- };
279
- const editCategory = async (categoryUid, body)=>{
280
- try {
281
- const requestURL = `/${pluginId}/component-categories/${categoryUid}`;
282
- // Close the modal
283
- onCloseModal();
284
- // Lock the app
285
- lockAppWithAutoreload?.();
286
- // Update the category
287
- await put(requestURL, body);
288
- // Make sure the server has restarted
289
- await serverRestartWatcher(true);
290
- // Unlock the app
291
- await unlockAppWithAutoreload?.();
292
- await updatePermissions();
293
- } catch (err) {
294
- console.error({
295
- err
296
- });
297
- toggleNotification({
298
- type: 'danger',
299
- message: formatMessage({
300
- id: 'notification.error',
301
- defaultMessage: 'An error occurred'
302
- })
303
- });
304
- } finally{
305
- unlockAppWithAutoreload?.();
306
- }
307
- };
308
- const getAllComponentsThatHaveAComponentInTheirAttributes = ()=>{
309
- // We need to create an object with all the non modified compos
310
- // plus the ones that are created on the fly
311
- const allCompos = Object.assign({}, components, modifiedData.components);
312
- // Since we apply the modification of a specific component only in the modified data
313
- // we need to update all compos with the modifications
314
- if (!isInContentTypeView) {
315
- const currentEditedCompo = get(modifiedData, 'component', {});
316
- set(allCompos, get(currentEditedCompo, [
317
- 'uid'
318
- ], ''), currentEditedCompo);
319
- }
320
- const composWithCompos = retrieveComponentsThatHaveComponents(allCompos);
321
- return composWithCompos;
322
- };
323
- const getAllNestedComponents = ()=>{
324
- const appNestedCompo = retrieveNestedComponents(components);
325
- return appNestedCompo;
326
- };
327
- const removeComponentFromDynamicZone = (dzName, componentToRemoveIndex)=>{
328
- dispatch(actions.removeComponentFromDynamicZone({
329
- dzName,
330
- componentToRemoveIndex
331
- }));
332
- };
333
- const setModifiedData = ()=>{
334
- const currentSchemas = isInContentTypeView ? contentTypes : components;
335
- const schemaToSet = get(currentSchemas, currentUid ?? '', {
336
- schema: {
337
- attributes: []
338
- }
339
- });
340
- const retrievedComponents = retrieveComponentsFromSchema(schemaToSet.schema.attributes, components);
341
- const newSchemaToSet = createModifiedDataSchema(schemaToSet, retrievedComponents, components, isInContentTypeView);
342
- const hasJustCreatedSchema = get(schemaToSet, 'isTemporary', false) && size(get(schemaToSet, 'schema.attributes', [])) === 0;
343
- dispatch(actions.setModifiedData({
344
- schemaToSet: newSchemaToSet,
345
- hasJustCreatedSchema
346
- }));
347
- };
348
- const shouldRedirect = useMemo(()=>{
349
- const dataSet = isInContentTypeView ? contentTypes : components;
350
- if (currentUid === 'create-content-type') {
351
- return false;
352
- }
353
- return !Object.keys(dataSet).includes(currentUid || '') && !isLoading;
354
- }, [
355
- components,
356
- contentTypes,
357
- currentUid,
358
- isInContentTypeView,
359
- isLoading
360
- ]);
361
- const redirectEndpoint = useMemo(()=>{
362
- const allowedEndpoints = Object.keys(contentTypes).filter((uid)=>get(contentTypes, [
363
- uid,
364
- 'schema',
365
- 'visible'
366
- ], true)).sort();
367
- return get(allowedEndpoints, '0', 'create-content-type');
368
- }, [
369
- contentTypes
370
- ]);
371
- if (shouldRedirect) {
372
- return /*#__PURE__*/ jsx(Navigate, {
373
- to: `/plugins/${pluginId}/content-types/${redirectEndpoint}`
374
- });
375
- }
376
- const submitData = async (additionalContentTypeData)=>{
377
- try {
378
- const isCreating = get(modifiedData, [
379
- firstKeyToMainSchema,
380
- 'isTemporary'
381
- ], false);
382
- const body = {
383
- components: getComponentsToPost(modifiedData.components, components, currentUid)
384
- };
385
- if (isInContentTypeView) {
386
- const PluginForms = plugin?.apis?.forms;
387
- const contentType = PluginForms.mutateContentTypeSchema({
388
- ...formatMainDataType(modifiedData.contentType),
389
- ...additionalContentTypeData
390
- }, initialData.contentType);
391
- const isValidSchema = validateSchema(contentType);
392
- if (!isValidSchema) {
393
- toggleNotification({
394
- type: 'danger',
395
- message: formatMessage({
396
- id: getTrad('notification.error.dynamiczone-min.validation'),
397
- defaultMessage: 'At least one component is required in a dynamic zone to be able to save a content type'
398
- })
399
- });
400
- return;
401
- }
402
- body.contentType = contentType;
403
- trackUsage('willSaveContentType');
404
- } else {
405
- body.component = formatMainDataType(modifiedData.component, true);
406
- trackUsage('willSaveComponent');
407
- }
408
- // Lock the app
409
- lockAppWithAutoreload?.();
410
- const baseURL = `/${pluginId}/${endPoint}`;
411
- const requestURL = isCreating ? baseURL : `${baseURL}/${currentUid}`;
412
- if (isCreating) {
413
- await post(requestURL, body);
414
- } else {
415
- await put(requestURL, body);
416
- }
417
- if (isCreating && (initialData.contentType?.schema.kind === 'collectionType' || initialData.contentType?.schema.kind === 'singleType')) {
418
- setStepState('contentTypeBuilder.success', true);
419
- trackUsage('didCreateGuidedTourCollectionType');
420
- setCurrentStep(null);
421
- }
422
- // Submit ct tracking success
423
- if (isInContentTypeView) {
424
- trackUsage('didSaveContentType');
425
- const oldName = get(body, [
426
- 'contentType',
427
- 'schema',
428
- 'name'
429
- ], '');
430
- const newName = get(initialData, [
431
- 'contentType',
432
- 'schema',
433
- 'name'
434
- ], '');
435
- if (!isCreating && oldName !== newName) {
436
- trackUsage('didEditNameOfContentType');
437
- }
438
- } else {
439
- trackUsage('didSaveComponent');
440
- }
441
- // Make sure the server has restarted
442
- await serverRestartWatcher(true);
443
- // Unlock the app
444
- unlockAppWithAutoreload?.();
445
- // refetch and update initial state after the data has been saved
446
- await getDataRef.current();
447
- // Update the app's permissions
448
- await updatePermissions();
449
- } catch (err) {
450
- if (!isInContentTypeView) {
451
- trackUsage('didNotSaveComponent');
452
- }
453
- console.error({
454
- err: err.response
455
- });
456
- toggleNotification({
457
- type: 'danger',
458
- message: formatMessage({
459
- id: 'notification.error',
460
- defaultMessage: 'An error occurred'
461
- })
462
- });
463
- } finally{
464
- unlockAppWithAutoreload?.();
465
- }
466
- };
467
- const updatePermissions = async ()=>{
468
- await refetchPermissions();
469
- };
470
- const updateSchema = (data, schemaType, componentUID)=>{
471
- dispatch(actions.updateSchema({
472
- data,
473
- schemaType,
474
- uid: componentUID
475
- }));
476
- };
477
- return /*#__PURE__*/ jsxs(DataManagerContext.Provider, {
478
- value: {
479
- addAttribute,
480
- addCustomFieldAttribute,
481
- addCreatedComponentToDynamicZone,
482
- allComponentsCategories: retrieveSpecificInfoFromComponents(components, [
483
- 'category'
484
- ]),
485
- changeDynamicZoneComponents,
486
- components,
487
- componentsGroupedByCategory: groupBy(components, 'category'),
488
- componentsThatHaveOtherComponentInTheirAttributes: getAllComponentsThatHaveAComponentInTheirAttributes(),
489
- contentTypes,
490
- createSchema,
491
- deleteCategory,
492
- deleteData,
493
- editCategory,
494
- editCustomFieldAttribute,
495
- isInDevelopmentMode,
496
- initialData,
497
- isInContentTypeView,
498
- modifiedData,
499
- nestedComponents: getAllNestedComponents(),
500
- removeAttribute,
501
- removeComponentFromDynamicZone,
502
- reservedNames,
503
- setModifiedData,
504
- sortedContentTypesList: sortContentType(contentTypes),
505
- submitData,
506
- updateSchema
507
- },
508
- children: [
509
- children,
510
- isInDevelopmentMode && /*#__PURE__*/ jsx(FormModal, {})
511
- ]
512
- });
513
- };
514
- // eslint-disable-next-line import/no-default-export
515
- var DataManagerProvider$1 = /*#__PURE__*/ memo(DataManagerProvider);
516
-
517
- export { DataManagerProvider$1 as default };
518
- //# sourceMappingURL=DataManagerProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataManagerProvider.mjs","sources":["../../../../admin/src/components/DataManagerProvider/DataManagerProvider.tsx"],"sourcesContent":["import { memo, useEffect, useMemo, useRef, ReactNode } from 'react';\n\nimport {\n useGuidedTour,\n useTracking,\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport set from 'lodash/set';\nimport size from 'lodash/size';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { DataManagerContext } from '../../contexts/DataManagerContext';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { FormModal } from '../FormModal/FormModal';\n\nimport { actions } from './reducer';\nimport { makeSelectDataManagerProvider } from './selectors';\nimport { formatMainDataType, getComponentsToPost, sortContentType } from './utils/cleanData';\nimport { createDataObject } from './utils/createDataObject';\nimport { createModifiedDataSchema } from './utils/createModifiedDataSchema';\nimport { formatSchemas } from './utils/formatSchemas';\nimport { retrieveComponentsFromSchema } from './utils/retrieveComponentsFromSchema';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\nimport { serverRestartWatcher } from './utils/serverRestartWatcher';\nimport { validateSchema } from './utils/validateSchema';\n\nimport type { ContentType, SchemaType, Components } from '../../types';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: ReactNode;\n}\n\ninterface CustomFieldAttributeParams {\n attributeToSet: Record<string, any>;\n forTarget: SchemaType;\n targetUid: Internal.UID.Schema;\n initialAttribute: Record<string, any>;\n}\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n // refactor\n const { components, contentTypes, isLoading, initialData, modifiedData, reservedNames } =\n useSelector(makeSelectDataManagerProvider());\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const { setCurrentStep, setStepState } = useGuidedTour('DataManagerProvider', (state) => state);\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n\n const plugin = getPlugin(pluginId);\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { pathname } = useLocation();\n const { onCloseModal } = useFormModalNavigation();\n const contentTypeMatch = useMatch(`/plugins/${pluginId}/content-types/:uid`);\n const componentMatch = useMatch(\n `/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`\n );\n\n const fetchClient = useFetchClient();\n const { put, post, del } = fetchClient;\n\n const isInDevelopmentMode = autoReload;\n\n const isInContentTypeView = contentTypeMatch !== null;\n const firstKeyToMainSchema = isInContentTypeView ? 'contentType' : 'component';\n const currentUid = isInContentTypeView\n ? get(contentTypeMatch, 'params.uid', null)\n : get(componentMatch, 'params.componentUid', null);\n\n const getDataRef = useRef<any>();\n const endPoint = isInContentTypeView ? 'content-types' : 'components';\n\n getDataRef.current = async () => {\n try {\n const [componentsResponse, contentTypesResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/components`),\n fetchClient.get(`/content-type-builder/content-types`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const components = createDataObject(componentsResponse.data.data);\n const formattedComponents = formatSchemas(components);\n const contentTypes = createDataObject(contentTypesResponse.data.data);\n const formattedContentTypes = formatSchemas(contentTypes);\n\n dispatch(\n actions.init({\n components: formattedComponents,\n contentTypes: formattedContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n useEffect(() => {\n getDataRef.current();\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n // We need to set the modifiedData after the data has been retrieved\n // and also on pathname change\n if (!isLoading && currentUid) {\n setModifiedData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, pathname, currentUid]);\n\n useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const addAttribute = (\n attributeToSet: Record<string, any>,\n forTarget: SchemaType,\n targetUid: Internal.UID.Schema,\n isEditing = false,\n initialAttribute?: Record<string, any>,\n shouldAddComponentToData = false\n ) => {\n if (isEditing) {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n // NOTE: using ! here to avoid changing the code logic before bigger refactorings\n initialAttribute: initialAttribute!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.editAttribute(payload));\n } else {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n shouldAddComponentToData,\n };\n\n dispatch(actions.addAttribute(payload));\n }\n };\n\n const addCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n }: CustomFieldAttributeParams) => {\n dispatch(actions.addCustomFieldAttribute({ attributeToSet, forTarget, targetUid }));\n };\n\n const editCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n }: CustomFieldAttributeParams) => {\n dispatch(\n actions.editCustomFieldAttribute({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n })\n );\n };\n\n const addCreatedComponentToDynamicZone = (\n dynamicZoneTarget: string,\n componentsToAdd: Internal.UID.Component[]\n ) => {\n dispatch(actions.addCreatedComponentToDynamicZone({ dynamicZoneTarget, componentsToAdd }));\n };\n\n const createSchema = (\n data: Record<string, any>,\n schemaType: SchemaType,\n uid: Internal.UID.Schema,\n componentCategory?: string,\n shouldAddComponentToData = false\n ) => {\n if (schemaType === 'contentType') {\n const payload = {\n data,\n uid,\n };\n\n dispatch(actions.createSchema(payload));\n } else {\n const payload = {\n data,\n uid,\n componentCategory: componentCategory!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.createComponentSchema(payload));\n }\n };\n\n const changeDynamicZoneComponents = (\n dynamicZoneTarget: string,\n newComponents: Internal.UID.Component[]\n ) => {\n dispatch(actions.changeDynamicZoneComponents({ dynamicZoneTarget, newComponents }));\n };\n\n const removeAttribute = (\n mainDataKey: 'components' | 'contentType' | 'component' | 'contentTypes',\n attributeToRemoveName: string,\n componentUid = ''\n ) => {\n if (mainDataKey === 'components') {\n dispatch(\n actions.removeFieldFromDisplayedComponent({\n attributeToRemoveName,\n componentUid,\n })\n );\n } else {\n if (mainDataKey === 'contentType') {\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(\n actions.removeField({\n mainDataKey,\n attributeToRemoveName,\n })\n );\n }\n };\n\n const deleteCategory = async (categoryUid: string) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad('popUpWarning.bodyMessage.category.delete'),\n })\n );\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const deleteData = async () => {\n try {\n const requestURL = `/${pluginId}/${endPoint}/${currentUid}`;\n const isTemporary = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(\n `popUpWarning.bodyMessage.${isInContentTypeView ? 'contentType' : 'component'}.delete`\n ),\n })\n );\n\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n if (isTemporary) {\n // Delete the not saved type\n // Here we just need to reset the components to the initial ones and also the content types\n // Doing so will trigging a url change since the type doesn't exist in either the contentTypes or the components\n // so the modified and the initial data will also be reset in the useEffect...\n dispatch(actions.deleteNotSavedType());\n\n return;\n }\n\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await getDataRef.current();\n // Refetch the permissions\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const editCategory = async (categoryUid: string, body: any) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n\n // Close the modal\n onCloseModal();\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n // Update the category\n await put(requestURL, body);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = () => {\n // We need to create an object with all the non modified compos\n // plus the ones that are created on the fly\n const allCompos = Object.assign({}, components, modifiedData.components);\n\n // Since we apply the modification of a specific component only in the modified data\n // we need to update all compos with the modifications\n if (!isInContentTypeView) {\n const currentEditedCompo = get(modifiedData, 'component', {});\n\n set(allCompos, get(currentEditedCompo, ['uid'], ''), currentEditedCompo);\n }\n\n const composWithCompos = retrieveComponentsThatHaveComponents(allCompos);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = () => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const removeComponentFromDynamicZone = (dzName: string, componentToRemoveIndex: number) => {\n dispatch(\n actions.removeComponentFromDynamicZone({\n dzName,\n componentToRemoveIndex,\n })\n );\n };\n\n const setModifiedData = () => {\n const currentSchemas = isInContentTypeView ? contentTypes : components;\n const schemaToSet = get(currentSchemas, currentUid ?? '', {\n schema: { attributes: [] },\n });\n\n const retrievedComponents = retrieveComponentsFromSchema(\n schemaToSet.schema.attributes,\n components\n );\n\n const newSchemaToSet = createModifiedDataSchema(\n schemaToSet,\n retrievedComponents,\n components,\n isInContentTypeView\n );\n\n const hasJustCreatedSchema =\n get(schemaToSet, 'isTemporary', false) &&\n size(get(schemaToSet, 'schema.attributes', [])) === 0;\n\n dispatch(\n actions.setModifiedData({\n schemaToSet: newSchemaToSet,\n hasJustCreatedSchema,\n })\n );\n };\n\n const shouldRedirect = useMemo(() => {\n const dataSet = isInContentTypeView ? contentTypes : components;\n if (currentUid === 'create-content-type') {\n return false;\n }\n\n return !Object.keys(dataSet).includes(currentUid || '') && !isLoading;\n }, [components, contentTypes, currentUid, isInContentTypeView, isLoading]);\n\n const redirectEndpoint = useMemo(() => {\n const allowedEndpoints = Object.keys(contentTypes)\n .filter((uid) => get(contentTypes, [uid, 'schema', 'visible'], true))\n .sort();\n\n return get(allowedEndpoints, '0', 'create-content-type');\n }, [contentTypes]);\n\n if (shouldRedirect) {\n return <Navigate to={`/plugins/${pluginId}/content-types/${redirectEndpoint}`} />;\n }\n\n const submitData = async (additionalContentTypeData?: Record<string, any>) => {\n try {\n const isCreating = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n const body: {\n components: any[];\n contentType?: Record<string, any>;\n component?: any;\n } = {\n components: getComponentsToPost(\n modifiedData.components as Components,\n components as Components,\n currentUid as Internal.UID.Schema\n ),\n };\n\n if (isInContentTypeView) {\n const PluginForms = plugin?.apis?.forms as any;\n const contentType = PluginForms.mutateContentTypeSchema(\n {\n ...formatMainDataType(modifiedData.contentType),\n ...additionalContentTypeData,\n },\n initialData.contentType\n ) as ContentType;\n\n const isValidSchema = validateSchema(contentType);\n\n if (!isValidSchema) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error.dynamiczone-min.validation'),\n defaultMessage:\n 'At least one component is required in a dynamic zone to be able to save a content type',\n }),\n });\n\n return;\n }\n\n body.contentType = contentType;\n\n trackUsage('willSaveContentType');\n } else {\n body.component = formatMainDataType(modifiedData.component, true);\n\n trackUsage('willSaveComponent');\n }\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n const baseURL = `/${pluginId}/${endPoint}`;\n const requestURL = isCreating ? baseURL : `${baseURL}/${currentUid}`;\n\n if (isCreating) {\n await post(requestURL, body);\n } else {\n await put(requestURL, body);\n }\n\n if (\n isCreating &&\n (initialData.contentType?.schema.kind === 'collectionType' ||\n initialData.contentType?.schema.kind === 'singleType')\n ) {\n setStepState('contentTypeBuilder.success', true);\n trackUsage('didCreateGuidedTourCollectionType');\n setCurrentStep(null);\n }\n\n // Submit ct tracking success\n if (isInContentTypeView) {\n trackUsage('didSaveContentType');\n\n const oldName = get(body, ['contentType', 'schema', 'name'], '');\n const newName = get(initialData, ['contentType', 'schema', 'name'], '');\n\n if (!isCreating && oldName !== newName) {\n trackUsage('didEditNameOfContentType');\n }\n } else {\n trackUsage('didSaveComponent');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n\n // Update the app's permissions\n await updatePermissions();\n } catch (err: any) {\n if (!isInContentTypeView) {\n trackUsage('didNotSaveComponent');\n }\n\n console.error({ err: err.response });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const updateSchema = (\n data: Record<string, any>,\n schemaType: 'contentType' | 'component',\n componentUID: Internal.UID.Schema\n ) => {\n dispatch(\n actions.updateSchema({\n data,\n schemaType,\n uid: componentUID,\n })\n );\n };\n\n return (\n <DataManagerContext.Provider\n value={{\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories: retrieveSpecificInfoFromComponents(components, ['category']),\n changeDynamicZoneComponents,\n components,\n componentsGroupedByCategory: groupBy(components, 'category') as Record<string, any[]>,\n componentsThatHaveOtherComponentInTheirAttributes:\n getAllComponentsThatHaveAComponentInTheirAttributes(),\n contentTypes,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n isInDevelopmentMode,\n initialData,\n isInContentTypeView,\n modifiedData,\n nestedComponents: getAllNestedComponents(),\n removeAttribute,\n removeComponentFromDynamicZone,\n reservedNames,\n setModifiedData,\n sortedContentTypesList: sortContentType(contentTypes),\n submitData,\n updateSchema,\n }}\n >\n {children}\n {isInDevelopmentMode && <FormModal />}\n </DataManagerContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default memo(DataManagerProvider);\n"],"names":["DataManagerProvider","children","dispatch","useDispatch","components","contentTypes","isLoading","initialData","modifiedData","reservedNames","useSelector","makeSelectDataManagerProvider","toggleNotification","useNotification","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","setCurrentStep","setStepState","useGuidedTour","state","getPlugin","useStrapiApp","plugin","pluginId","autoReload","useAppInfo","formatMessage","useIntl","trackUsage","useTracking","refetchPermissions","useAuth","pathname","useLocation","onCloseModal","useFormModalNavigation","contentTypeMatch","useMatch","componentMatch","fetchClient","useFetchClient","put","post","del","isInDevelopmentMode","isInContentTypeView","firstKeyToMainSchema","currentUid","get","getDataRef","useRef","endPoint","current","componentsResponse","contentTypesResponse","reservedNamesResponse","Promise","all","createDataObject","data","formattedComponents","formatSchemas","formattedContentTypes","actions","init","err","console","error","type","message","id","defaultMessage","useEffect","reloadPlugin","setModifiedData","getTrad","addAttribute","attributeToSet","forTarget","targetUid","isEditing","initialAttribute","shouldAddComponentToData","payload","editAttribute","addCustomFieldAttribute","editCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","createSchema","schemaType","uid","componentCategory","createComponentSchema","changeDynamicZoneComponents","newComponents","removeAttribute","mainDataKey","attributeToRemoveName","componentUid","removeFieldFromDisplayedComponent","removeField","deleteCategory","categoryUid","requestURL","userConfirm","window","confirm","serverRestartWatcher","updatePermissions","deleteData","isTemporary","deleteNotSavedType","editCategory","body","getAllComponentsThatHaveAComponentInTheirAttributes","allCompos","Object","assign","currentEditedCompo","set","composWithCompos","retrieveComponentsThatHaveComponents","getAllNestedComponents","appNestedCompo","retrieveNestedComponents","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","currentSchemas","schemaToSet","schema","attributes","retrievedComponents","retrieveComponentsFromSchema","newSchemaToSet","createModifiedDataSchema","hasJustCreatedSchema","size","shouldRedirect","useMemo","dataSet","keys","includes","redirectEndpoint","allowedEndpoints","filter","sort","_jsx","Navigate","to","submitData","additionalContentTypeData","isCreating","getComponentsToPost","PluginForms","apis","forms","contentType","mutateContentTypeSchema","formatMainDataType","isValidSchema","validateSchema","component","baseURL","kind","oldName","newName","response","updateSchema","componentUID","_jsxs","DataManagerContext","Provider","value","allComponentsCategories","retrieveSpecificInfoFromComponents","componentsGroupedByCategory","groupBy","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","sortedContentTypesList","sortContentType","FormModal","memo"],"mappings":"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"}