@strapi/content-type-builder 5.25.0 → 5.26.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 (328) hide show
  1. package/dist/admin/components/AIChat/Chat.js +431 -0
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -0
  3. package/dist/admin/components/AIChat/Chat.mjs +429 -0
  4. package/dist/admin/components/AIChat/Chat.mjs.map +1 -0
  5. package/dist/admin/components/AIChat/FeedbackModal.js +237 -0
  6. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -0
  7. package/dist/admin/components/AIChat/FeedbackModal.mjs +233 -0
  8. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -0
  9. package/dist/admin/components/AIChat/UploadCodeModal.js +427 -0
  10. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -0
  11. package/dist/admin/components/AIChat/UploadCodeModal.mjs +423 -0
  12. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -0
  13. package/dist/admin/components/AIChat/UploadFigmaModal.js +377 -0
  14. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -0
  15. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +373 -0
  16. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -0
  17. package/dist/admin/components/AIChat/components/Alert.js +46 -0
  18. package/dist/admin/components/AIChat/components/Alert.js.map +1 -0
  19. package/dist/admin/components/AIChat/components/Alert.mjs +44 -0
  20. package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -0
  21. package/dist/admin/components/AIChat/components/AnimatedBox.js +34 -0
  22. package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -0
  23. package/dist/admin/components/AIChat/components/AnimatedBox.mjs +32 -0
  24. package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -0
  25. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js +92 -0
  26. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -0
  27. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs +90 -0
  28. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -0
  29. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +100 -0
  30. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -0
  31. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +97 -0
  32. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -0
  33. package/dist/admin/components/AIChat/components/Base64Image.js +127 -0
  34. package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -0
  35. package/dist/admin/components/AIChat/components/Base64Image.mjs +125 -0
  36. package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -0
  37. package/dist/admin/components/AIChat/components/Collapsible.js +71 -0
  38. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -0
  39. package/dist/admin/components/AIChat/components/Collapsible.mjs +66 -0
  40. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -0
  41. package/dist/admin/components/AIChat/components/Dropzone.js +172 -0
  42. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -0
  43. package/dist/admin/components/AIChat/components/Dropzone.mjs +167 -0
  44. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -0
  45. package/dist/admin/components/AIChat/components/FloatingPanel.js +166 -0
  46. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -0
  47. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +163 -0
  48. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -0
  49. package/dist/admin/components/AIChat/components/FullScreenImage.js +190 -0
  50. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -0
  51. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +187 -0
  52. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -0
  53. package/dist/admin/components/AIChat/components/ImagePreview.js +87 -0
  54. package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -0
  55. package/dist/admin/components/AIChat/components/ImagePreview.mjs +85 -0
  56. package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -0
  57. package/dist/admin/components/AIChat/components/Input.js +126 -0
  58. package/dist/admin/components/AIChat/components/Input.js.map +1 -0
  59. package/dist/admin/components/AIChat/components/Input.mjs +121 -0
  60. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -0
  61. package/dist/admin/components/AIChat/components/Messages/Marker.js +138 -0
  62. package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -0
  63. package/dist/admin/components/AIChat/components/Messages/Marker.mjs +136 -0
  64. package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -0
  65. package/dist/admin/components/AIChat/components/Messages/Message.js +214 -0
  66. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -0
  67. package/dist/admin/components/AIChat/components/Messages/Message.mjs +212 -0
  68. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -0
  69. package/dist/admin/components/AIChat/components/ResizableTextArea.js +78 -0
  70. package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -0
  71. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs +76 -0
  72. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -0
  73. package/dist/admin/components/AIChat/components/SimpleMenu.js +60 -0
  74. package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -0
  75. package/dist/admin/components/AIChat/components/SimpleMenu.mjs +35 -0
  76. package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -0
  77. package/dist/admin/components/AIChat/components/StepModal.js +175 -0
  78. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -0
  79. package/dist/admin/components/AIChat/components/StepModal.mjs +171 -0
  80. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -0
  81. package/dist/admin/components/AIChat/components/animations.js +67 -0
  82. package/dist/admin/components/AIChat/components/animations.js.map +1 -0
  83. package/dist/admin/components/AIChat/components/animations.mjs +65 -0
  84. package/dist/admin/components/AIChat/components/animations.mjs.map +1 -0
  85. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js +50 -0
  86. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -0
  87. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs +48 -0
  88. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -0
  89. package/dist/admin/components/AIChat/components/icons/StopIcon.js +25 -0
  90. package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -0
  91. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs +23 -0
  92. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -0
  93. package/dist/admin/components/AIChat/hooks/useAIFetch.js +107 -0
  94. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -0
  95. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs +96 -0
  96. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -0
  97. package/dist/admin/components/AIChat/hooks/useAttachments.js +152 -0
  98. package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -0
  99. package/dist/admin/components/AIChat/hooks/useAttachments.mjs +150 -0
  100. package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -0
  101. package/dist/admin/components/AIChat/hooks/useChatTitle.js +47 -0
  102. package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -0
  103. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs +45 -0
  104. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -0
  105. package/dist/admin/components/AIChat/hooks/useCodeUpload.js +212 -0
  106. package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -0
  107. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs +207 -0
  108. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -0
  109. package/dist/admin/components/AIChat/hooks/useFeedback.js +76 -0
  110. package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -0
  111. package/dist/admin/components/AIChat/hooks/useFeedback.mjs +74 -0
  112. package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -0
  113. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js +206 -0
  114. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -0
  115. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs +200 -0
  116. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -0
  117. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js +115 -0
  118. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -0
  119. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs +113 -0
  120. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -0
  121. package/dist/admin/components/AIChat/hooks/useTranslations.js +19 -0
  122. package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -0
  123. package/dist/admin/components/AIChat/hooks/useTranslations.mjs +17 -0
  124. package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -0
  125. package/dist/admin/components/AIChat/lib/aiClient.js +168 -0
  126. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -0
  127. package/dist/admin/components/AIChat/lib/aiClient.mjs +161 -0
  128. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -0
  129. package/dist/admin/components/AIChat/lib/constants.js +16 -0
  130. package/dist/admin/components/AIChat/lib/constants.js.map +1 -0
  131. package/dist/admin/components/AIChat/lib/constants.mjs +10 -0
  132. package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -0
  133. package/dist/admin/components/AIChat/lib/misc.js +8 -0
  134. package/dist/admin/components/AIChat/lib/misc.js.map +1 -0
  135. package/dist/admin/components/AIChat/lib/misc.mjs +6 -0
  136. package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -0
  137. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +46 -0
  138. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -0
  139. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +44 -0
  140. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -0
  141. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +151 -0
  142. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -0
  143. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +148 -0
  144. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -0
  145. package/dist/admin/components/AIChat/providers/ChatProvider.js +191 -0
  146. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -0
  147. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +187 -0
  148. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -0
  149. package/dist/admin/components/AIChat/providers/SchemaProvider.js +90 -0
  150. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -0
  151. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +88 -0
  152. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -0
  153. package/dist/admin/components/ComponentList.js +1 -0
  154. package/dist/admin/components/ComponentList.js.map +1 -1
  155. package/dist/admin/components/ComponentList.mjs +1 -0
  156. package/dist/admin/components/ComponentList.mjs.map +1 -1
  157. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  158. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  159. package/dist/admin/components/DataManager/reducer.js +48 -6
  160. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  161. package/dist/admin/components/DataManager/reducer.mjs +48 -6
  162. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  163. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  164. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  165. package/dist/admin/pages/App/index.js +60 -29
  166. package/dist/admin/pages/App/index.js.map +1 -1
  167. package/dist/admin/pages/App/index.mjs +62 -31
  168. package/dist/admin/pages/App/index.mjs.map +1 -1
  169. package/dist/admin/pages/ListView/EmptyState.js +75 -9
  170. package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
  171. package/dist/admin/pages/ListView/EmptyState.mjs +77 -11
  172. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
  173. package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
  174. package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
  175. package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
  176. package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
  177. package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
  178. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +13 -0
  179. package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
  180. package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
  181. package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
  182. package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
  183. package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +35 -0
  184. package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +34 -0
  185. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
  186. package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
  187. package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
  188. package/dist/admin/src/components/AIChat/components/Input.d.ts +43 -0
  189. package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
  190. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +5 -0
  191. package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +9 -0
  192. package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
  193. package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
  194. package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
  195. package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +5 -0
  196. package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +5 -0
  197. package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
  198. package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
  199. package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
  200. package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
  201. package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
  202. package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
  203. package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
  204. package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
  205. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
  206. package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
  207. package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
  208. package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
  209. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +3 -0
  210. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
  211. package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
  212. package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
  213. package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
  214. package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
  215. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +20 -0
  216. package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
  217. package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
  218. package/dist/admin/src/components/ComponentList.d.ts +1 -1
  219. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +1 -1
  220. package/dist/admin/translations/ar.json.js +187 -2
  221. package/dist/admin/translations/ar.json.js.map +1 -1
  222. package/dist/admin/translations/ar.json.mjs +187 -3
  223. package/dist/admin/translations/ar.json.mjs.map +1 -1
  224. package/dist/admin/translations/de.json.js +42 -7
  225. package/dist/admin/translations/de.json.js.map +1 -1
  226. package/dist/admin/translations/de.json.mjs +42 -7
  227. package/dist/admin/translations/de.json.mjs.map +1 -1
  228. package/dist/admin/translations/en.json.js +53 -2
  229. package/dist/admin/translations/en.json.js.map +1 -1
  230. package/dist/admin/translations/en.json.mjs +53 -2
  231. package/dist/admin/translations/en.json.mjs.map +1 -1
  232. package/dist/admin/translations/es.json.js +37 -15
  233. package/dist/admin/translations/es.json.js.map +1 -1
  234. package/dist/admin/translations/es.json.mjs +37 -15
  235. package/dist/admin/translations/es.json.mjs.map +1 -1
  236. package/dist/admin/translations/fr.json.js +165 -3
  237. package/dist/admin/translations/fr.json.js.map +1 -1
  238. package/dist/admin/translations/fr.json.mjs +165 -4
  239. package/dist/admin/translations/fr.json.mjs.map +1 -1
  240. package/dist/admin/translations/id.json.js +93 -23
  241. package/dist/admin/translations/id.json.js.map +1 -1
  242. package/dist/admin/translations/id.json.mjs +93 -23
  243. package/dist/admin/translations/id.json.mjs.map +1 -1
  244. package/dist/admin/translations/it.json.js +75 -6
  245. package/dist/admin/translations/it.json.js.map +1 -1
  246. package/dist/admin/translations/it.json.mjs +75 -6
  247. package/dist/admin/translations/it.json.mjs.map +1 -1
  248. package/dist/admin/translations/ja.json.js +191 -5
  249. package/dist/admin/translations/ja.json.js.map +1 -1
  250. package/dist/admin/translations/ja.json.mjs +191 -6
  251. package/dist/admin/translations/ja.json.mjs.map +1 -1
  252. package/dist/admin/translations/ko.json.js +70 -16
  253. package/dist/admin/translations/ko.json.js.map +1 -1
  254. package/dist/admin/translations/ko.json.mjs +70 -16
  255. package/dist/admin/translations/ko.json.mjs.map +1 -1
  256. package/dist/admin/translations/ms.json.js +104 -31
  257. package/dist/admin/translations/ms.json.js.map +1 -1
  258. package/dist/admin/translations/ms.json.mjs +104 -31
  259. package/dist/admin/translations/ms.json.mjs.map +1 -1
  260. package/dist/admin/translations/nl.json.js +95 -15
  261. package/dist/admin/translations/nl.json.js.map +1 -1
  262. package/dist/admin/translations/nl.json.mjs +95 -15
  263. package/dist/admin/translations/nl.json.mjs.map +1 -1
  264. package/dist/admin/translations/pl.json.js +55 -11
  265. package/dist/admin/translations/pl.json.js.map +1 -1
  266. package/dist/admin/translations/pl.json.mjs +55 -11
  267. package/dist/admin/translations/pl.json.mjs.map +1 -1
  268. package/dist/admin/translations/pt-BR.json.js +54 -10
  269. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  270. package/dist/admin/translations/pt-BR.json.mjs +54 -10
  271. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  272. package/dist/admin/translations/pt.json.js +187 -2
  273. package/dist/admin/translations/pt.json.js.map +1 -1
  274. package/dist/admin/translations/pt.json.mjs +187 -3
  275. package/dist/admin/translations/pt.json.mjs.map +1 -1
  276. package/dist/admin/translations/ru.json.js +26 -1
  277. package/dist/admin/translations/ru.json.js.map +1 -1
  278. package/dist/admin/translations/ru.json.mjs +26 -1
  279. package/dist/admin/translations/ru.json.mjs.map +1 -1
  280. package/dist/admin/translations/sk.json.js +21 -1
  281. package/dist/admin/translations/sk.json.js.map +1 -1
  282. package/dist/admin/translations/sk.json.mjs +21 -1
  283. package/dist/admin/translations/sk.json.mjs.map +1 -1
  284. package/dist/admin/translations/sv.json.js +21 -1
  285. package/dist/admin/translations/sv.json.js.map +1 -1
  286. package/dist/admin/translations/sv.json.mjs +21 -1
  287. package/dist/admin/translations/sv.json.mjs.map +1 -1
  288. package/dist/admin/translations/th.json.js +21 -1
  289. package/dist/admin/translations/th.json.js.map +1 -1
  290. package/dist/admin/translations/th.json.mjs +21 -1
  291. package/dist/admin/translations/th.json.mjs.map +1 -1
  292. package/dist/admin/translations/tr.json.js +21 -1
  293. package/dist/admin/translations/tr.json.js.map +1 -1
  294. package/dist/admin/translations/tr.json.mjs +21 -1
  295. package/dist/admin/translations/tr.json.mjs.map +1 -1
  296. package/dist/admin/translations/uk.json.js +21 -2
  297. package/dist/admin/translations/uk.json.js.map +1 -1
  298. package/dist/admin/translations/uk.json.mjs +21 -2
  299. package/dist/admin/translations/uk.json.mjs.map +1 -1
  300. package/dist/admin/translations/zh-Hans.json.js +222 -133
  301. package/dist/admin/translations/zh-Hans.json.js.map +1 -1
  302. package/dist/admin/translations/zh-Hans.json.mjs +222 -133
  303. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
  304. package/dist/admin/translations/zh.json.js +21 -1
  305. package/dist/admin/translations/zh.json.js.map +1 -1
  306. package/dist/admin/translations/zh.json.mjs +21 -1
  307. package/dist/admin/translations/zh.json.mjs.map +1 -1
  308. package/dist/server/index.js +2 -0
  309. package/dist/server/index.js.map +1 -1
  310. package/dist/server/index.mjs +2 -0
  311. package/dist/server/index.mjs.map +1 -1
  312. package/dist/server/register.js +98 -0
  313. package/dist/server/register.js.map +1 -0
  314. package/dist/server/register.mjs +96 -0
  315. package/dist/server/register.mjs.map +1 -0
  316. package/dist/server/src/controllers/ai/auth.d.ts +1 -0
  317. package/dist/server/src/controllers/ai/auth.d.ts.map +1 -0
  318. package/dist/server/src/controllers/ai/index.d.ts +1 -0
  319. package/dist/server/src/controllers/ai/index.d.ts.map +1 -0
  320. package/dist/server/src/index.d.ts +1 -0
  321. package/dist/server/src/index.d.ts.map +1 -1
  322. package/dist/server/src/register.d.ts +11 -0
  323. package/dist/server/src/register.d.ts.map +1 -0
  324. package/package.json +12 -5
  325. package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
  326. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
  327. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
  328. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/DataManager/reducer.ts"],"sourcesContent":["import { PayloadAction } from '@reduxjs/toolkit';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport { createUndoRedoSlice } from './undoRedo';\nimport { formatSchema } from './utils/formatSchemas';\n\nimport type {\n Components,\n ContentTypes,\n ContentType,\n Component,\n Status,\n AnyAttribute,\n} from '../../types';\nimport type { Internal, Schema, Struct, UID } from '@strapi/types';\n\nexport interface DataManagerStateType {\n components: Components;\n initialComponents: Components;\n contentTypes: ContentTypes;\n initialContentTypes: ContentTypes;\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n isLoading: boolean;\n [key: string]: any;\n}\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n reservedNames: {\n models: [],\n attributes: [],\n },\n isLoading: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.Any) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (type: any, attributeToFind?: string) => {\n return type.attributes.findIndex(({ name }: { name: string }) => name === attributeToFind);\n};\n\ntype InitPayload = {\n components: Record<string, Component>;\n contentTypes: Record<string, ContentType>;\n reservedNames: DataManagerStateType['reservedNames'];\n};\n\ntype AddAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype AddCreateComponentToDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n};\n\ntype AddCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype ChangeDynamicZoneComponentsPayload = {\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype CreateComponentSchemaPayload = {\n uid: string;\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n};\n\ntype CreateSchemaPayload = {\n uid: string;\n data: {\n displayName: string;\n singularName: string;\n pluralName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n};\n\ntype EditAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype EditCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype RemoveComponentFromDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dzName: string;\n componentToRemoveIndex: number;\n};\n\ntype RemoveFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n attributeToRemoveName: string;\n};\n\ntype UpdateComponentSchemaPayload = {\n data: {\n icon: string;\n displayName: string;\n };\n uid: Internal.UID.Component;\n};\n\ntype UpdateComponentUIDPayload = {\n uid: Internal.UID.Component;\n newComponentUID: Internal.UID.Component;\n};\n\ntype UpdateSchemaPayload = {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: string;\n};\n\ntype MoveAttributePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n from: number;\n to: number;\n};\n\nconst getType = (\n state: DataManagerStateType,\n {\n forTarget,\n targetUid,\n }: {\n forTarget: Struct.ModelType;\n targetUid: string;\n }\n) => {\n return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n};\n\n// TODO: use initial state when chnaging back to the initial state without knowing\nconst setStatus = (type: ContentType | Component, status: Status) => {\n switch (type.status) {\n case 'NEW':\n case 'REMOVED': {\n break;\n }\n default: {\n type.status = status;\n }\n }\n};\n\nconst getNewStatus = (oldStatus: Status | undefined, newStatus: Status) => {\n if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {\n return oldStatus;\n }\n\n return newStatus;\n};\n\nconst setAttributeStatus = (attribute: Record<string, any>, status: Status) => {\n attribute.status = getNewStatus(attribute.status, status);\n};\n\nconst createAttribute = (properties: Record<string, any>): AnyAttribute => {\n return {\n ...properties,\n status: 'NEW',\n } as AnyAttribute;\n};\n\nconst setAttributeAt = (type: ContentType | Component, index: number, attribute: AnyAttribute) => {\n const previousAttribute = type.attributes[index];\n\n const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');\n\n type.attributes[index] = {\n ...attribute,\n status: newStatus,\n };\n\n setStatus(type, 'CHANGED');\n};\n\nconst pushAttribute = (type: ContentType | Component, attribute: AnyAttribute) => {\n type.attributes.push(attribute);\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeAt = (type: ContentType | Component, index: number) => {\n const attr = type.attributes[index];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(index, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst replaceAttributeAt = (\n type: ContentType | Component,\n index: number,\n attribute: AnyAttribute\n) => {\n type.attributes[index] = attribute;\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeByName = (type: ContentType | Component, name: string) => {\n const idx = type.attributes.findIndex((attr) => attr.name === name);\n\n const attr = type.attributes[idx];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(idx, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst updateType = (type: ContentType | Component, data: Record<string, any>) => {\n merge(type, data);\n setStatus(type, 'CHANGED');\n};\n\nconst slice = createUndoRedoSlice(\n {\n name: 'data-manager',\n initialState,\n reducers: {\n init: (state, action: PayloadAction<InitPayload>) => {\n const { components, contentTypes, reservedNames } = action.payload;\n\n state.components = components;\n state.initialComponents = components;\n state.initialContentTypes = contentTypes;\n state.contentTypes = contentTypes;\n state.reservedNames = reservedNames;\n state.isLoading = false;\n },\n createComponentSchema: (state, action: PayloadAction<CreateComponentSchemaPayload>) => {\n const { uid, data, componentCategory } = action.payload;\n\n const newSchema: Component = {\n uid: uid as Internal.UID.Component,\n status: 'NEW',\n category: componentCategory,\n modelName: data.displayName,\n globalId: data.displayName,\n info: {\n icon: data.icon,\n displayName: data.displayName,\n },\n attributes: [],\n modelType: 'component',\n };\n\n state.components[uid as string] = newSchema;\n },\n createSchema: (state, action: PayloadAction<CreateSchemaPayload>) => {\n const { uid, data } = action.payload;\n\n const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } =\n data;\n\n const newSchema: ContentType = {\n uid: uid as Internal.UID.ContentType,\n status: 'NEW',\n visible: true,\n modelType: 'contentType',\n restrictRelationsTo: null,\n attributes: [],\n kind,\n modelName: displayName,\n globalId: displayName,\n options: {\n draftAndPublish,\n },\n info: {\n displayName,\n singularName,\n pluralName,\n },\n pluginOptions,\n };\n\n state.contentTypes[uid] = newSchema;\n },\n addAttribute: (state, action: PayloadAction<AddAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = createAttribute(omit(attributeToSet, 'createComponent'));\n\n if (attribute.type === 'relation') {\n const target = attribute.target;\n const targetAttribute = attribute.targetAttribute || null;\n const relation = attribute.relation;\n const relationType = getRelationType(relation, targetAttribute);\n\n const isBidirectionalRelation = !['oneWay', 'manyWay'].includes(relationType);\n\n if (isBidirectionalRelation) {\n const oppositeAttribute = createAttribute({\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target: type.uid,\n targetAttribute: attribute.name,\n type: 'relation',\n private: attribute.private,\n });\n\n const targetType = getType(state, { forTarget, targetUid: target });\n pushAttribute(targetType, oppositeAttribute);\n }\n }\n\n pushAttribute(type, attribute);\n setStatus(type, 'CHANGED');\n },\n moveAttribute: (state, action: PayloadAction<MoveAttributePayload>) => {\n const { forTarget, targetUid, from, to } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = type.attributes[from];\n type.attributes.splice(from, 1);\n type.attributes.splice(to, 0, attribute);\n setStatus(type, 'CHANGED');\n },\n addCustomFieldAttribute: (state, action: PayloadAction<AddCustomFieldAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n pushAttribute(type, createAttribute(attributeToSet));\n },\n addCreatedComponentToDynamicZone: (\n state,\n action: PayloadAction<AddCreateComponentToDynamicZonePayload>\n ) => {\n const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n attr.components.push(componentUid);\n });\n\n setAttributeStatus(attr, 'CHANGED');\n setStatus(type, 'CHANGED');\n },\n changeDynamicZoneComponents: (\n state,\n action: PayloadAction<ChangeDynamicZoneComponentsPayload>\n ) => {\n const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n const currentDZComponents = attr.components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components = updatedComponents;\n },\n editAttribute: (state, action: PayloadAction<EditAttributePayload>) => {\n const { name, attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, name);\n\n if (initialAttributeIndex === -1) {\n return;\n }\n\n const previousAttribute = type.attributes[initialAttributeIndex];\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n\n if (previousAttribute.type !== attributeToSet.type) {\n return;\n }\n\n if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {\n return;\n }\n\n const previousTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: previousAttribute.target,\n });\n const newTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: attributeToSet.target,\n });\n\n const previousTargetAttributeIndex = findAttributeIndex(\n previousTarget,\n previousAttribute.targetAttribute ?? ''\n );\n\n // remove old targetAttribute\n if (previousAttribute.targetAttribute) {\n removeAttributeByName(previousTarget, previousAttribute.targetAttribute);\n }\n\n const newRelationType = getRelationType(\n attributeToSet.relation,\n attributeToSet.targetAttribute\n );\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);\n\n if (isBidirectionnal) {\n const newTargetAttribute = {\n name: attributeToSet.targetAttribute,\n type: 'relation',\n relation: getOppositeRelation(attributeToSet.relation),\n targetAttribute: attributeToSet.name,\n target: type.uid,\n private: previousAttribute.private ?? attributeToSet.private,\n pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,\n status: 'CHANGED',\n } as AnyAttribute;\n\n // create or recreate(at old index) targetAttribute\n if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {\n // re-create at previousIdx if possible\n replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);\n } else {\n pushAttribute(newTarget, {\n ...newTargetAttribute,\n status: 'NEW',\n });\n }\n }\n },\n editCustomFieldAttribute: (state, action: PayloadAction<EditCustomFieldAttributePayload>) => {\n const { forTarget, targetUid, name, attributeToSet } = action.payload;\n\n const initialAttributeName = name;\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n },\n reloadPlugin: () => {\n return initialState;\n },\n removeComponentFromDynamicZone: (\n state,\n action: PayloadAction<RemoveComponentFromDynamicZonePayload>\n ) => {\n const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;\n\n const type =\n forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n\n if (!type) {\n return;\n }\n\n const dzAttributeIndex = findAttributeIndex(type, dzName);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components.splice(componentToRemoveIndex, 1);\n },\n removeField: (state, action: PayloadAction<RemoveFieldPayload>) => {\n const { forTarget, targetUid, attributeToRemoveName } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);\n const attribute = type.attributes[attributeToRemoveIndex];\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute: targetAttributeName } = attribute;\n const relationType = getRelationType(relation, targetAttributeName);\n\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (isBidirectionnal && targetAttributeName) {\n const targetContentType = getType(state, { forTarget, targetUid: target });\n const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);\n\n removeAttributeAt(targetContentType, targetAttributeIndex);\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n type.attributes.forEach((attribute) => {\n if (attribute.type === 'uid') {\n if (attribute.targetField === attributeToRemoveName) {\n delete attribute.targetField;\n }\n }\n });\n\n removeAttributeAt(type, attributeToRemoveIndex);\n },\n // only edits a component in practice\n updateComponentSchema: (state, action: PayloadAction<UpdateComponentSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName: data.displayName,\n icon: data.icon,\n },\n });\n },\n updateComponentUid: (state, action: PayloadAction<UpdateComponentUIDPayload>) => {\n const { newComponentUID, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type || type.status !== 'NEW') {\n return;\n }\n\n if (newComponentUID !== uid) {\n const newType = { ...type, uid: newComponentUID };\n state.components[newComponentUID] = newType;\n delete state.components[uid];\n\n // update the uid in the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.map((component: UID.Component) => {\n if (component === uid) {\n return newComponentUID;\n }\n\n return component;\n });\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n\n // update the uid in the other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n }\n },\n updateSchema: (state, action: PayloadAction<UpdateSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const { displayName, kind, draftAndPublish, pluginOptions } = data;\n\n const type = state.contentTypes[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName,\n },\n kind,\n options: {\n draftAndPublish,\n },\n pluginOptions,\n });\n },\n deleteComponent: (state, action: PayloadAction<Internal.UID.Component>) => {\n const uid = action.payload;\n\n // remove the compo from the components\n if (state.components[uid].status === 'NEW') {\n delete state.components[uid];\n } else {\n setStatus(state.components[uid], 'REMOVED');\n }\n\n // remove the compo from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n // remove from dynamic zones\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.filter(\n (component: unknown) => component !== uid\n );\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n\n // remove the compo from other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n },\n deleteContentType: (state, action: PayloadAction<Internal.UID.ContentType>) => {\n const uid = action.payload;\n const type = state.contentTypes[uid];\n\n // just drop new content types\n if (type.status === 'NEW') {\n delete state.contentTypes[uid];\n } else {\n setStatus(type, 'REMOVED');\n }\n\n // remove the content type from the components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n\n // remove the content type from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n },\n\n applyChange(\n state,\n reducerAction: PayloadAction<{\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }>\n ) {\n const { action, schema } = reducerAction.payload;\n\n switch (action) {\n case 'add': {\n // generate a uid ?\n const uid = schema.uid;\n\n if (schema.modelType === 'component') {\n state.components[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n } else {\n state.contentTypes[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n }\n }\n }\n },\n },\n },\n {\n limit: 50,\n excludeActionsFromHistory: ['reloadPlugin', 'init'],\n stateSelector: (state) => {\n if (!state) {\n return {};\n }\n\n return {\n components: state.components,\n contentTypes: state.contentTypes,\n };\n },\n discard: (state) => {\n state.components = state.initialComponents;\n state.contentTypes = state.initialContentTypes;\n },\n }\n);\n\nexport type State = ReturnType<typeof slice.reducer>;\nexport const { reducer, actions } = slice;\nexport { initialState };\n"],"names":["initialState","components","contentTypes","initialComponents","initialContentTypes","reservedNames","models","attributes","isLoading","ONE_SIDE_RELATIONS","getOppositeRelation","originalRelation","findAttributeIndex","type","attributeToFind","findIndex","name","getType","state","forTarget","targetUid","setStatus","status","getNewStatus","oldStatus","newStatus","setAttributeStatus","attribute","createAttribute","properties","setAttributeAt","index","previousAttribute","pushAttribute","push","removeAttributeAt","attr","splice","replaceAttributeAt","removeAttributeByName","idx","updateType","data","merge","slice","createUndoRedoSlice","reducers","init","action","payload","createComponentSchema","uid","componentCategory","newSchema","category","modelName","displayName","globalId","info","icon","modelType","createSchema","singularName","pluralName","kind","draftAndPublish","pluginOptions","visible","restrictRelationsTo","options","addAttribute","attributeToSet","omit","target","targetAttribute","relation","relationType","getRelationType","isBidirectionalRelation","includes","oppositeAttribute","private","targetType","moveAttribute","from","to","addCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","dzAttributeIndex","forEach","componentUid","changeDynamicZoneComponents","newComponents","currentDZComponents","updatedComponents","makeUnique","editAttribute","initialAttributeIndex","previousTarget","newTarget","previousTargetAttributeIndex","newRelationType","isBidirectionnal","newTargetAttribute","editCustomFieldAttribute","initialAttributeName","reloadPlugin","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","removeField","attributeToRemoveName","attributeToRemoveIndex","targetAttributeName","targetContentType","targetAttributeIndex","targetField","updateComponentSchema","updateComponentUid","newComponentUID","newType","Object","keys","contentTypeUid","contentType","map","component","updateSchema","deleteComponent","filter","deleteContentType","applyChange","reducerAction","schema","formatSchema","limit","excludeActionsFromHistory","stateSelector","discard","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/DataManager/reducer.ts"],"sourcesContent":["import { PayloadAction } from '@reduxjs/toolkit';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport { createUndoRedoSlice } from './undoRedo';\n\nimport type {\n Components,\n ContentTypes,\n ContentType,\n Component,\n Status,\n AnyAttribute,\n} from '../../types';\nimport type { Internal, Schema, Struct, UID } from '@strapi/types';\n\nexport interface DataManagerStateType {\n components: Components;\n initialComponents: Components;\n contentTypes: ContentTypes;\n initialContentTypes: ContentTypes;\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n isLoading: boolean;\n [key: string]: any;\n}\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n reservedNames: {\n models: [],\n attributes: [],\n },\n isLoading: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.Any) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (type: any, attributeToFind?: string) => {\n return type.attributes.findIndex(({ name }: { name: string }) => name === attributeToFind);\n};\n\ntype InitPayload = {\n components: Record<string, Component>;\n contentTypes: Record<string, ContentType>;\n reservedNames: DataManagerStateType['reservedNames'];\n};\n\ntype AddAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype AddCreateComponentToDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n};\n\ntype AddCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype ChangeDynamicZoneComponentsPayload = {\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype CreateComponentSchemaPayload = {\n uid: string;\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n};\n\ntype CreateSchemaPayload = {\n uid: string;\n data: {\n displayName: string;\n singularName: string;\n pluralName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n};\n\ntype EditAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype EditCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype RemoveComponentFromDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dzName: string;\n componentToRemoveIndex: number;\n};\n\ntype RemoveFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n attributeToRemoveName: string;\n};\n\ntype UpdateComponentSchemaPayload = {\n data: {\n icon: string;\n displayName: string;\n };\n uid: Internal.UID.Component;\n};\n\ntype UpdateComponentUIDPayload = {\n uid: Internal.UID.Component;\n newComponentUID: Internal.UID.Component;\n};\n\ntype UpdateSchemaPayload = {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: string;\n};\n\ntype MoveAttributePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n from: number;\n to: number;\n};\n\nconst getType = (\n state: DataManagerStateType,\n {\n forTarget,\n targetUid,\n }: {\n forTarget: Struct.ModelType;\n targetUid: string;\n }\n) => {\n return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n};\n\n// TODO: use initial state when chnaging back to the initial state without knowing\nconst setStatus = (type: ContentType | Component, status: Status) => {\n switch (type.status) {\n case 'NEW':\n case 'REMOVED': {\n break;\n }\n default: {\n type.status = status;\n }\n }\n};\n\nconst getNewStatus = (oldStatus: Status | undefined, newStatus: Status) => {\n if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {\n return oldStatus;\n }\n\n return newStatus;\n};\n\nconst setAttributeStatus = (attribute: Record<string, any>, status: Status) => {\n attribute.status = getNewStatus(attribute.status, status);\n};\n\nconst createAttribute = (properties: Record<string, any>): AnyAttribute => {\n return {\n ...properties,\n status: 'NEW',\n } as AnyAttribute;\n};\n\nconst setAttributeAt = (type: ContentType | Component, index: number, attribute: AnyAttribute) => {\n const previousAttribute = type.attributes[index];\n\n const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');\n\n type.attributes[index] = {\n ...attribute,\n status: newStatus,\n };\n\n setStatus(type, 'CHANGED');\n};\n\nconst pushAttribute = (type: ContentType | Component, attribute: AnyAttribute) => {\n type.attributes.push(attribute);\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeAt = (type: ContentType | Component, index: number) => {\n const attr = type.attributes[index];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(index, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst replaceAttributeAt = (\n type: ContentType | Component,\n index: number,\n attribute: AnyAttribute\n) => {\n type.attributes[index] = attribute;\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeByName = (type: ContentType | Component, name: string) => {\n const idx = type.attributes.findIndex((attr) => attr.name === name);\n\n const attr = type.attributes[idx];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(idx, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst updateType = (type: ContentType | Component, data: Record<string, any>) => {\n merge(type, data);\n setStatus(type, 'CHANGED');\n};\n\nconst slice = createUndoRedoSlice(\n {\n name: 'data-manager',\n initialState,\n reducers: {\n init: (state, action: PayloadAction<InitPayload>) => {\n const { components, contentTypes, reservedNames } = action.payload;\n\n state.components = components;\n state.initialComponents = components;\n state.initialContentTypes = contentTypes;\n state.contentTypes = contentTypes;\n state.reservedNames = reservedNames;\n state.isLoading = false;\n },\n createComponentSchema: (state, action: PayloadAction<CreateComponentSchemaPayload>) => {\n const { uid, data, componentCategory } = action.payload;\n\n const newSchema: Component = {\n uid: uid as Internal.UID.Component,\n status: 'NEW',\n category: componentCategory,\n modelName: data.displayName,\n globalId: data.displayName,\n info: {\n icon: data.icon,\n displayName: data.displayName,\n },\n attributes: [],\n modelType: 'component',\n };\n\n state.components[uid as string] = newSchema;\n },\n createSchema: (state, action: PayloadAction<CreateSchemaPayload>) => {\n const { uid, data } = action.payload;\n\n const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } =\n data;\n\n const newSchema: ContentType = {\n uid: uid as Internal.UID.ContentType,\n status: 'NEW',\n visible: true,\n modelType: 'contentType',\n restrictRelationsTo: null,\n attributes: [],\n kind,\n modelName: displayName,\n globalId: displayName,\n options: {\n draftAndPublish,\n },\n info: {\n displayName,\n singularName,\n pluralName,\n },\n pluginOptions,\n };\n\n state.contentTypes[uid] = newSchema;\n },\n addAttribute: (state, action: PayloadAction<AddAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = createAttribute(omit(attributeToSet, 'createComponent'));\n\n if (attribute.type === 'relation') {\n const target = attribute.target;\n const targetAttribute = attribute.targetAttribute || null;\n const relation = attribute.relation;\n const relationType = getRelationType(relation, targetAttribute);\n\n const isBidirectionalRelation = !['oneWay', 'manyWay'].includes(relationType);\n\n if (isBidirectionalRelation) {\n const oppositeAttribute = createAttribute({\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target: type.uid,\n targetAttribute: attribute.name,\n type: 'relation',\n private: attribute.private,\n });\n\n const targetType = getType(state, { forTarget, targetUid: target });\n pushAttribute(targetType, oppositeAttribute);\n }\n }\n\n pushAttribute(type, attribute);\n setStatus(type, 'CHANGED');\n },\n moveAttribute: (state, action: PayloadAction<MoveAttributePayload>) => {\n const { forTarget, targetUid, from, to } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = type.attributes[from];\n type.attributes.splice(from, 1);\n type.attributes.splice(to, 0, attribute);\n setStatus(type, 'CHANGED');\n },\n addCustomFieldAttribute: (state, action: PayloadAction<AddCustomFieldAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n pushAttribute(type, createAttribute(attributeToSet));\n },\n addCreatedComponentToDynamicZone: (\n state,\n action: PayloadAction<AddCreateComponentToDynamicZonePayload>\n ) => {\n const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n attr.components.push(componentUid);\n });\n\n setAttributeStatus(attr, 'CHANGED');\n setStatus(type, 'CHANGED');\n },\n changeDynamicZoneComponents: (\n state,\n action: PayloadAction<ChangeDynamicZoneComponentsPayload>\n ) => {\n const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n const currentDZComponents = attr.components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components = updatedComponents;\n },\n editAttribute: (state, action: PayloadAction<EditAttributePayload>) => {\n const { name, attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, name);\n\n if (initialAttributeIndex === -1) {\n return;\n }\n\n const previousAttribute = type.attributes[initialAttributeIndex];\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n\n if (previousAttribute.type !== attributeToSet.type) {\n return;\n }\n\n if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {\n return;\n }\n\n const previousTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: previousAttribute.target,\n });\n const newTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: attributeToSet.target,\n });\n\n const previousTargetAttributeIndex = findAttributeIndex(\n previousTarget,\n previousAttribute.targetAttribute ?? ''\n );\n\n // remove old targetAttribute\n if (previousAttribute.targetAttribute) {\n removeAttributeByName(previousTarget, previousAttribute.targetAttribute);\n }\n\n const newRelationType = getRelationType(\n attributeToSet.relation,\n attributeToSet.targetAttribute\n );\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);\n\n if (isBidirectionnal) {\n const newTargetAttribute = {\n name: attributeToSet.targetAttribute,\n type: 'relation',\n relation: getOppositeRelation(attributeToSet.relation),\n targetAttribute: attributeToSet.name,\n target: type.uid,\n private: previousAttribute.private ?? attributeToSet.private,\n pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,\n status: 'CHANGED',\n } as AnyAttribute;\n\n // create or recreate(at old index) targetAttribute\n if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {\n // re-create at previousIdx if possible\n replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);\n } else {\n pushAttribute(newTarget, {\n ...newTargetAttribute,\n status: 'NEW',\n });\n }\n }\n },\n editCustomFieldAttribute: (state, action: PayloadAction<EditCustomFieldAttributePayload>) => {\n const { forTarget, targetUid, name, attributeToSet } = action.payload;\n\n const initialAttributeName = name;\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n },\n reloadPlugin: () => {\n return initialState;\n },\n removeComponentFromDynamicZone: (\n state,\n action: PayloadAction<RemoveComponentFromDynamicZonePayload>\n ) => {\n const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;\n\n const type =\n forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n\n if (!type) {\n return;\n }\n\n const dzAttributeIndex = findAttributeIndex(type, dzName);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components.splice(componentToRemoveIndex, 1);\n },\n removeField: (state, action: PayloadAction<RemoveFieldPayload>) => {\n const { forTarget, targetUid, attributeToRemoveName } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);\n const attribute = type.attributes[attributeToRemoveIndex];\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute: targetAttributeName } = attribute;\n const relationType = getRelationType(relation, targetAttributeName);\n\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (isBidirectionnal && targetAttributeName) {\n const targetContentType = getType(state, { forTarget, targetUid: target });\n const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);\n\n removeAttributeAt(targetContentType, targetAttributeIndex);\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n type.attributes.forEach((attribute) => {\n if (attribute.type === 'uid') {\n if (attribute.targetField === attributeToRemoveName) {\n delete attribute.targetField;\n }\n }\n });\n\n removeAttributeAt(type, attributeToRemoveIndex);\n },\n // only edits a component in practice\n updateComponentSchema: (state, action: PayloadAction<UpdateComponentSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName: data.displayName,\n icon: data.icon,\n },\n });\n },\n updateComponentUid: (state, action: PayloadAction<UpdateComponentUIDPayload>) => {\n const { newComponentUID, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type || type.status !== 'NEW') {\n return;\n }\n\n if (newComponentUID !== uid) {\n const newType = { ...type, uid: newComponentUID };\n state.components[newComponentUID] = newType;\n delete state.components[uid];\n\n // update the uid in the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.map((component: UID.Component) => {\n if (component === uid) {\n return newComponentUID;\n }\n\n return component;\n });\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n\n // update the uid in the other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n }\n },\n updateSchema: (state, action: PayloadAction<UpdateSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const { displayName, kind, draftAndPublish, pluginOptions } = data;\n\n const type = state.contentTypes[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName,\n },\n kind,\n options: {\n draftAndPublish,\n },\n pluginOptions,\n });\n },\n deleteComponent: (state, action: PayloadAction<Internal.UID.Component>) => {\n const uid = action.payload;\n\n // remove the compo from the components\n if (state.components[uid].status === 'NEW') {\n delete state.components[uid];\n } else {\n setStatus(state.components[uid], 'REMOVED');\n }\n\n // remove the compo from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n // remove from dynamic zones\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.filter(\n (component: unknown) => component !== uid\n );\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n\n // remove the compo from other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n },\n deleteContentType: (state, action: PayloadAction<Internal.UID.ContentType>) => {\n const uid = action.payload;\n const type = state.contentTypes[uid];\n\n // just drop new content types\n if (type.status === 'NEW') {\n delete state.contentTypes[uid];\n } else {\n setStatus(type, 'REMOVED');\n }\n\n // remove the content type from the components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n\n // remove the content type from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n },\n\n applyChange(\n state,\n reducerAction: PayloadAction<{\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }>\n ) {\n const { action, schema } = reducerAction.payload;\n\n switch (action) {\n case 'add':\n {\n const uid = schema.uid;\n\n if (schema.modelType === 'component') {\n state.components[uid] = schema;\n } else {\n state.contentTypes[uid] = schema;\n }\n }\n break;\n case 'update':\n {\n const uid = schema.uid;\n\n // Find the schema, if the state was \"create\", we should keep it as it was before\n\n if (schema.modelType === 'component') {\n const component = state.components[uid];\n state.components[uid] = {\n ...schema,\n status: component?.status === 'NEW' ? 'NEW' : schema.status,\n };\n } else {\n const contentType = state.contentTypes[uid];\n state.contentTypes[uid] = {\n ...schema,\n status: contentType?.status === 'NEW' ? 'NEW' : schema.status,\n };\n }\n }\n break;\n case 'delete': {\n const uid = schema.uid;\n const isComponent = schema.modelType === 'component';\n // It's a component that has yet not been added\n if (isComponent) {\n const exists = state.components[uid];\n if (!exists) {\n return;\n }\n\n const isUnsaved = state.components[uid]?.status === 'NEW';\n if (isUnsaved) {\n delete state.components[uid];\n } else {\n state.components[uid].status = 'REMOVED';\n }\n } else {\n const exists = state.contentTypes[uid];\n if (!exists) {\n return;\n }\n\n const isUnsaved = state.contentTypes[uid]?.status === 'NEW';\n if (isUnsaved) {\n delete state.contentTypes[uid];\n } else {\n state.contentTypes[uid].status = 'REMOVED';\n }\n }\n\n break;\n }\n }\n },\n },\n },\n\n {\n limit: 50,\n excludeActionsFromHistory: ['reloadPlugin', 'init'],\n stateSelector: (state) => {\n if (!state) {\n return {};\n }\n\n return {\n components: state.components,\n contentTypes: state.contentTypes,\n };\n },\n discard: (state) => {\n state.components = state.initialComponents;\n state.contentTypes = state.initialContentTypes;\n },\n }\n);\n\nexport type State = ReturnType<typeof slice.reducer>;\nexport const { reducer, actions } = slice;\nexport { initialState };\n"],"names":["initialState","components","contentTypes","initialComponents","initialContentTypes","reservedNames","models","attributes","isLoading","ONE_SIDE_RELATIONS","getOppositeRelation","originalRelation","findAttributeIndex","type","attributeToFind","findIndex","name","getType","state","forTarget","targetUid","setStatus","status","getNewStatus","oldStatus","newStatus","setAttributeStatus","attribute","createAttribute","properties","setAttributeAt","index","previousAttribute","pushAttribute","push","removeAttributeAt","attr","splice","replaceAttributeAt","removeAttributeByName","idx","updateType","data","merge","slice","createUndoRedoSlice","reducers","init","action","payload","createComponentSchema","uid","componentCategory","newSchema","category","modelName","displayName","globalId","info","icon","modelType","createSchema","singularName","pluralName","kind","draftAndPublish","pluginOptions","visible","restrictRelationsTo","options","addAttribute","attributeToSet","omit","target","targetAttribute","relation","relationType","getRelationType","isBidirectionalRelation","includes","oppositeAttribute","private","targetType","moveAttribute","from","to","addCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","dzAttributeIndex","forEach","componentUid","changeDynamicZoneComponents","newComponents","currentDZComponents","updatedComponents","makeUnique","editAttribute","initialAttributeIndex","previousTarget","newTarget","previousTargetAttributeIndex","newRelationType","isBidirectionnal","newTargetAttribute","editCustomFieldAttribute","initialAttributeName","reloadPlugin","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","removeField","attributeToRemoveName","attributeToRemoveIndex","targetAttributeName","targetContentType","targetAttributeIndex","targetField","updateComponentSchema","updateComponentUid","newComponentUID","newType","Object","keys","contentTypeUid","contentType","map","component","updateSchema","deleteComponent","filter","deleteContentType","applyChange","reducerAction","schema","isComponent","exists","isUnsaved","limit","excludeActionsFromHistory","stateSelector","discard","reducer","actions"],"mappings":"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"}
@@ -3,7 +3,6 @@ import omit from 'lodash/omit';
3
3
  import { getRelationType } from '../../utils/getRelationType.mjs';
4
4
  import { makeUnique } from '../../utils/makeUnique.mjs';
5
5
  import { createUndoRedoSlice } from './undoRedo.mjs';
6
- import { formatSchema } from './utils/formatSchemas.mjs';
7
6
 
8
7
  const initialState = {
9
8
  components: {},
@@ -499,20 +498,63 @@ const slice = createUndoRedoSlice({
499
498
  switch(action){
500
499
  case 'add':
501
500
  {
502
- // generate a uid ?
503
501
  const uid = schema.uid;
504
502
  if (schema.modelType === 'component') {
503
+ state.components[uid] = schema;
504
+ } else {
505
+ state.contentTypes[uid] = schema;
506
+ }
507
+ }
508
+ break;
509
+ case 'update':
510
+ {
511
+ const uid = schema.uid;
512
+ // Find the schema, if the state was "create", we should keep it as it was before
513
+ if (schema.modelType === 'component') {
514
+ const component = state.components[uid];
505
515
  state.components[uid] = {
506
- ...formatSchema(schema),
507
- status: 'NEW'
516
+ ...schema,
517
+ status: component?.status === 'NEW' ? 'NEW' : schema.status
508
518
  };
509
519
  } else {
520
+ const contentType = state.contentTypes[uid];
510
521
  state.contentTypes[uid] = {
511
- ...formatSchema(schema),
512
- status: 'NEW'
522
+ ...schema,
523
+ status: contentType?.status === 'NEW' ? 'NEW' : schema.status
513
524
  };
514
525
  }
515
526
  }
527
+ break;
528
+ case 'delete':
529
+ {
530
+ const uid = schema.uid;
531
+ const isComponent = schema.modelType === 'component';
532
+ // It's a component that has yet not been added
533
+ if (isComponent) {
534
+ const exists = state.components[uid];
535
+ if (!exists) {
536
+ return;
537
+ }
538
+ const isUnsaved = state.components[uid]?.status === 'NEW';
539
+ if (isUnsaved) {
540
+ delete state.components[uid];
541
+ } else {
542
+ state.components[uid].status = 'REMOVED';
543
+ }
544
+ } else {
545
+ const exists = state.contentTypes[uid];
546
+ if (!exists) {
547
+ return;
548
+ }
549
+ const isUnsaved = state.contentTypes[uid]?.status === 'NEW';
550
+ if (isUnsaved) {
551
+ delete state.contentTypes[uid];
552
+ } else {
553
+ state.contentTypes[uid].status = 'REMOVED';
554
+ }
555
+ }
556
+ break;
557
+ }
516
558
  }
517
559
  }
518
560
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.mjs","sources":["../../../../admin/src/components/DataManager/reducer.ts"],"sourcesContent":["import { PayloadAction } from '@reduxjs/toolkit';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport { createUndoRedoSlice } from './undoRedo';\nimport { formatSchema } from './utils/formatSchemas';\n\nimport type {\n Components,\n ContentTypes,\n ContentType,\n Component,\n Status,\n AnyAttribute,\n} from '../../types';\nimport type { Internal, Schema, Struct, UID } from '@strapi/types';\n\nexport interface DataManagerStateType {\n components: Components;\n initialComponents: Components;\n contentTypes: ContentTypes;\n initialContentTypes: ContentTypes;\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n isLoading: boolean;\n [key: string]: any;\n}\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n reservedNames: {\n models: [],\n attributes: [],\n },\n isLoading: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.Any) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (type: any, attributeToFind?: string) => {\n return type.attributes.findIndex(({ name }: { name: string }) => name === attributeToFind);\n};\n\ntype InitPayload = {\n components: Record<string, Component>;\n contentTypes: Record<string, ContentType>;\n reservedNames: DataManagerStateType['reservedNames'];\n};\n\ntype AddAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype AddCreateComponentToDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n};\n\ntype AddCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype ChangeDynamicZoneComponentsPayload = {\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype CreateComponentSchemaPayload = {\n uid: string;\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n};\n\ntype CreateSchemaPayload = {\n uid: string;\n data: {\n displayName: string;\n singularName: string;\n pluralName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n};\n\ntype EditAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype EditCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype RemoveComponentFromDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dzName: string;\n componentToRemoveIndex: number;\n};\n\ntype RemoveFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n attributeToRemoveName: string;\n};\n\ntype UpdateComponentSchemaPayload = {\n data: {\n icon: string;\n displayName: string;\n };\n uid: Internal.UID.Component;\n};\n\ntype UpdateComponentUIDPayload = {\n uid: Internal.UID.Component;\n newComponentUID: Internal.UID.Component;\n};\n\ntype UpdateSchemaPayload = {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: string;\n};\n\ntype MoveAttributePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n from: number;\n to: number;\n};\n\nconst getType = (\n state: DataManagerStateType,\n {\n forTarget,\n targetUid,\n }: {\n forTarget: Struct.ModelType;\n targetUid: string;\n }\n) => {\n return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n};\n\n// TODO: use initial state when chnaging back to the initial state without knowing\nconst setStatus = (type: ContentType | Component, status: Status) => {\n switch (type.status) {\n case 'NEW':\n case 'REMOVED': {\n break;\n }\n default: {\n type.status = status;\n }\n }\n};\n\nconst getNewStatus = (oldStatus: Status | undefined, newStatus: Status) => {\n if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {\n return oldStatus;\n }\n\n return newStatus;\n};\n\nconst setAttributeStatus = (attribute: Record<string, any>, status: Status) => {\n attribute.status = getNewStatus(attribute.status, status);\n};\n\nconst createAttribute = (properties: Record<string, any>): AnyAttribute => {\n return {\n ...properties,\n status: 'NEW',\n } as AnyAttribute;\n};\n\nconst setAttributeAt = (type: ContentType | Component, index: number, attribute: AnyAttribute) => {\n const previousAttribute = type.attributes[index];\n\n const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');\n\n type.attributes[index] = {\n ...attribute,\n status: newStatus,\n };\n\n setStatus(type, 'CHANGED');\n};\n\nconst pushAttribute = (type: ContentType | Component, attribute: AnyAttribute) => {\n type.attributes.push(attribute);\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeAt = (type: ContentType | Component, index: number) => {\n const attr = type.attributes[index];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(index, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst replaceAttributeAt = (\n type: ContentType | Component,\n index: number,\n attribute: AnyAttribute\n) => {\n type.attributes[index] = attribute;\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeByName = (type: ContentType | Component, name: string) => {\n const idx = type.attributes.findIndex((attr) => attr.name === name);\n\n const attr = type.attributes[idx];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(idx, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst updateType = (type: ContentType | Component, data: Record<string, any>) => {\n merge(type, data);\n setStatus(type, 'CHANGED');\n};\n\nconst slice = createUndoRedoSlice(\n {\n name: 'data-manager',\n initialState,\n reducers: {\n init: (state, action: PayloadAction<InitPayload>) => {\n const { components, contentTypes, reservedNames } = action.payload;\n\n state.components = components;\n state.initialComponents = components;\n state.initialContentTypes = contentTypes;\n state.contentTypes = contentTypes;\n state.reservedNames = reservedNames;\n state.isLoading = false;\n },\n createComponentSchema: (state, action: PayloadAction<CreateComponentSchemaPayload>) => {\n const { uid, data, componentCategory } = action.payload;\n\n const newSchema: Component = {\n uid: uid as Internal.UID.Component,\n status: 'NEW',\n category: componentCategory,\n modelName: data.displayName,\n globalId: data.displayName,\n info: {\n icon: data.icon,\n displayName: data.displayName,\n },\n attributes: [],\n modelType: 'component',\n };\n\n state.components[uid as string] = newSchema;\n },\n createSchema: (state, action: PayloadAction<CreateSchemaPayload>) => {\n const { uid, data } = action.payload;\n\n const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } =\n data;\n\n const newSchema: ContentType = {\n uid: uid as Internal.UID.ContentType,\n status: 'NEW',\n visible: true,\n modelType: 'contentType',\n restrictRelationsTo: null,\n attributes: [],\n kind,\n modelName: displayName,\n globalId: displayName,\n options: {\n draftAndPublish,\n },\n info: {\n displayName,\n singularName,\n pluralName,\n },\n pluginOptions,\n };\n\n state.contentTypes[uid] = newSchema;\n },\n addAttribute: (state, action: PayloadAction<AddAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = createAttribute(omit(attributeToSet, 'createComponent'));\n\n if (attribute.type === 'relation') {\n const target = attribute.target;\n const targetAttribute = attribute.targetAttribute || null;\n const relation = attribute.relation;\n const relationType = getRelationType(relation, targetAttribute);\n\n const isBidirectionalRelation = !['oneWay', 'manyWay'].includes(relationType);\n\n if (isBidirectionalRelation) {\n const oppositeAttribute = createAttribute({\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target: type.uid,\n targetAttribute: attribute.name,\n type: 'relation',\n private: attribute.private,\n });\n\n const targetType = getType(state, { forTarget, targetUid: target });\n pushAttribute(targetType, oppositeAttribute);\n }\n }\n\n pushAttribute(type, attribute);\n setStatus(type, 'CHANGED');\n },\n moveAttribute: (state, action: PayloadAction<MoveAttributePayload>) => {\n const { forTarget, targetUid, from, to } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = type.attributes[from];\n type.attributes.splice(from, 1);\n type.attributes.splice(to, 0, attribute);\n setStatus(type, 'CHANGED');\n },\n addCustomFieldAttribute: (state, action: PayloadAction<AddCustomFieldAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n pushAttribute(type, createAttribute(attributeToSet));\n },\n addCreatedComponentToDynamicZone: (\n state,\n action: PayloadAction<AddCreateComponentToDynamicZonePayload>\n ) => {\n const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n attr.components.push(componentUid);\n });\n\n setAttributeStatus(attr, 'CHANGED');\n setStatus(type, 'CHANGED');\n },\n changeDynamicZoneComponents: (\n state,\n action: PayloadAction<ChangeDynamicZoneComponentsPayload>\n ) => {\n const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n const currentDZComponents = attr.components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components = updatedComponents;\n },\n editAttribute: (state, action: PayloadAction<EditAttributePayload>) => {\n const { name, attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, name);\n\n if (initialAttributeIndex === -1) {\n return;\n }\n\n const previousAttribute = type.attributes[initialAttributeIndex];\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n\n if (previousAttribute.type !== attributeToSet.type) {\n return;\n }\n\n if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {\n return;\n }\n\n const previousTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: previousAttribute.target,\n });\n const newTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: attributeToSet.target,\n });\n\n const previousTargetAttributeIndex = findAttributeIndex(\n previousTarget,\n previousAttribute.targetAttribute ?? ''\n );\n\n // remove old targetAttribute\n if (previousAttribute.targetAttribute) {\n removeAttributeByName(previousTarget, previousAttribute.targetAttribute);\n }\n\n const newRelationType = getRelationType(\n attributeToSet.relation,\n attributeToSet.targetAttribute\n );\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);\n\n if (isBidirectionnal) {\n const newTargetAttribute = {\n name: attributeToSet.targetAttribute,\n type: 'relation',\n relation: getOppositeRelation(attributeToSet.relation),\n targetAttribute: attributeToSet.name,\n target: type.uid,\n private: previousAttribute.private ?? attributeToSet.private,\n pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,\n status: 'CHANGED',\n } as AnyAttribute;\n\n // create or recreate(at old index) targetAttribute\n if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {\n // re-create at previousIdx if possible\n replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);\n } else {\n pushAttribute(newTarget, {\n ...newTargetAttribute,\n status: 'NEW',\n });\n }\n }\n },\n editCustomFieldAttribute: (state, action: PayloadAction<EditCustomFieldAttributePayload>) => {\n const { forTarget, targetUid, name, attributeToSet } = action.payload;\n\n const initialAttributeName = name;\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n },\n reloadPlugin: () => {\n return initialState;\n },\n removeComponentFromDynamicZone: (\n state,\n action: PayloadAction<RemoveComponentFromDynamicZonePayload>\n ) => {\n const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;\n\n const type =\n forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n\n if (!type) {\n return;\n }\n\n const dzAttributeIndex = findAttributeIndex(type, dzName);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components.splice(componentToRemoveIndex, 1);\n },\n removeField: (state, action: PayloadAction<RemoveFieldPayload>) => {\n const { forTarget, targetUid, attributeToRemoveName } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);\n const attribute = type.attributes[attributeToRemoveIndex];\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute: targetAttributeName } = attribute;\n const relationType = getRelationType(relation, targetAttributeName);\n\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (isBidirectionnal && targetAttributeName) {\n const targetContentType = getType(state, { forTarget, targetUid: target });\n const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);\n\n removeAttributeAt(targetContentType, targetAttributeIndex);\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n type.attributes.forEach((attribute) => {\n if (attribute.type === 'uid') {\n if (attribute.targetField === attributeToRemoveName) {\n delete attribute.targetField;\n }\n }\n });\n\n removeAttributeAt(type, attributeToRemoveIndex);\n },\n // only edits a component in practice\n updateComponentSchema: (state, action: PayloadAction<UpdateComponentSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName: data.displayName,\n icon: data.icon,\n },\n });\n },\n updateComponentUid: (state, action: PayloadAction<UpdateComponentUIDPayload>) => {\n const { newComponentUID, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type || type.status !== 'NEW') {\n return;\n }\n\n if (newComponentUID !== uid) {\n const newType = { ...type, uid: newComponentUID };\n state.components[newComponentUID] = newType;\n delete state.components[uid];\n\n // update the uid in the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.map((component: UID.Component) => {\n if (component === uid) {\n return newComponentUID;\n }\n\n return component;\n });\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n\n // update the uid in the other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n }\n },\n updateSchema: (state, action: PayloadAction<UpdateSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const { displayName, kind, draftAndPublish, pluginOptions } = data;\n\n const type = state.contentTypes[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName,\n },\n kind,\n options: {\n draftAndPublish,\n },\n pluginOptions,\n });\n },\n deleteComponent: (state, action: PayloadAction<Internal.UID.Component>) => {\n const uid = action.payload;\n\n // remove the compo from the components\n if (state.components[uid].status === 'NEW') {\n delete state.components[uid];\n } else {\n setStatus(state.components[uid], 'REMOVED');\n }\n\n // remove the compo from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n // remove from dynamic zones\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.filter(\n (component: unknown) => component !== uid\n );\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n\n // remove the compo from other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n },\n deleteContentType: (state, action: PayloadAction<Internal.UID.ContentType>) => {\n const uid = action.payload;\n const type = state.contentTypes[uid];\n\n // just drop new content types\n if (type.status === 'NEW') {\n delete state.contentTypes[uid];\n } else {\n setStatus(type, 'REMOVED');\n }\n\n // remove the content type from the components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n\n // remove the content type from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n },\n\n applyChange(\n state,\n reducerAction: PayloadAction<{\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }>\n ) {\n const { action, schema } = reducerAction.payload;\n\n switch (action) {\n case 'add': {\n // generate a uid ?\n const uid = schema.uid;\n\n if (schema.modelType === 'component') {\n state.components[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n } else {\n state.contentTypes[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n }\n }\n }\n },\n },\n },\n {\n limit: 50,\n excludeActionsFromHistory: ['reloadPlugin', 'init'],\n stateSelector: (state) => {\n if (!state) {\n return {};\n }\n\n return {\n components: state.components,\n contentTypes: state.contentTypes,\n };\n },\n discard: (state) => {\n state.components = state.initialComponents;\n state.contentTypes = state.initialContentTypes;\n },\n }\n);\n\nexport type State = ReturnType<typeof slice.reducer>;\nexport const { reducer, actions } = slice;\nexport { initialState };\n"],"names":["initialState","components","contentTypes","initialComponents","initialContentTypes","reservedNames","models","attributes","isLoading","ONE_SIDE_RELATIONS","getOppositeRelation","originalRelation","findAttributeIndex","type","attributeToFind","findIndex","name","getType","state","forTarget","targetUid","setStatus","status","getNewStatus","oldStatus","newStatus","setAttributeStatus","attribute","createAttribute","properties","setAttributeAt","index","previousAttribute","pushAttribute","push","removeAttributeAt","attr","splice","replaceAttributeAt","removeAttributeByName","idx","updateType","data","merge","slice","createUndoRedoSlice","reducers","init","action","payload","createComponentSchema","uid","componentCategory","newSchema","category","modelName","displayName","globalId","info","icon","modelType","createSchema","singularName","pluralName","kind","draftAndPublish","pluginOptions","visible","restrictRelationsTo","options","addAttribute","attributeToSet","omit","target","targetAttribute","relation","relationType","getRelationType","isBidirectionalRelation","includes","oppositeAttribute","private","targetType","moveAttribute","from","to","addCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","dzAttributeIndex","forEach","componentUid","changeDynamicZoneComponents","newComponents","currentDZComponents","updatedComponents","makeUnique","editAttribute","initialAttributeIndex","previousTarget","newTarget","previousTargetAttributeIndex","newRelationType","isBidirectionnal","newTargetAttribute","editCustomFieldAttribute","initialAttributeName","reloadPlugin","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","removeField","attributeToRemoveName","attributeToRemoveIndex","targetAttributeName","targetContentType","targetAttributeIndex","targetField","updateComponentSchema","updateComponentUid","newComponentUID","newType","Object","keys","contentTypeUid","contentType","map","component","updateSchema","deleteComponent","filter","deleteContentType","applyChange","reducerAction","schema","formatSchema","limit","excludeActionsFromHistory","stateSelector","discard","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"reducer.mjs","sources":["../../../../admin/src/components/DataManager/reducer.ts"],"sourcesContent":["import { PayloadAction } from '@reduxjs/toolkit';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport { createUndoRedoSlice } from './undoRedo';\n\nimport type {\n Components,\n ContentTypes,\n ContentType,\n Component,\n Status,\n AnyAttribute,\n} from '../../types';\nimport type { Internal, Schema, Struct, UID } from '@strapi/types';\n\nexport interface DataManagerStateType {\n components: Components;\n initialComponents: Components;\n contentTypes: ContentTypes;\n initialContentTypes: ContentTypes;\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n isLoading: boolean;\n [key: string]: any;\n}\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n reservedNames: {\n models: [],\n attributes: [],\n },\n isLoading: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.Any) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (type: any, attributeToFind?: string) => {\n return type.attributes.findIndex(({ name }: { name: string }) => name === attributeToFind);\n};\n\ntype InitPayload = {\n components: Record<string, Component>;\n contentTypes: Record<string, ContentType>;\n reservedNames: DataManagerStateType['reservedNames'];\n};\n\ntype AddAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype AddCreateComponentToDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n};\n\ntype AddCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype ChangeDynamicZoneComponentsPayload = {\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype CreateComponentSchemaPayload = {\n uid: string;\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n};\n\ntype CreateSchemaPayload = {\n uid: string;\n data: {\n displayName: string;\n singularName: string;\n pluralName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n};\n\ntype EditAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype EditCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype RemoveComponentFromDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dzName: string;\n componentToRemoveIndex: number;\n};\n\ntype RemoveFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n attributeToRemoveName: string;\n};\n\ntype UpdateComponentSchemaPayload = {\n data: {\n icon: string;\n displayName: string;\n };\n uid: Internal.UID.Component;\n};\n\ntype UpdateComponentUIDPayload = {\n uid: Internal.UID.Component;\n newComponentUID: Internal.UID.Component;\n};\n\ntype UpdateSchemaPayload = {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: string;\n};\n\ntype MoveAttributePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n from: number;\n to: number;\n};\n\nconst getType = (\n state: DataManagerStateType,\n {\n forTarget,\n targetUid,\n }: {\n forTarget: Struct.ModelType;\n targetUid: string;\n }\n) => {\n return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n};\n\n// TODO: use initial state when chnaging back to the initial state without knowing\nconst setStatus = (type: ContentType | Component, status: Status) => {\n switch (type.status) {\n case 'NEW':\n case 'REMOVED': {\n break;\n }\n default: {\n type.status = status;\n }\n }\n};\n\nconst getNewStatus = (oldStatus: Status | undefined, newStatus: Status) => {\n if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {\n return oldStatus;\n }\n\n return newStatus;\n};\n\nconst setAttributeStatus = (attribute: Record<string, any>, status: Status) => {\n attribute.status = getNewStatus(attribute.status, status);\n};\n\nconst createAttribute = (properties: Record<string, any>): AnyAttribute => {\n return {\n ...properties,\n status: 'NEW',\n } as AnyAttribute;\n};\n\nconst setAttributeAt = (type: ContentType | Component, index: number, attribute: AnyAttribute) => {\n const previousAttribute = type.attributes[index];\n\n const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');\n\n type.attributes[index] = {\n ...attribute,\n status: newStatus,\n };\n\n setStatus(type, 'CHANGED');\n};\n\nconst pushAttribute = (type: ContentType | Component, attribute: AnyAttribute) => {\n type.attributes.push(attribute);\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeAt = (type: ContentType | Component, index: number) => {\n const attr = type.attributes[index];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(index, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst replaceAttributeAt = (\n type: ContentType | Component,\n index: number,\n attribute: AnyAttribute\n) => {\n type.attributes[index] = attribute;\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeByName = (type: ContentType | Component, name: string) => {\n const idx = type.attributes.findIndex((attr) => attr.name === name);\n\n const attr = type.attributes[idx];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(idx, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst updateType = (type: ContentType | Component, data: Record<string, any>) => {\n merge(type, data);\n setStatus(type, 'CHANGED');\n};\n\nconst slice = createUndoRedoSlice(\n {\n name: 'data-manager',\n initialState,\n reducers: {\n init: (state, action: PayloadAction<InitPayload>) => {\n const { components, contentTypes, reservedNames } = action.payload;\n\n state.components = components;\n state.initialComponents = components;\n state.initialContentTypes = contentTypes;\n state.contentTypes = contentTypes;\n state.reservedNames = reservedNames;\n state.isLoading = false;\n },\n createComponentSchema: (state, action: PayloadAction<CreateComponentSchemaPayload>) => {\n const { uid, data, componentCategory } = action.payload;\n\n const newSchema: Component = {\n uid: uid as Internal.UID.Component,\n status: 'NEW',\n category: componentCategory,\n modelName: data.displayName,\n globalId: data.displayName,\n info: {\n icon: data.icon,\n displayName: data.displayName,\n },\n attributes: [],\n modelType: 'component',\n };\n\n state.components[uid as string] = newSchema;\n },\n createSchema: (state, action: PayloadAction<CreateSchemaPayload>) => {\n const { uid, data } = action.payload;\n\n const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } =\n data;\n\n const newSchema: ContentType = {\n uid: uid as Internal.UID.ContentType,\n status: 'NEW',\n visible: true,\n modelType: 'contentType',\n restrictRelationsTo: null,\n attributes: [],\n kind,\n modelName: displayName,\n globalId: displayName,\n options: {\n draftAndPublish,\n },\n info: {\n displayName,\n singularName,\n pluralName,\n },\n pluginOptions,\n };\n\n state.contentTypes[uid] = newSchema;\n },\n addAttribute: (state, action: PayloadAction<AddAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = createAttribute(omit(attributeToSet, 'createComponent'));\n\n if (attribute.type === 'relation') {\n const target = attribute.target;\n const targetAttribute = attribute.targetAttribute || null;\n const relation = attribute.relation;\n const relationType = getRelationType(relation, targetAttribute);\n\n const isBidirectionalRelation = !['oneWay', 'manyWay'].includes(relationType);\n\n if (isBidirectionalRelation) {\n const oppositeAttribute = createAttribute({\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target: type.uid,\n targetAttribute: attribute.name,\n type: 'relation',\n private: attribute.private,\n });\n\n const targetType = getType(state, { forTarget, targetUid: target });\n pushAttribute(targetType, oppositeAttribute);\n }\n }\n\n pushAttribute(type, attribute);\n setStatus(type, 'CHANGED');\n },\n moveAttribute: (state, action: PayloadAction<MoveAttributePayload>) => {\n const { forTarget, targetUid, from, to } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = type.attributes[from];\n type.attributes.splice(from, 1);\n type.attributes.splice(to, 0, attribute);\n setStatus(type, 'CHANGED');\n },\n addCustomFieldAttribute: (state, action: PayloadAction<AddCustomFieldAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n pushAttribute(type, createAttribute(attributeToSet));\n },\n addCreatedComponentToDynamicZone: (\n state,\n action: PayloadAction<AddCreateComponentToDynamicZonePayload>\n ) => {\n const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n attr.components.push(componentUid);\n });\n\n setAttributeStatus(attr, 'CHANGED');\n setStatus(type, 'CHANGED');\n },\n changeDynamicZoneComponents: (\n state,\n action: PayloadAction<ChangeDynamicZoneComponentsPayload>\n ) => {\n const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n const currentDZComponents = attr.components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components = updatedComponents;\n },\n editAttribute: (state, action: PayloadAction<EditAttributePayload>) => {\n const { name, attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, name);\n\n if (initialAttributeIndex === -1) {\n return;\n }\n\n const previousAttribute = type.attributes[initialAttributeIndex];\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n\n if (previousAttribute.type !== attributeToSet.type) {\n return;\n }\n\n if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {\n return;\n }\n\n const previousTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: previousAttribute.target,\n });\n const newTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: attributeToSet.target,\n });\n\n const previousTargetAttributeIndex = findAttributeIndex(\n previousTarget,\n previousAttribute.targetAttribute ?? ''\n );\n\n // remove old targetAttribute\n if (previousAttribute.targetAttribute) {\n removeAttributeByName(previousTarget, previousAttribute.targetAttribute);\n }\n\n const newRelationType = getRelationType(\n attributeToSet.relation,\n attributeToSet.targetAttribute\n );\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);\n\n if (isBidirectionnal) {\n const newTargetAttribute = {\n name: attributeToSet.targetAttribute,\n type: 'relation',\n relation: getOppositeRelation(attributeToSet.relation),\n targetAttribute: attributeToSet.name,\n target: type.uid,\n private: previousAttribute.private ?? attributeToSet.private,\n pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,\n status: 'CHANGED',\n } as AnyAttribute;\n\n // create or recreate(at old index) targetAttribute\n if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {\n // re-create at previousIdx if possible\n replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);\n } else {\n pushAttribute(newTarget, {\n ...newTargetAttribute,\n status: 'NEW',\n });\n }\n }\n },\n editCustomFieldAttribute: (state, action: PayloadAction<EditCustomFieldAttributePayload>) => {\n const { forTarget, targetUid, name, attributeToSet } = action.payload;\n\n const initialAttributeName = name;\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n },\n reloadPlugin: () => {\n return initialState;\n },\n removeComponentFromDynamicZone: (\n state,\n action: PayloadAction<RemoveComponentFromDynamicZonePayload>\n ) => {\n const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;\n\n const type =\n forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n\n if (!type) {\n return;\n }\n\n const dzAttributeIndex = findAttributeIndex(type, dzName);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components.splice(componentToRemoveIndex, 1);\n },\n removeField: (state, action: PayloadAction<RemoveFieldPayload>) => {\n const { forTarget, targetUid, attributeToRemoveName } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);\n const attribute = type.attributes[attributeToRemoveIndex];\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute: targetAttributeName } = attribute;\n const relationType = getRelationType(relation, targetAttributeName);\n\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (isBidirectionnal && targetAttributeName) {\n const targetContentType = getType(state, { forTarget, targetUid: target });\n const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);\n\n removeAttributeAt(targetContentType, targetAttributeIndex);\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n type.attributes.forEach((attribute) => {\n if (attribute.type === 'uid') {\n if (attribute.targetField === attributeToRemoveName) {\n delete attribute.targetField;\n }\n }\n });\n\n removeAttributeAt(type, attributeToRemoveIndex);\n },\n // only edits a component in practice\n updateComponentSchema: (state, action: PayloadAction<UpdateComponentSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName: data.displayName,\n icon: data.icon,\n },\n });\n },\n updateComponentUid: (state, action: PayloadAction<UpdateComponentUIDPayload>) => {\n const { newComponentUID, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type || type.status !== 'NEW') {\n return;\n }\n\n if (newComponentUID !== uid) {\n const newType = { ...type, uid: newComponentUID };\n state.components[newComponentUID] = newType;\n delete state.components[uid];\n\n // update the uid in the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.map((component: UID.Component) => {\n if (component === uid) {\n return newComponentUID;\n }\n\n return component;\n });\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n\n // update the uid in the other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n }\n },\n updateSchema: (state, action: PayloadAction<UpdateSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const { displayName, kind, draftAndPublish, pluginOptions } = data;\n\n const type = state.contentTypes[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName,\n },\n kind,\n options: {\n draftAndPublish,\n },\n pluginOptions,\n });\n },\n deleteComponent: (state, action: PayloadAction<Internal.UID.Component>) => {\n const uid = action.payload;\n\n // remove the compo from the components\n if (state.components[uid].status === 'NEW') {\n delete state.components[uid];\n } else {\n setStatus(state.components[uid], 'REMOVED');\n }\n\n // remove the compo from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n // remove from dynamic zones\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.filter(\n (component: unknown) => component !== uid\n );\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n\n // remove the compo from other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n },\n deleteContentType: (state, action: PayloadAction<Internal.UID.ContentType>) => {\n const uid = action.payload;\n const type = state.contentTypes[uid];\n\n // just drop new content types\n if (type.status === 'NEW') {\n delete state.contentTypes[uid];\n } else {\n setStatus(type, 'REMOVED');\n }\n\n // remove the content type from the components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n\n // remove the content type from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n },\n\n applyChange(\n state,\n reducerAction: PayloadAction<{\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }>\n ) {\n const { action, schema } = reducerAction.payload;\n\n switch (action) {\n case 'add':\n {\n const uid = schema.uid;\n\n if (schema.modelType === 'component') {\n state.components[uid] = schema;\n } else {\n state.contentTypes[uid] = schema;\n }\n }\n break;\n case 'update':\n {\n const uid = schema.uid;\n\n // Find the schema, if the state was \"create\", we should keep it as it was before\n\n if (schema.modelType === 'component') {\n const component = state.components[uid];\n state.components[uid] = {\n ...schema,\n status: component?.status === 'NEW' ? 'NEW' : schema.status,\n };\n } else {\n const contentType = state.contentTypes[uid];\n state.contentTypes[uid] = {\n ...schema,\n status: contentType?.status === 'NEW' ? 'NEW' : schema.status,\n };\n }\n }\n break;\n case 'delete': {\n const uid = schema.uid;\n const isComponent = schema.modelType === 'component';\n // It's a component that has yet not been added\n if (isComponent) {\n const exists = state.components[uid];\n if (!exists) {\n return;\n }\n\n const isUnsaved = state.components[uid]?.status === 'NEW';\n if (isUnsaved) {\n delete state.components[uid];\n } else {\n state.components[uid].status = 'REMOVED';\n }\n } else {\n const exists = state.contentTypes[uid];\n if (!exists) {\n return;\n }\n\n const isUnsaved = state.contentTypes[uid]?.status === 'NEW';\n if (isUnsaved) {\n delete state.contentTypes[uid];\n } else {\n state.contentTypes[uid].status = 'REMOVED';\n }\n }\n\n break;\n }\n }\n },\n },\n },\n\n {\n limit: 50,\n excludeActionsFromHistory: ['reloadPlugin', 'init'],\n stateSelector: (state) => {\n if (!state) {\n return {};\n }\n\n return {\n components: state.components,\n contentTypes: state.contentTypes,\n };\n },\n discard: (state) => {\n state.components = state.initialComponents;\n state.contentTypes = state.initialContentTypes;\n },\n }\n);\n\nexport type State = ReturnType<typeof slice.reducer>;\nexport const { reducer, actions } = slice;\nexport { initialState };\n"],"names":["initialState","components","contentTypes","initialComponents","initialContentTypes","reservedNames","models","attributes","isLoading","ONE_SIDE_RELATIONS","getOppositeRelation","originalRelation","findAttributeIndex","type","attributeToFind","findIndex","name","getType","state","forTarget","targetUid","setStatus","status","getNewStatus","oldStatus","newStatus","setAttributeStatus","attribute","createAttribute","properties","setAttributeAt","index","previousAttribute","pushAttribute","push","removeAttributeAt","attr","splice","replaceAttributeAt","removeAttributeByName","idx","updateType","data","merge","slice","createUndoRedoSlice","reducers","init","action","payload","createComponentSchema","uid","componentCategory","newSchema","category","modelName","displayName","globalId","info","icon","modelType","createSchema","singularName","pluralName","kind","draftAndPublish","pluginOptions","visible","restrictRelationsTo","options","addAttribute","attributeToSet","omit","target","targetAttribute","relation","relationType","getRelationType","isBidirectionalRelation","includes","oppositeAttribute","private","targetType","moveAttribute","from","to","addCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","dzAttributeIndex","forEach","componentUid","changeDynamicZoneComponents","newComponents","currentDZComponents","updatedComponents","makeUnique","editAttribute","initialAttributeIndex","previousTarget","newTarget","previousTargetAttributeIndex","newRelationType","isBidirectionnal","newTargetAttribute","editCustomFieldAttribute","initialAttributeName","reloadPlugin","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","removeField","attributeToRemoveName","attributeToRemoveIndex","targetAttributeName","targetContentType","targetAttributeIndex","targetField","updateComponentSchema","updateComponentUid","newComponentUID","newType","Object","keys","contentTypeUid","contentType","map","component","updateSchema","deleteComponent","filter","deleteContentType","applyChange","reducerAction","schema","isComponent","exists","isUnsaved","limit","excludeActionsFromHistory","stateSelector","discard","reducer","actions"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canEditContentType.js","sources":["../../../../../admin/src/components/FormModal/utils/canEditContentType.ts"],"sourcesContent":["import get from 'lodash/get';\n\nimport { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AnyAttribute, ContentType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AnyAttribute[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind?: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (type: ContentType, modifiedData: ModifiedData) => {\n const kind = type.kind;\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes: AnyAttribute[] = type?.attributes ?? [];\n\n const relationAttributes = contentTypeAttributes.filter((attribute) => {\n if (attribute.type !== 'relation') {\n return false;\n }\n\n const { relation, targetAttribute } = attribute;\n const relationType = getRelationType(relation, targetAttribute);\n\n return !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n"],"names":["canEditContentType","type","modifiedData","kind","contentTypeAttributes","attributes","relationAttributes","filter","attribute","relation","targetAttribute","relationType","getRelationType","includes","length"],"mappings":";;;;AAwBO,MAAMA,kBAAqB,GAAA,CAACC,IAAmBC,EAAAA,YAAAA,GAAAA;IACpD,MAAMC,IAAAA,GAAOF,KAAKE,IAAI;;AAGtB,IAAA,IAAIA,IAAS,KAAA,YAAA,IAAgBA,IAASD,KAAAA,YAAAA,CAAaC,IAAI,EAAE;QACvD,OAAO,IAAA;AACT;IAEA,MAAMC,qBAAAA,GAAwCH,IAAMI,EAAAA,UAAAA,IAAc,EAAE;AAEpE,IAAA,MAAMC,kBAAqBF,GAAAA,qBAAAA,CAAsBG,MAAM,CAAC,CAACC,SAAAA,GAAAA;QACvD,IAAIA,SAAAA,CAAUP,IAAI,KAAK,UAAY,EAAA;YACjC,OAAO,KAAA;AACT;AAEA,QAAA,MAAM,EAAEQ,QAAQ,EAAEC,eAAe,EAAE,GAAGF,SAAAA;QACtC,MAAMG,YAAAA,GAAeC,gCAAgBH,QAAUC,EAAAA,eAAAA,CAAAA;AAE/C,QAAA,OAAO,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA;SAAU,CAACG,QAAQ,CAACF,YAAgB,IAAA,EAAA,CAAA;AACzD,KAAA,CAAA;IAEA,OAAOL,kBAAAA,CAAmBQ,MAAM,KAAK,CAAA;AACvC;;;;"}
1
+ {"version":3,"file":"canEditContentType.js","sources":["../../../../../admin/src/components/FormModal/utils/canEditContentType.ts"],"sourcesContent":["import { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AnyAttribute, ContentType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AnyAttribute[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind?: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (type: ContentType, modifiedData: ModifiedData) => {\n const kind = type.kind;\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes: AnyAttribute[] = type?.attributes ?? [];\n\n const relationAttributes = contentTypeAttributes.filter((attribute) => {\n if (attribute.type !== 'relation') {\n return false;\n }\n\n const { relation, targetAttribute } = attribute;\n const relationType = getRelationType(relation, targetAttribute);\n\n return !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n"],"names":["canEditContentType","type","modifiedData","kind","contentTypeAttributes","attributes","relationAttributes","filter","attribute","relation","targetAttribute","relationType","getRelationType","includes","length"],"mappings":";;;;AAsBO,MAAMA,kBAAqB,GAAA,CAACC,IAAmBC,EAAAA,YAAAA,GAAAA;IACpD,MAAMC,IAAAA,GAAOF,KAAKE,IAAI;;AAGtB,IAAA,IAAIA,IAAS,KAAA,YAAA,IAAgBA,IAASD,KAAAA,YAAAA,CAAaC,IAAI,EAAE;QACvD,OAAO,IAAA;AACT;IAEA,MAAMC,qBAAAA,GAAwCH,IAAMI,EAAAA,UAAAA,IAAc,EAAE;AAEpE,IAAA,MAAMC,kBAAqBF,GAAAA,qBAAAA,CAAsBG,MAAM,CAAC,CAACC,SAAAA,GAAAA;QACvD,IAAIA,SAAAA,CAAUP,IAAI,KAAK,UAAY,EAAA;YACjC,OAAO,KAAA;AACT;AAEA,QAAA,MAAM,EAAEQ,QAAQ,EAAEC,eAAe,EAAE,GAAGF,SAAAA;QACtC,MAAMG,YAAAA,GAAeC,gCAAgBH,QAAUC,EAAAA,eAAAA,CAAAA;AAE/C,QAAA,OAAO,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA;SAAU,CAACG,QAAQ,CAACF,YAAgB,IAAA,EAAA,CAAA;AACzD,KAAA,CAAA;IAEA,OAAOL,kBAAAA,CAAmBQ,MAAM,KAAK,CAAA;AACvC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"canEditContentType.mjs","sources":["../../../../../admin/src/components/FormModal/utils/canEditContentType.ts"],"sourcesContent":["import get from 'lodash/get';\n\nimport { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AnyAttribute, ContentType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AnyAttribute[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind?: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (type: ContentType, modifiedData: ModifiedData) => {\n const kind = type.kind;\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes: AnyAttribute[] = type?.attributes ?? [];\n\n const relationAttributes = contentTypeAttributes.filter((attribute) => {\n if (attribute.type !== 'relation') {\n return false;\n }\n\n const { relation, targetAttribute } = attribute;\n const relationType = getRelationType(relation, targetAttribute);\n\n return !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n"],"names":["canEditContentType","type","modifiedData","kind","contentTypeAttributes","attributes","relationAttributes","filter","attribute","relation","targetAttribute","relationType","getRelationType","includes","length"],"mappings":";;AAwBO,MAAMA,kBAAqB,GAAA,CAACC,IAAmBC,EAAAA,YAAAA,GAAAA;IACpD,MAAMC,IAAAA,GAAOF,KAAKE,IAAI;;AAGtB,IAAA,IAAIA,IAAS,KAAA,YAAA,IAAgBA,IAASD,KAAAA,YAAAA,CAAaC,IAAI,EAAE;QACvD,OAAO,IAAA;AACT;IAEA,MAAMC,qBAAAA,GAAwCH,IAAMI,EAAAA,UAAAA,IAAc,EAAE;AAEpE,IAAA,MAAMC,kBAAqBF,GAAAA,qBAAAA,CAAsBG,MAAM,CAAC,CAACC,SAAAA,GAAAA;QACvD,IAAIA,SAAAA,CAAUP,IAAI,KAAK,UAAY,EAAA;YACjC,OAAO,KAAA;AACT;AAEA,QAAA,MAAM,EAAEQ,QAAQ,EAAEC,eAAe,EAAE,GAAGF,SAAAA;QACtC,MAAMG,YAAAA,GAAeC,gBAAgBH,QAAUC,EAAAA,eAAAA,CAAAA;AAE/C,QAAA,OAAO,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA;SAAU,CAACG,QAAQ,CAACF,YAAgB,IAAA,EAAA,CAAA;AACzD,KAAA,CAAA;IAEA,OAAOL,kBAAAA,CAAmBQ,MAAM,KAAK,CAAA;AACvC;;;;"}
1
+ {"version":3,"file":"canEditContentType.mjs","sources":["../../../../../admin/src/components/FormModal/utils/canEditContentType.ts"],"sourcesContent":["import { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AnyAttribute, ContentType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AnyAttribute[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind?: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (type: ContentType, modifiedData: ModifiedData) => {\n const kind = type.kind;\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes: AnyAttribute[] = type?.attributes ?? [];\n\n const relationAttributes = contentTypeAttributes.filter((attribute) => {\n if (attribute.type !== 'relation') {\n return false;\n }\n\n const { relation, targetAttribute } = attribute;\n const relationType = getRelationType(relation, targetAttribute);\n\n return !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n"],"names":["canEditContentType","type","modifiedData","kind","contentTypeAttributes","attributes","relationAttributes","filter","attribute","relation","targetAttribute","relationType","getRelationType","includes","length"],"mappings":";;AAsBO,MAAMA,kBAAqB,GAAA,CAACC,IAAmBC,EAAAA,YAAAA,GAAAA;IACpD,MAAMC,IAAAA,GAAOF,KAAKE,IAAI;;AAGtB,IAAA,IAAIA,IAAS,KAAA,YAAA,IAAgBA,IAASD,KAAAA,YAAAA,CAAaC,IAAI,EAAE;QACvD,OAAO,IAAA;AACT;IAEA,MAAMC,qBAAAA,GAAwCH,IAAMI,EAAAA,UAAAA,IAAc,EAAE;AAEpE,IAAA,MAAMC,kBAAqBF,GAAAA,qBAAAA,CAAsBG,MAAM,CAAC,CAACC,SAAAA,GAAAA;QACvD,IAAIA,SAAAA,CAAUP,IAAI,KAAK,UAAY,EAAA;YACjC,OAAO,KAAA;AACT;AAEA,QAAA,MAAM,EAAEQ,QAAQ,EAAEC,eAAe,EAAE,GAAGF,SAAAA;QACtC,MAAMG,YAAAA,GAAeC,gBAAgBH,QAAUC,EAAAA,eAAAA,CAAAA;AAE/C,QAAA,OAAO,CAAC;AAAC,YAAA,QAAA;AAAU,YAAA;SAAU,CAACG,QAAQ,CAACF,YAAgB,IAAA,EAAA,CAAA;AACzD,KAAA,CAAA;IAEA,OAAOL,kBAAAA,CAAmBQ,MAAM,KAAK,CAAA;AACvC;;;;"}