@strapi/content-type-builder 5.13.1 → 5.14.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 +80968 -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 +13 -8
  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
@@ -0,0 +1,102 @@
1
+ 'use strict';
2
+
3
+ var toolkit = require('@reduxjs/toolkit');
4
+
5
+ const isCallable = (obj)=>{
6
+ return typeof obj === 'function';
7
+ };
8
+ const createUndoRedoSlice = (sliceOpts, opts)=>{
9
+ const initialState = {
10
+ past: [],
11
+ future: [],
12
+ current: isCallable(sliceOpts.initialState) ? sliceOpts.initialState() : sliceOpts.initialState
13
+ };
14
+ const { limit = 10 } = opts ?? {};
15
+ const selector = opts.stateSelector || ((state)=>state);
16
+ const wrappedReducers = Object.keys(sliceOpts.reducers).reduce((acc, actionName)=>{
17
+ const reducer = sliceOpts.reducers[actionName];
18
+ if (!isCallable(reducer)) {
19
+ throw new Error('Reducer must be a function. prepapre not support in UndoRedo wrapper');
20
+ }
21
+ acc[actionName] = (state, action)=>{
22
+ const newCurrent = reducer(state.current, action);
23
+ if (opts.excludeActionsFromHistory?.includes(actionName)) {
24
+ if (newCurrent !== undefined) {
25
+ state.current = newCurrent;
26
+ }
27
+ return;
28
+ }
29
+ const originalCurrent = toolkit.original(state.current);
30
+ state.past.push(selector(originalCurrent));
31
+ if (state.past.length > limit) {
32
+ state.past.shift();
33
+ }
34
+ state.future = [];
35
+ if (newCurrent !== undefined) {
36
+ state.current = newCurrent;
37
+ }
38
+ };
39
+ return acc;
40
+ }, {});
41
+ return toolkit.createSlice({
42
+ name: sliceOpts.name,
43
+ initialState,
44
+ // @ts-expect-error - TS doesn't like the fact that we're adding extra reducers
45
+ reducers: {
46
+ ...wrappedReducers,
47
+ undo: (state)=>{
48
+ if (state.past.length === 0) {
49
+ return;
50
+ }
51
+ const previous = state.past.pop();
52
+ if (previous !== undefined) {
53
+ state.future = [
54
+ state.current,
55
+ ...state.future
56
+ ];
57
+ // reapply the previous state partially
58
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
59
+ state.current = {
60
+ ...state.current,
61
+ ...previous
62
+ };
63
+ }
64
+ },
65
+ redo: (state)=>{
66
+ if (state.future.length === 0) {
67
+ return;
68
+ }
69
+ const next = state.future.shift();
70
+ if (next != undefined) {
71
+ state.past = [
72
+ ...state.past,
73
+ state.current
74
+ ];
75
+ // reapply the previous state partially
76
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
77
+ state.current = {
78
+ ...state.current,
79
+ ...next
80
+ };
81
+ }
82
+ },
83
+ discardAll: (state)=>{
84
+ if (opts.discard) {
85
+ opts.discard(state.current);
86
+ } else {
87
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
88
+ state.current = initialState.current;
89
+ }
90
+ state.past = [];
91
+ state.future = [];
92
+ },
93
+ clearHistory: (state)=>{
94
+ state.past = [];
95
+ state.future = [];
96
+ }
97
+ }
98
+ });
99
+ };
100
+
101
+ exports.createUndoRedoSlice = createUndoRedoSlice;
102
+ //# sourceMappingURL=undoRedo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undoRedo.js","sources":["../../../../admin/src/components/DataManager/undoRedo.ts"],"sourcesContent":["import {\n CaseReducer,\n createSlice,\n CreateSliceOptions,\n Draft,\n original,\n PayloadAction,\n SliceCaseReducers,\n} from '@reduxjs/toolkit';\n\nexport type UndoRedoState<T> = {\n past: Array<Partial<T>>;\n future: Array<Partial<T>>;\n current: T;\n};\n\ntype WrappedUndoRedoReducer<TState, TReducers extends SliceCaseReducers<TState>> = {\n [K in keyof TReducers]: TReducers[K] extends CaseReducer<TState, infer A>\n ? CaseReducer<UndoRedoState<TState>, A>\n : never;\n};\n\ntype UndoRedoReducer<TState, TReducers extends SliceCaseReducers<TState>> = WrappedUndoRedoReducer<\n TState,\n TReducers\n> & {\n undo: CaseReducer<UndoRedoState<TState>>;\n redo: CaseReducer<UndoRedoState<TState>>;\n discardAll: CaseReducer<UndoRedoState<TState>>;\n clearHistory: CaseReducer<UndoRedoState<TState>>;\n};\n\ntype Opts<TState> = {\n limit?: number;\n excludeActionsFromHistory?: string[];\n stateSelector?: (state: Draft<TState> | undefined) => Draft<Partial<TState>>;\n discard?: (state: Draft<TState>) => void;\n};\n\nconst isCallable = (obj: unknown): obj is (...args: unknown[]) => unknown => {\n return typeof obj === 'function';\n};\n\nexport const createUndoRedoSlice = <State, CaseReducers extends SliceCaseReducers<State>>(\n sliceOpts: CreateSliceOptions<State, CaseReducers, string>,\n opts: Opts<State>\n) => {\n const initialState: UndoRedoState<State> = {\n past: [],\n future: [],\n current: isCallable(sliceOpts.initialState) ? sliceOpts.initialState() : sliceOpts.initialState,\n };\n\n const { limit = 10 } = opts ?? {};\n\n const selector = opts.stateSelector || (<T>(state: Draft<T>): Draft<T> => state);\n\n const wrappedReducers = Object.keys(sliceOpts.reducers).reduce(\n (acc, actionName: string) => {\n const reducer = sliceOpts.reducers[actionName];\n\n if (!isCallable(reducer)) {\n throw new Error('Reducer must be a function. prepapre not support in UndoRedo wrapper');\n }\n\n acc[actionName] = (state, action) => {\n const newCurrent = reducer(state.current as Draft<State>, action);\n\n if (opts.excludeActionsFromHistory?.includes(actionName)) {\n if (newCurrent !== undefined) {\n state.current = newCurrent as Draft<State>;\n }\n\n return;\n }\n\n const originalCurrent = original(state.current);\n\n state.past.push(selector(originalCurrent)!);\n if (state.past.length > limit) {\n state.past.shift();\n }\n state.future = [];\n\n if (newCurrent !== undefined) {\n state.current = newCurrent as Draft<State>;\n }\n };\n\n return acc;\n },\n {} as Record<string, CaseReducer<UndoRedoState<State>, PayloadAction<unknown>>>\n ) as WrappedUndoRedoReducer<State, CaseReducers>;\n\n return createSlice<UndoRedoState<State>, UndoRedoReducer<State, CaseReducers>>({\n name: sliceOpts.name,\n initialState,\n // @ts-expect-error - TS doesn't like the fact that we're adding extra reducers\n reducers: {\n ...wrappedReducers,\n undo: (state) => {\n if (state.past.length === 0) {\n return;\n }\n\n const previous = state.past.pop();\n\n if (previous !== undefined) {\n state.future = [state.current, ...state.future];\n // reapply the previous state partially\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = { ...state.current, ...previous };\n }\n },\n\n redo: (state) => {\n if (state.future.length === 0) {\n return;\n }\n\n const next = state.future.shift();\n if (next != undefined) {\n state.past = [...state.past, state.current];\n // reapply the previous state partially\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = { ...state.current, ...next };\n }\n },\n\n discardAll: (state) => {\n if (opts.discard) {\n opts.discard(state.current);\n } else {\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = initialState.current;\n }\n state.past = [];\n state.future = [];\n },\n\n clearHistory: (state) => {\n state.past = [];\n state.future = [];\n },\n },\n });\n};\n"],"names":["isCallable","obj","createUndoRedoSlice","sliceOpts","opts","initialState","past","future","current","limit","selector","stateSelector","state","wrappedReducers","Object","keys","reducers","reduce","acc","actionName","reducer","Error","action","newCurrent","excludeActionsFromHistory","includes","undefined","originalCurrent","original","push","length","shift","createSlice","name","undo","previous","pop","redo","next","discardAll","discard","clearHistory"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { original, createSlice } from '@reduxjs/toolkit';
2
+
3
+ const isCallable = (obj)=>{
4
+ return typeof obj === 'function';
5
+ };
6
+ const createUndoRedoSlice = (sliceOpts, opts)=>{
7
+ const initialState = {
8
+ past: [],
9
+ future: [],
10
+ current: isCallable(sliceOpts.initialState) ? sliceOpts.initialState() : sliceOpts.initialState
11
+ };
12
+ const { limit = 10 } = opts ?? {};
13
+ const selector = opts.stateSelector || ((state)=>state);
14
+ const wrappedReducers = Object.keys(sliceOpts.reducers).reduce((acc, actionName)=>{
15
+ const reducer = sliceOpts.reducers[actionName];
16
+ if (!isCallable(reducer)) {
17
+ throw new Error('Reducer must be a function. prepapre not support in UndoRedo wrapper');
18
+ }
19
+ acc[actionName] = (state, action)=>{
20
+ const newCurrent = reducer(state.current, action);
21
+ if (opts.excludeActionsFromHistory?.includes(actionName)) {
22
+ if (newCurrent !== undefined) {
23
+ state.current = newCurrent;
24
+ }
25
+ return;
26
+ }
27
+ const originalCurrent = original(state.current);
28
+ state.past.push(selector(originalCurrent));
29
+ if (state.past.length > limit) {
30
+ state.past.shift();
31
+ }
32
+ state.future = [];
33
+ if (newCurrent !== undefined) {
34
+ state.current = newCurrent;
35
+ }
36
+ };
37
+ return acc;
38
+ }, {});
39
+ return createSlice({
40
+ name: sliceOpts.name,
41
+ initialState,
42
+ // @ts-expect-error - TS doesn't like the fact that we're adding extra reducers
43
+ reducers: {
44
+ ...wrappedReducers,
45
+ undo: (state)=>{
46
+ if (state.past.length === 0) {
47
+ return;
48
+ }
49
+ const previous = state.past.pop();
50
+ if (previous !== undefined) {
51
+ state.future = [
52
+ state.current,
53
+ ...state.future
54
+ ];
55
+ // reapply the previous state partially
56
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
57
+ state.current = {
58
+ ...state.current,
59
+ ...previous
60
+ };
61
+ }
62
+ },
63
+ redo: (state)=>{
64
+ if (state.future.length === 0) {
65
+ return;
66
+ }
67
+ const next = state.future.shift();
68
+ if (next != undefined) {
69
+ state.past = [
70
+ ...state.past,
71
+ state.current
72
+ ];
73
+ // reapply the previous state partially
74
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
75
+ state.current = {
76
+ ...state.current,
77
+ ...next
78
+ };
79
+ }
80
+ },
81
+ discardAll: (state)=>{
82
+ if (opts.discard) {
83
+ opts.discard(state.current);
84
+ } else {
85
+ // @ts-expect-error - TS doesn't like the fact that we're mutating the state
86
+ state.current = initialState.current;
87
+ }
88
+ state.past = [];
89
+ state.future = [];
90
+ },
91
+ clearHistory: (state)=>{
92
+ state.past = [];
93
+ state.future = [];
94
+ }
95
+ }
96
+ });
97
+ };
98
+
99
+ export { createUndoRedoSlice };
100
+ //# sourceMappingURL=undoRedo.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undoRedo.mjs","sources":["../../../../admin/src/components/DataManager/undoRedo.ts"],"sourcesContent":["import {\n CaseReducer,\n createSlice,\n CreateSliceOptions,\n Draft,\n original,\n PayloadAction,\n SliceCaseReducers,\n} from '@reduxjs/toolkit';\n\nexport type UndoRedoState<T> = {\n past: Array<Partial<T>>;\n future: Array<Partial<T>>;\n current: T;\n};\n\ntype WrappedUndoRedoReducer<TState, TReducers extends SliceCaseReducers<TState>> = {\n [K in keyof TReducers]: TReducers[K] extends CaseReducer<TState, infer A>\n ? CaseReducer<UndoRedoState<TState>, A>\n : never;\n};\n\ntype UndoRedoReducer<TState, TReducers extends SliceCaseReducers<TState>> = WrappedUndoRedoReducer<\n TState,\n TReducers\n> & {\n undo: CaseReducer<UndoRedoState<TState>>;\n redo: CaseReducer<UndoRedoState<TState>>;\n discardAll: CaseReducer<UndoRedoState<TState>>;\n clearHistory: CaseReducer<UndoRedoState<TState>>;\n};\n\ntype Opts<TState> = {\n limit?: number;\n excludeActionsFromHistory?: string[];\n stateSelector?: (state: Draft<TState> | undefined) => Draft<Partial<TState>>;\n discard?: (state: Draft<TState>) => void;\n};\n\nconst isCallable = (obj: unknown): obj is (...args: unknown[]) => unknown => {\n return typeof obj === 'function';\n};\n\nexport const createUndoRedoSlice = <State, CaseReducers extends SliceCaseReducers<State>>(\n sliceOpts: CreateSliceOptions<State, CaseReducers, string>,\n opts: Opts<State>\n) => {\n const initialState: UndoRedoState<State> = {\n past: [],\n future: [],\n current: isCallable(sliceOpts.initialState) ? sliceOpts.initialState() : sliceOpts.initialState,\n };\n\n const { limit = 10 } = opts ?? {};\n\n const selector = opts.stateSelector || (<T>(state: Draft<T>): Draft<T> => state);\n\n const wrappedReducers = Object.keys(sliceOpts.reducers).reduce(\n (acc, actionName: string) => {\n const reducer = sliceOpts.reducers[actionName];\n\n if (!isCallable(reducer)) {\n throw new Error('Reducer must be a function. prepapre not support in UndoRedo wrapper');\n }\n\n acc[actionName] = (state, action) => {\n const newCurrent = reducer(state.current as Draft<State>, action);\n\n if (opts.excludeActionsFromHistory?.includes(actionName)) {\n if (newCurrent !== undefined) {\n state.current = newCurrent as Draft<State>;\n }\n\n return;\n }\n\n const originalCurrent = original(state.current);\n\n state.past.push(selector(originalCurrent)!);\n if (state.past.length > limit) {\n state.past.shift();\n }\n state.future = [];\n\n if (newCurrent !== undefined) {\n state.current = newCurrent as Draft<State>;\n }\n };\n\n return acc;\n },\n {} as Record<string, CaseReducer<UndoRedoState<State>, PayloadAction<unknown>>>\n ) as WrappedUndoRedoReducer<State, CaseReducers>;\n\n return createSlice<UndoRedoState<State>, UndoRedoReducer<State, CaseReducers>>({\n name: sliceOpts.name,\n initialState,\n // @ts-expect-error - TS doesn't like the fact that we're adding extra reducers\n reducers: {\n ...wrappedReducers,\n undo: (state) => {\n if (state.past.length === 0) {\n return;\n }\n\n const previous = state.past.pop();\n\n if (previous !== undefined) {\n state.future = [state.current, ...state.future];\n // reapply the previous state partially\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = { ...state.current, ...previous };\n }\n },\n\n redo: (state) => {\n if (state.future.length === 0) {\n return;\n }\n\n const next = state.future.shift();\n if (next != undefined) {\n state.past = [...state.past, state.current];\n // reapply the previous state partially\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = { ...state.current, ...next };\n }\n },\n\n discardAll: (state) => {\n if (opts.discard) {\n opts.discard(state.current);\n } else {\n // @ts-expect-error - TS doesn't like the fact that we're mutating the state\n state.current = initialState.current;\n }\n state.past = [];\n state.future = [];\n },\n\n clearHistory: (state) => {\n state.past = [];\n state.future = [];\n },\n },\n });\n};\n"],"names":["isCallable","obj","createUndoRedoSlice","sliceOpts","opts","initialState","past","future","current","limit","selector","stateSelector","state","wrappedReducers","Object","keys","reducers","reduce","acc","actionName","reducer","Error","action","newCurrent","excludeActionsFromHistory","includes","undefined","originalCurrent","original","push","length","shift","createSlice","name","undo","previous","pop","redo","next","discardAll","discard","clearHistory"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var DataManagerContext = require('../contexts/DataManagerContext.js');
4
+ var DataManagerContext = require('./DataManagerContext.js');
5
5
 
6
6
  const useDataManager = ()=>React.useContext(DataManagerContext.DataManagerContext);
7
7
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataManager.js","sources":["../../../../admin/src/components/DataManager/useDataManager.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { DataManagerContext } from './DataManagerContext';\n\nexport const useDataManager = () => useContext(DataManagerContext);\n"],"names":["useDataManager","useContext","DataManagerContext"],"mappings":";;;;;AAIaA,MAAAA,cAAAA,GAAiB,IAAMC,gBAAAA,CAAWC,qCAAoB;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { useContext } from 'react';
2
- import { DataManagerContext } from '../contexts/DataManagerContext.mjs';
2
+ import { DataManagerContext } from './DataManagerContext.mjs';
3
3
 
4
4
  const useDataManager = ()=>useContext(DataManagerContext);
5
5
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataManager.mjs","sources":["../../../../admin/src/components/DataManager/useDataManager.ts"],"sourcesContent":["import { useContext } from 'react';\n\nimport { DataManagerContext } from './DataManagerContext';\n\nexport const useDataManager = () => useContext(DataManagerContext);\n"],"names":["useDataManager","useContext","DataManagerContext"],"mappings":";;;AAIaA,MAAAA,cAAAA,GAAiB,IAAMC,UAAAA,CAAWC,kBAAoB;;;;"}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
4
+
5
+ const TIMEOUT = 'timeout';
6
+ const timeout = 30 * 1000;
7
+ const useServerRestartWatcher = ()=>{
8
+ const { get } = strapiAdmin.useFetchClient();
9
+ const serverRestartWatcher = async (initTime)=>{
10
+ const startTime = initTime ?? Date.now();
11
+ if (Date.now() - startTime > timeout) {
12
+ throw new Error(TIMEOUT);
13
+ }
14
+ try {
15
+ const res = await get(`/content-type-builder/update-schema-status`);
16
+ if (res?.data?.data?.isUpdating === true) {
17
+ return new Promise((resolve)=>{
18
+ setTimeout(()=>{
19
+ return serverRestartWatcher(startTime).then(resolve);
20
+ }, 200);
21
+ });
22
+ }
23
+ } catch (err) {
24
+ return new Promise((resolve)=>{
25
+ setTimeout(()=>{
26
+ return serverRestartWatcher(startTime).then(resolve);
27
+ }, 200);
28
+ });
29
+ }
30
+ };
31
+ return serverRestartWatcher;
32
+ };
33
+
34
+ exports.useServerRestartWatcher = useServerRestartWatcher;
35
+ //# sourceMappingURL=useServerRestartWatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useServerRestartWatcher.js","sources":["../../../../admin/src/components/DataManager/useServerRestartWatcher.ts"],"sourcesContent":["import { useFetchClient } from '@strapi/admin/strapi-admin';\n\nconst TIMEOUT = 'timeout';\n\nconst timeout = 30 * 1000;\n\nexport const useServerRestartWatcher = () => {\n const { get } = useFetchClient();\n\n const serverRestartWatcher = async (initTime?: number) => {\n const startTime = initTime ?? Date.now();\n\n if (Date.now() - startTime > timeout) {\n throw new Error(TIMEOUT);\n }\n\n try {\n const res = await get(`/content-type-builder/update-schema-status`);\n\n if (res?.data?.data?.isUpdating === true) {\n return new Promise((resolve) => {\n setTimeout(() => {\n return serverRestartWatcher(startTime).then(resolve);\n }, 200);\n });\n }\n } catch (err) {\n return new Promise((resolve) => {\n setTimeout(() => {\n return serverRestartWatcher(startTime).then(resolve);\n }, 200);\n });\n }\n };\n\n return serverRestartWatcher;\n};\n"],"names":["TIMEOUT","timeout","useServerRestartWatcher","get","useFetchClient","serverRestartWatcher","initTime","startTime","Date","now","Error","res","data","isUpdating","Promise","resolve","setTimeout","then","err"],"mappings":";;;;AAEA,MAAMA,OAAU,GAAA,SAAA;AAEhB,MAAMC,UAAU,EAAK,GAAA,IAAA;MAERC,uBAA0B,GAAA,IAAA;IACrC,MAAM,EAAEC,GAAG,EAAE,GAAGC,0BAAAA,EAAAA;AAEhB,IAAA,MAAMC,uBAAuB,OAAOC,QAAAA,GAAAA;QAClC,MAAMC,SAAAA,GAAYD,QAAYE,IAAAA,IAAAA,CAAKC,GAAG,EAAA;AAEtC,QAAA,IAAID,IAAKC,CAAAA,GAAG,EAAKF,GAAAA,SAAAA,GAAYN,OAAS,EAAA;AACpC,YAAA,MAAM,IAAIS,KAAMV,CAAAA,OAAAA,CAAAA;AAClB;QAEA,IAAI;AACF,YAAA,MAAMW,GAAM,GAAA,MAAMR,GAAI,CAAA,CAAC,0CAA0C,CAAC,CAAA;AAElE,YAAA,IAAIQ,GAAKC,EAAAA,IAAAA,EAAMA,IAAMC,EAAAA,UAAAA,KAAe,IAAM,EAAA;gBACxC,OAAO,IAAIC,QAAQ,CAACC,OAAAA,GAAAA;oBAClBC,UAAW,CAAA,IAAA;wBACT,OAAOX,oBAAAA,CAAqBE,SAAWU,CAAAA,CAAAA,IAAI,CAACF,OAAAA,CAAAA;qBAC3C,EAAA,GAAA,CAAA;AACL,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAOG,GAAK,EAAA;YACZ,OAAO,IAAIJ,QAAQ,CAACC,OAAAA,GAAAA;gBAClBC,UAAW,CAAA,IAAA;oBACT,OAAOX,oBAAAA,CAAqBE,SAAWU,CAAAA,CAAAA,IAAI,CAACF,OAAAA,CAAAA;iBAC3C,EAAA,GAAA,CAAA;AACL,aAAA,CAAA;AACF;AACF,KAAA;IAEA,OAAOV,oBAAAA;AACT;;;;"}
@@ -0,0 +1,33 @@
1
+ import { useFetchClient } from '@strapi/admin/strapi-admin';
2
+
3
+ const TIMEOUT = 'timeout';
4
+ const timeout = 30 * 1000;
5
+ const useServerRestartWatcher = ()=>{
6
+ const { get } = useFetchClient();
7
+ const serverRestartWatcher = async (initTime)=>{
8
+ const startTime = initTime ?? Date.now();
9
+ if (Date.now() - startTime > timeout) {
10
+ throw new Error(TIMEOUT);
11
+ }
12
+ try {
13
+ const res = await get(`/content-type-builder/update-schema-status`);
14
+ if (res?.data?.data?.isUpdating === true) {
15
+ return new Promise((resolve)=>{
16
+ setTimeout(()=>{
17
+ return serverRestartWatcher(startTime).then(resolve);
18
+ }, 200);
19
+ });
20
+ }
21
+ } catch (err) {
22
+ return new Promise((resolve)=>{
23
+ setTimeout(()=>{
24
+ return serverRestartWatcher(startTime).then(resolve);
25
+ }, 200);
26
+ });
27
+ }
28
+ };
29
+ return serverRestartWatcher;
30
+ };
31
+
32
+ export { useServerRestartWatcher };
33
+ //# sourceMappingURL=useServerRestartWatcher.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useServerRestartWatcher.mjs","sources":["../../../../admin/src/components/DataManager/useServerRestartWatcher.ts"],"sourcesContent":["import { useFetchClient } from '@strapi/admin/strapi-admin';\n\nconst TIMEOUT = 'timeout';\n\nconst timeout = 30 * 1000;\n\nexport const useServerRestartWatcher = () => {\n const { get } = useFetchClient();\n\n const serverRestartWatcher = async (initTime?: number) => {\n const startTime = initTime ?? Date.now();\n\n if (Date.now() - startTime > timeout) {\n throw new Error(TIMEOUT);\n }\n\n try {\n const res = await get(`/content-type-builder/update-schema-status`);\n\n if (res?.data?.data?.isUpdating === true) {\n return new Promise((resolve) => {\n setTimeout(() => {\n return serverRestartWatcher(startTime).then(resolve);\n }, 200);\n });\n }\n } catch (err) {\n return new Promise((resolve) => {\n setTimeout(() => {\n return serverRestartWatcher(startTime).then(resolve);\n }, 200);\n });\n }\n };\n\n return serverRestartWatcher;\n};\n"],"names":["TIMEOUT","timeout","useServerRestartWatcher","get","useFetchClient","serverRestartWatcher","initTime","startTime","Date","now","Error","res","data","isUpdating","Promise","resolve","setTimeout","then","err"],"mappings":";;AAEA,MAAMA,OAAU,GAAA,SAAA;AAEhB,MAAMC,UAAU,EAAK,GAAA,IAAA;MAERC,uBAA0B,GAAA,IAAA;IACrC,MAAM,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;AAEhB,IAAA,MAAMC,uBAAuB,OAAOC,QAAAA,GAAAA;QAClC,MAAMC,SAAAA,GAAYD,QAAYE,IAAAA,IAAAA,CAAKC,GAAG,EAAA;AAEtC,QAAA,IAAID,IAAKC,CAAAA,GAAG,EAAKF,GAAAA,SAAAA,GAAYN,OAAS,EAAA;AACpC,YAAA,MAAM,IAAIS,KAAMV,CAAAA,OAAAA,CAAAA;AAClB;QAEA,IAAI;AACF,YAAA,MAAMW,GAAM,GAAA,MAAMR,GAAI,CAAA,CAAC,0CAA0C,CAAC,CAAA;AAElE,YAAA,IAAIQ,GAAKC,EAAAA,IAAAA,EAAMA,IAAMC,EAAAA,UAAAA,KAAe,IAAM,EAAA;gBACxC,OAAO,IAAIC,QAAQ,CAACC,OAAAA,GAAAA;oBAClBC,UAAW,CAAA,IAAA;wBACT,OAAOX,oBAAAA,CAAqBE,SAAWU,CAAAA,CAAAA,IAAI,CAACF,OAAAA,CAAAA;qBAC3C,EAAA,GAAA,CAAA;AACL,iBAAA,CAAA;AACF;AACF,SAAA,CAAE,OAAOG,GAAK,EAAA;YACZ,OAAO,IAAIJ,QAAQ,CAACC,OAAAA,GAAAA;gBAClBC,UAAW,CAAA,IAAA;oBACT,OAAOX,oBAAAA,CAAqBE,SAAWU,CAAAA,CAAAA,IAAI,CAACF,OAAAA,CAAAA;iBAC3C,EAAA,GAAA,CAAA;AACL,aAAA,CAAA;AACF;AACF,KAAA;IAEA,OAAOV,oBAAAA;AACT;;;;"}
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var camelCase = require('lodash/camelCase');
4
+ var omit = require('lodash/omit');
5
+ var sortBy = require('lodash/sortBy');
6
+ var pluginId = require('../../../pluginId.js');
7
+
8
+ const sortContentType = (types)=>{
9
+ return sortBy(Object.keys(types).map((uid)=>({
10
+ visible: types[uid].visible,
11
+ name: uid,
12
+ title: types[uid].info.displayName,
13
+ plugin: types[uid].plugin,
14
+ uid: uid,
15
+ to: `/plugins/${pluginId.pluginId}/content-types/${uid}`,
16
+ kind: types[uid].kind,
17
+ restrictRelationsTo: types[uid].restrictRelationsTo,
18
+ status: types[uid].status
19
+ })).filter((obj)=>obj !== null), (obj)=>camelCase(obj.title));
20
+ };
21
+ const stateToRequestData = (state)=>{
22
+ const { components, contentTypes } = state;
23
+ return {
24
+ components: Object.values(components).filter((compo)=>{
25
+ return [
26
+ 'NEW',
27
+ 'CHANGED',
28
+ 'REMOVED'
29
+ ].includes(compo.status);
30
+ }).map(formatTypeForRequest),
31
+ contentTypes: Object.values(contentTypes).filter((ct)=>{
32
+ return [
33
+ 'NEW',
34
+ 'CHANGED',
35
+ 'REMOVED'
36
+ ].includes(ct.status);
37
+ }).map(formatTypeForRequest)
38
+ };
39
+ };
40
+ const removeNullKeys = (obj)=>{
41
+ return Object.fromEntries(Object.entries(obj).filter(([_, value])=>{
42
+ if (Array.isArray(value)) {
43
+ return value.length > 0;
44
+ }
45
+ if (typeof value === 'object' && value !== null) {
46
+ return Object.keys(value).length > 0;
47
+ }
48
+ return value !== null && value !== undefined;
49
+ }));
50
+ };
51
+ const formatAttribute = (attr)=>{
52
+ if ('customField' in attr) {
53
+ return {
54
+ ...attr,
55
+ type: 'customField'
56
+ };
57
+ }
58
+ if ('targetAttribute' in attr) {
59
+ return {
60
+ ...attr,
61
+ targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute
62
+ };
63
+ }
64
+ return attr;
65
+ };
66
+ const formatTypeForRequest = (type)=>{
67
+ let action;
68
+ // should we do a diff with the initial data instead of trusting the state status ??
69
+ switch(type.status){
70
+ case 'NEW':
71
+ action = 'create';
72
+ break;
73
+ case 'CHANGED':
74
+ action = 'update';
75
+ break;
76
+ case 'REMOVED':
77
+ return {
78
+ action: 'delete',
79
+ uid: type.uid
80
+ };
81
+ default:
82
+ throw new Error('Invalid status');
83
+ }
84
+ return {
85
+ action,
86
+ uid: type.uid,
87
+ category: 'category' in type ? type.category : undefined,
88
+ ...omit(type, [
89
+ 'info',
90
+ 'options',
91
+ 'visible',
92
+ 'uid',
93
+ 'restrictRelationsTo'
94
+ ]),
95
+ ...type.options,
96
+ ...type.info,
97
+ attributes: type.attributes.map((attr)=>{
98
+ let action;
99
+ switch(attr.status){
100
+ // NOTE: we want to always send the full data to preserve the order
101
+ case 'NEW':
102
+ action = 'create';
103
+ break;
104
+ case 'REMOVED':
105
+ return {
106
+ action: 'delete',
107
+ name: attr.name
108
+ };
109
+ case 'UNCHANGED':
110
+ case 'CHANGED':
111
+ default:
112
+ action = 'update';
113
+ }
114
+ return {
115
+ action,
116
+ name: attr.name,
117
+ properties: removeNullKeys(omit(formatAttribute(attr), [
118
+ 'status',
119
+ 'name'
120
+ ]))
121
+ };
122
+ })
123
+ };
124
+ };
125
+
126
+ exports.sortContentType = sortContentType;
127
+ exports.stateToRequestData = stateToRequestData;
128
+ //# sourceMappingURL=cleanData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanData.js","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\nconst stateToRequestData = (state: { components: Components; contentTypes: ContentTypes }) => {\n const { components, contentTypes } = state;\n\n return {\n components: Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map(formatTypeForRequest),\n contentTypes: Object.values(contentTypes)\n .filter((ct) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(ct.status);\n })\n .map(formatTypeForRequest),\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","state","components","contentTypes","values","compo","includes","formatTypeForRequest","ct","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","action","Error","category","omit","options","attributes","properties"],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import camelCase from 'lodash/camelCase';
2
+ import omit from 'lodash/omit';
3
+ import sortBy from 'lodash/sortBy';
4
+ import { pluginId } from '../../../pluginId.mjs';
5
+
6
+ const sortContentType = (types)=>{
7
+ return sortBy(Object.keys(types).map((uid)=>({
8
+ visible: types[uid].visible,
9
+ name: uid,
10
+ title: types[uid].info.displayName,
11
+ plugin: types[uid].plugin,
12
+ uid: uid,
13
+ to: `/plugins/${pluginId}/content-types/${uid}`,
14
+ kind: types[uid].kind,
15
+ restrictRelationsTo: types[uid].restrictRelationsTo,
16
+ status: types[uid].status
17
+ })).filter((obj)=>obj !== null), (obj)=>camelCase(obj.title));
18
+ };
19
+ const stateToRequestData = (state)=>{
20
+ const { components, contentTypes } = state;
21
+ return {
22
+ components: Object.values(components).filter((compo)=>{
23
+ return [
24
+ 'NEW',
25
+ 'CHANGED',
26
+ 'REMOVED'
27
+ ].includes(compo.status);
28
+ }).map(formatTypeForRequest),
29
+ contentTypes: Object.values(contentTypes).filter((ct)=>{
30
+ return [
31
+ 'NEW',
32
+ 'CHANGED',
33
+ 'REMOVED'
34
+ ].includes(ct.status);
35
+ }).map(formatTypeForRequest)
36
+ };
37
+ };
38
+ const removeNullKeys = (obj)=>{
39
+ return Object.fromEntries(Object.entries(obj).filter(([_, value])=>{
40
+ if (Array.isArray(value)) {
41
+ return value.length > 0;
42
+ }
43
+ if (typeof value === 'object' && value !== null) {
44
+ return Object.keys(value).length > 0;
45
+ }
46
+ return value !== null && value !== undefined;
47
+ }));
48
+ };
49
+ const formatAttribute = (attr)=>{
50
+ if ('customField' in attr) {
51
+ return {
52
+ ...attr,
53
+ type: 'customField'
54
+ };
55
+ }
56
+ if ('targetAttribute' in attr) {
57
+ return {
58
+ ...attr,
59
+ targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute
60
+ };
61
+ }
62
+ return attr;
63
+ };
64
+ const formatTypeForRequest = (type)=>{
65
+ let action;
66
+ // should we do a diff with the initial data instead of trusting the state status ??
67
+ switch(type.status){
68
+ case 'NEW':
69
+ action = 'create';
70
+ break;
71
+ case 'CHANGED':
72
+ action = 'update';
73
+ break;
74
+ case 'REMOVED':
75
+ return {
76
+ action: 'delete',
77
+ uid: type.uid
78
+ };
79
+ default:
80
+ throw new Error('Invalid status');
81
+ }
82
+ return {
83
+ action,
84
+ uid: type.uid,
85
+ category: 'category' in type ? type.category : undefined,
86
+ ...omit(type, [
87
+ 'info',
88
+ 'options',
89
+ 'visible',
90
+ 'uid',
91
+ 'restrictRelationsTo'
92
+ ]),
93
+ ...type.options,
94
+ ...type.info,
95
+ attributes: type.attributes.map((attr)=>{
96
+ let action;
97
+ switch(attr.status){
98
+ // NOTE: we want to always send the full data to preserve the order
99
+ case 'NEW':
100
+ action = 'create';
101
+ break;
102
+ case 'REMOVED':
103
+ return {
104
+ action: 'delete',
105
+ name: attr.name
106
+ };
107
+ case 'UNCHANGED':
108
+ case 'CHANGED':
109
+ default:
110
+ action = 'update';
111
+ }
112
+ return {
113
+ action,
114
+ name: attr.name,
115
+ properties: removeNullKeys(omit(formatAttribute(attr), [
116
+ 'status',
117
+ 'name'
118
+ ]))
119
+ };
120
+ })
121
+ };
122
+ };
123
+
124
+ export { sortContentType, stateToRequestData };
125
+ //# sourceMappingURL=cleanData.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanData.mjs","sources":["../../../../../admin/src/components/DataManager/utils/cleanData.ts"],"sourcesContent":["import camelCase from 'lodash/camelCase';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\n\nimport type {\n Component,\n Components,\n ContentTypes,\n ContentType,\n AnyAttribute,\n} from '../../../types';\nimport type { UID } from '@strapi/types';\n\nconst sortContentType = (types: ContentTypes) => {\n return sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].visible,\n name: uid as UID.ContentType,\n title: types[uid].info.displayName,\n plugin: types[uid].plugin,\n uid: uid as UID.ContentType,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].kind,\n restrictRelationsTo: types[uid].restrictRelationsTo,\n status: types[uid].status,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n};\n\nconst stateToRequestData = (state: { components: Components; contentTypes: ContentTypes }) => {\n const { components, contentTypes } = state;\n\n return {\n components: Object.values(components)\n .filter((compo) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(compo.status);\n })\n .map(formatTypeForRequest),\n contentTypes: Object.values(contentTypes)\n .filter((ct) => {\n return ['NEW', 'CHANGED', 'REMOVED'].includes(ct.status);\n })\n .map(formatTypeForRequest),\n };\n};\n\nconst removeNullKeys = (obj: Record<string, unknown>) => {\n return Object.fromEntries(\n Object.entries(obj).filter(([_, value]) => {\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object' && value !== null) {\n return Object.keys(value).length > 0;\n }\n return value !== null && value !== undefined;\n })\n );\n};\n\nconst formatAttribute = (attr: AnyAttribute) => {\n if ('customField' in attr) {\n return { ...attr, type: 'customField' };\n }\n\n if ('targetAttribute' in attr) {\n return { ...attr, targetAttribute: attr.targetAttribute === '-' ? null : attr.targetAttribute };\n }\n\n return attr;\n};\n\nconst formatTypeForRequest = (type: ContentType | Component) => {\n let action;\n // should we do a diff with the initial data instead of trusting the state status ??\n switch (type.status) {\n case 'NEW':\n action = 'create';\n break;\n case 'CHANGED':\n action = 'update';\n break;\n case 'REMOVED':\n return { action: 'delete', uid: type.uid };\n default:\n throw new Error('Invalid status');\n }\n\n return {\n action,\n uid: type.uid,\n category: 'category' in type ? type.category : undefined,\n ...omit(type, ['info', 'options', 'visible', 'uid', 'restrictRelationsTo']),\n ...type.options,\n ...type.info,\n attributes: type.attributes.map((attr) => {\n let action;\n\n switch (attr.status) {\n // NOTE: we want to always send the full data to preserve the order\n\n case 'NEW':\n action = 'create';\n break;\n case 'REMOVED':\n return { action: 'delete', name: attr.name };\n case 'UNCHANGED':\n case 'CHANGED':\n default:\n action = 'update';\n }\n\n return {\n action,\n name: attr.name,\n properties: removeNullKeys(omit(formatAttribute(attr), ['status', 'name'])),\n };\n }),\n };\n};\n\nexport { stateToRequestData, sortContentType };\n"],"names":["sortContentType","types","sortBy","Object","keys","map","uid","visible","name","title","info","displayName","plugin","to","pluginId","kind","restrictRelationsTo","status","filter","obj","camelCase","stateToRequestData","state","components","contentTypes","values","compo","includes","formatTypeForRequest","ct","removeNullKeys","fromEntries","entries","_","value","Array","isArray","length","undefined","formatAttribute","attr","type","targetAttribute","action","Error","category","omit","options","attributes","properties"],"mappings":"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"}