@strapi/content-type-builder 5.25.0 → 5.27.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 (332) hide show
  1. package/dist/admin/components/AIChat/Chat.js +435 -0
  2. package/dist/admin/components/AIChat/Chat.js.map +1 -0
  3. package/dist/admin/components/AIChat/Chat.mjs +433 -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/ContentTypeBuilderNav/ContentTypeBuilderNav.js +165 -161
  158. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  159. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +165 -161
  160. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  161. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  162. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  163. package/dist/admin/components/DataManager/reducer.js +48 -6
  164. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  165. package/dist/admin/components/DataManager/reducer.mjs +48 -6
  166. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  167. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  168. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  169. package/dist/admin/pages/App/index.js +60 -29
  170. package/dist/admin/pages/App/index.js.map +1 -1
  171. package/dist/admin/pages/App/index.mjs +62 -31
  172. package/dist/admin/pages/App/index.mjs.map +1 -1
  173. package/dist/admin/pages/ListView/EmptyState.js +75 -9
  174. package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
  175. package/dist/admin/pages/ListView/EmptyState.mjs +77 -11
  176. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
  177. package/dist/admin/src/components/AIChat/Chat.d.ts +2 -0
  178. package/dist/admin/src/components/AIChat/FeedbackModal.d.ts +13 -0
  179. package/dist/admin/src/components/AIChat/UploadCodeModal.d.ts +12 -0
  180. package/dist/admin/src/components/AIChat/UploadFigmaModal.d.ts +12 -0
  181. package/dist/admin/src/components/AIChat/components/Alert.d.ts +6 -0
  182. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +13 -0
  183. package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +9 -0
  184. package/dist/admin/src/components/AIChat/components/Attachments/components/Attachment.d.ts +27 -0
  185. package/dist/admin/src/components/AIChat/components/Base64Image.d.ts +9 -0
  186. package/dist/admin/src/components/AIChat/components/Collapsible.d.ts +18 -0
  187. package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +35 -0
  188. package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +34 -0
  189. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +20 -0
  190. package/dist/admin/src/components/AIChat/components/ImagePreview.d.ts +8 -0
  191. package/dist/admin/src/components/AIChat/components/ImagePreviewGroup.d.ts +7 -0
  192. package/dist/admin/src/components/AIChat/components/Input.d.ts +43 -0
  193. package/dist/admin/src/components/AIChat/components/Messages/Marker.d.ts +2 -0
  194. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +5 -0
  195. package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +9 -0
  196. package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +32 -0
  197. package/dist/admin/src/components/AIChat/components/StepModal.d.ts +37 -0
  198. package/dist/admin/src/components/AIChat/components/animations.d.ts +8 -0
  199. package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +5 -0
  200. package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +5 -0
  201. package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +147 -0
  202. package/dist/admin/src/components/AIChat/hooks/useAttachments.d.ts +8 -0
  203. package/dist/admin/src/components/AIChat/hooks/useChatTitle.d.ts +13 -0
  204. package/dist/admin/src/components/AIChat/hooks/useCodeUpload.d.ts +31 -0
  205. package/dist/admin/src/components/AIChat/hooks/useFeedback.d.ts +7 -0
  206. package/dist/admin/src/components/AIChat/hooks/useFigmaUpload.d.ts +61 -0
  207. package/dist/admin/src/components/AIChat/hooks/useLastSeenSchemas.d.ts +10 -0
  208. package/dist/admin/src/components/AIChat/hooks/useTranslations.d.ts +3 -0
  209. package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +32 -0
  210. package/dist/admin/src/components/AIChat/lib/constants.d.ts +12 -0
  211. package/dist/admin/src/components/AIChat/lib/fileToAttachment.d.ts +2 -0
  212. package/dist/admin/src/components/AIChat/lib/misc.d.ts +1 -0
  213. package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +3 -0
  214. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +16 -0
  215. package/dist/admin/src/components/AIChat/lib/types/annotations.d.ts +19 -0
  216. package/dist/admin/src/components/AIChat/lib/types/attachments.d.ts +15 -0
  217. package/dist/admin/src/components/AIChat/lib/types/feedback.d.ts +1 -0
  218. package/dist/admin/src/components/AIChat/lib/types/messages.d.ts +26 -0
  219. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +20 -0
  220. package/dist/admin/src/components/AIChat/providers/ChatProvider.d.ts +30 -0
  221. package/dist/admin/src/components/AIChat/providers/SchemaProvider.d.ts +10 -0
  222. package/dist/admin/src/components/ComponentList.d.ts +1 -1
  223. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +1 -1
  224. package/dist/admin/translations/ar.json.js +187 -2
  225. package/dist/admin/translations/ar.json.js.map +1 -1
  226. package/dist/admin/translations/ar.json.mjs +187 -3
  227. package/dist/admin/translations/ar.json.mjs.map +1 -1
  228. package/dist/admin/translations/de.json.js +42 -7
  229. package/dist/admin/translations/de.json.js.map +1 -1
  230. package/dist/admin/translations/de.json.mjs +42 -7
  231. package/dist/admin/translations/de.json.mjs.map +1 -1
  232. package/dist/admin/translations/en.json.js +53 -2
  233. package/dist/admin/translations/en.json.js.map +1 -1
  234. package/dist/admin/translations/en.json.mjs +53 -2
  235. package/dist/admin/translations/en.json.mjs.map +1 -1
  236. package/dist/admin/translations/es.json.js +37 -15
  237. package/dist/admin/translations/es.json.js.map +1 -1
  238. package/dist/admin/translations/es.json.mjs +37 -15
  239. package/dist/admin/translations/es.json.mjs.map +1 -1
  240. package/dist/admin/translations/fr.json.js +165 -3
  241. package/dist/admin/translations/fr.json.js.map +1 -1
  242. package/dist/admin/translations/fr.json.mjs +165 -4
  243. package/dist/admin/translations/fr.json.mjs.map +1 -1
  244. package/dist/admin/translations/id.json.js +93 -23
  245. package/dist/admin/translations/id.json.js.map +1 -1
  246. package/dist/admin/translations/id.json.mjs +93 -23
  247. package/dist/admin/translations/id.json.mjs.map +1 -1
  248. package/dist/admin/translations/it.json.js +75 -6
  249. package/dist/admin/translations/it.json.js.map +1 -1
  250. package/dist/admin/translations/it.json.mjs +75 -6
  251. package/dist/admin/translations/it.json.mjs.map +1 -1
  252. package/dist/admin/translations/ja.json.js +191 -5
  253. package/dist/admin/translations/ja.json.js.map +1 -1
  254. package/dist/admin/translations/ja.json.mjs +191 -6
  255. package/dist/admin/translations/ja.json.mjs.map +1 -1
  256. package/dist/admin/translations/ko.json.js +70 -16
  257. package/dist/admin/translations/ko.json.js.map +1 -1
  258. package/dist/admin/translations/ko.json.mjs +70 -16
  259. package/dist/admin/translations/ko.json.mjs.map +1 -1
  260. package/dist/admin/translations/ms.json.js +104 -31
  261. package/dist/admin/translations/ms.json.js.map +1 -1
  262. package/dist/admin/translations/ms.json.mjs +104 -31
  263. package/dist/admin/translations/ms.json.mjs.map +1 -1
  264. package/dist/admin/translations/nl.json.js +95 -15
  265. package/dist/admin/translations/nl.json.js.map +1 -1
  266. package/dist/admin/translations/nl.json.mjs +95 -15
  267. package/dist/admin/translations/nl.json.mjs.map +1 -1
  268. package/dist/admin/translations/pl.json.js +55 -11
  269. package/dist/admin/translations/pl.json.js.map +1 -1
  270. package/dist/admin/translations/pl.json.mjs +55 -11
  271. package/dist/admin/translations/pl.json.mjs.map +1 -1
  272. package/dist/admin/translations/pt-BR.json.js +54 -10
  273. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  274. package/dist/admin/translations/pt-BR.json.mjs +54 -10
  275. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  276. package/dist/admin/translations/pt.json.js +187 -2
  277. package/dist/admin/translations/pt.json.js.map +1 -1
  278. package/dist/admin/translations/pt.json.mjs +187 -3
  279. package/dist/admin/translations/pt.json.mjs.map +1 -1
  280. package/dist/admin/translations/ru.json.js +26 -1
  281. package/dist/admin/translations/ru.json.js.map +1 -1
  282. package/dist/admin/translations/ru.json.mjs +26 -1
  283. package/dist/admin/translations/ru.json.mjs.map +1 -1
  284. package/dist/admin/translations/sk.json.js +21 -1
  285. package/dist/admin/translations/sk.json.js.map +1 -1
  286. package/dist/admin/translations/sk.json.mjs +21 -1
  287. package/dist/admin/translations/sk.json.mjs.map +1 -1
  288. package/dist/admin/translations/sv.json.js +21 -1
  289. package/dist/admin/translations/sv.json.js.map +1 -1
  290. package/dist/admin/translations/sv.json.mjs +21 -1
  291. package/dist/admin/translations/sv.json.mjs.map +1 -1
  292. package/dist/admin/translations/th.json.js +21 -1
  293. package/dist/admin/translations/th.json.js.map +1 -1
  294. package/dist/admin/translations/th.json.mjs +21 -1
  295. package/dist/admin/translations/th.json.mjs.map +1 -1
  296. package/dist/admin/translations/tr.json.js +21 -1
  297. package/dist/admin/translations/tr.json.js.map +1 -1
  298. package/dist/admin/translations/tr.json.mjs +21 -1
  299. package/dist/admin/translations/tr.json.mjs.map +1 -1
  300. package/dist/admin/translations/uk.json.js +21 -2
  301. package/dist/admin/translations/uk.json.js.map +1 -1
  302. package/dist/admin/translations/uk.json.mjs +21 -2
  303. package/dist/admin/translations/uk.json.mjs.map +1 -1
  304. package/dist/admin/translations/zh-Hans.json.js +222 -133
  305. package/dist/admin/translations/zh-Hans.json.js.map +1 -1
  306. package/dist/admin/translations/zh-Hans.json.mjs +222 -133
  307. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
  308. package/dist/admin/translations/zh.json.js +21 -1
  309. package/dist/admin/translations/zh.json.js.map +1 -1
  310. package/dist/admin/translations/zh.json.mjs +21 -1
  311. package/dist/admin/translations/zh.json.mjs.map +1 -1
  312. package/dist/server/index.js +2 -0
  313. package/dist/server/index.js.map +1 -1
  314. package/dist/server/index.mjs +2 -0
  315. package/dist/server/index.mjs.map +1 -1
  316. package/dist/server/register.js +98 -0
  317. package/dist/server/register.js.map +1 -0
  318. package/dist/server/register.mjs +96 -0
  319. package/dist/server/register.mjs.map +1 -0
  320. package/dist/server/src/controllers/ai/auth.d.ts +1 -0
  321. package/dist/server/src/controllers/ai/auth.d.ts.map +1 -0
  322. package/dist/server/src/controllers/ai/index.d.ts +1 -0
  323. package/dist/server/src/controllers/ai/index.d.ts.map +1 -0
  324. package/dist/server/src/index.d.ts +1 -0
  325. package/dist/server/src/index.d.ts.map +1 -1
  326. package/dist/server/src/register.d.ts +11 -0
  327. package/dist/server/src/register.d.ts.map +1 -0
  328. package/package.json +12 -5
  329. package/dist/admin/components/DataManager/utils/formatSchemas.js +0 -21
  330. package/dist/admin/components/DataManager/utils/formatSchemas.js.map +0 -1
  331. package/dist/admin/components/DataManager/utils/formatSchemas.mjs +0 -18
  332. package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +0 -1
@@ -78,183 +78,187 @@ const ContentTypeBuilderNav = ()=>{
78
78
  /*#__PURE__*/ jsx(Divider, {
79
79
  background: "neutral150"
80
80
  }),
81
- /*#__PURE__*/ jsxs(Flex, {
82
- padding: 5,
83
- gap: 3,
84
- direction: 'column',
85
- alignItems: 'stretch',
81
+ /*#__PURE__*/ jsxs(SubNav.Content, {
86
82
  children: [
87
- /*#__PURE__*/ jsx(tours.contentTypeBuilder.Save, {
88
- children: /*#__PURE__*/ jsxs(Flex, {
89
- gap: 2,
90
- children: [
91
- /*#__PURE__*/ jsx(Button, {
92
- flex: 1,
93
- onClick: (e)=>{
94
- e.preventDefault();
95
- saveSchema();
96
- },
97
- type: "submit",
98
- disabled: !isModified || !isInDevelopmentMode,
99
- fullWidth: true,
100
- size: "S",
101
- children: formatMessage({
102
- id: 'global.save',
103
- defaultMessage: 'Save'
104
- })
105
- }),
106
- /*#__PURE__*/ jsxs(Menu.Root, {
107
- open: menuIsOpen,
108
- onOpenChange: setMenuIsOpen,
83
+ /*#__PURE__*/ jsxs(Flex, {
84
+ padding: 5,
85
+ gap: 3,
86
+ direction: 'column',
87
+ alignItems: 'stretch',
88
+ children: [
89
+ /*#__PURE__*/ jsx(tours.contentTypeBuilder.Save, {
90
+ children: /*#__PURE__*/ jsxs(Flex, {
91
+ gap: 2,
109
92
  children: [
110
- /*#__PURE__*/ jsxs(Menu.Trigger, {
93
+ /*#__PURE__*/ jsx(Button, {
94
+ flex: 1,
95
+ onClick: (e)=>{
96
+ e.preventDefault();
97
+ saveSchema();
98
+ },
99
+ type: "submit",
100
+ disabled: !isModified || !isInDevelopmentMode,
101
+ fullWidth: true,
111
102
  size: "S",
112
- endIcon: null,
113
- paddingTop: "4px",
114
- paddingLeft: "7px",
115
- paddingRight: "7px",
116
- variant: "tertiary",
117
- children: [
118
- /*#__PURE__*/ jsx(More, {
119
- fill: "neutral500",
120
- "aria-hidden": true,
121
- focusable: false
122
- }),
123
- /*#__PURE__*/ jsx(VisuallyHidden, {
124
- tag: "span",
125
- children: formatMessage({
126
- id: 'global.more.actions',
127
- defaultMessage: 'More actions'
128
- })
129
- })
130
- ]
103
+ children: formatMessage({
104
+ id: 'global.save',
105
+ defaultMessage: 'Save'
106
+ })
131
107
  }),
132
- /*#__PURE__*/ jsxs(Menu.Content, {
133
- zIndex: 1,
108
+ /*#__PURE__*/ jsxs(Menu.Root, {
109
+ open: menuIsOpen,
110
+ onOpenChange: setMenuIsOpen,
134
111
  children: [
135
- /*#__PURE__*/ jsx(Menu.Item, {
136
- disabled: !history.canUndo || !isInDevelopmentMode,
137
- onSelect: undoHandler,
138
- startIcon: /*#__PURE__*/ jsx(ArrowCounterClockwise, {}),
139
- children: formatMessage({
140
- id: 'global.last-change.undo',
141
- defaultMessage: 'Undo last change'
142
- })
143
- }),
144
- /*#__PURE__*/ jsx(Menu.Item, {
145
- disabled: !history.canRedo || !isInDevelopmentMode,
146
- onSelect: redoHandler,
147
- startIcon: /*#__PURE__*/ jsx(ArrowClockwise, {}),
148
- children: formatMessage({
149
- id: 'global.last-change.redo',
150
- defaultMessage: 'Redo last change'
151
- })
112
+ /*#__PURE__*/ jsxs(Menu.Trigger, {
113
+ size: "S",
114
+ endIcon: null,
115
+ paddingTop: "4px",
116
+ paddingLeft: "7px",
117
+ paddingRight: "7px",
118
+ variant: "tertiary",
119
+ children: [
120
+ /*#__PURE__*/ jsx(More, {
121
+ fill: "neutral500",
122
+ "aria-hidden": true,
123
+ focusable: false
124
+ }),
125
+ /*#__PURE__*/ jsx(VisuallyHidden, {
126
+ tag: "span",
127
+ children: formatMessage({
128
+ id: 'global.more.actions',
129
+ defaultMessage: 'More actions'
130
+ })
131
+ })
132
+ ]
152
133
  }),
153
- /*#__PURE__*/ jsx(Menu.Separator, {}),
154
- /*#__PURE__*/ jsx(DiscardAllMenuItem, {
155
- disabled: !history.canDiscardAll || !isInDevelopmentMode,
156
- onSelect: discardHandler,
157
- children: /*#__PURE__*/ jsxs(Flex, {
158
- gap: 2,
159
- children: [
160
- /*#__PURE__*/ jsx(Cross, {}),
161
- /*#__PURE__*/ jsx(Typography, {
162
- children: formatMessage({
163
- id: 'global.last-changes.discard',
164
- defaultMessage: 'Discard last changes'
165
- })
134
+ /*#__PURE__*/ jsxs(Menu.Content, {
135
+ zIndex: 1,
136
+ children: [
137
+ /*#__PURE__*/ jsx(Menu.Item, {
138
+ disabled: !history.canUndo || !isInDevelopmentMode,
139
+ onSelect: undoHandler,
140
+ startIcon: /*#__PURE__*/ jsx(ArrowCounterClockwise, {}),
141
+ children: formatMessage({
142
+ id: 'global.last-change.undo',
143
+ defaultMessage: 'Undo last change'
144
+ })
145
+ }),
146
+ /*#__PURE__*/ jsx(Menu.Item, {
147
+ disabled: !history.canRedo || !isInDevelopmentMode,
148
+ onSelect: redoHandler,
149
+ startIcon: /*#__PURE__*/ jsx(ArrowClockwise, {}),
150
+ children: formatMessage({
151
+ id: 'global.last-change.redo',
152
+ defaultMessage: 'Redo last change'
166
153
  })
167
- ]
168
- })
154
+ }),
155
+ /*#__PURE__*/ jsx(Menu.Separator, {}),
156
+ /*#__PURE__*/ jsx(DiscardAllMenuItem, {
157
+ disabled: !history.canDiscardAll || !isInDevelopmentMode,
158
+ onSelect: discardHandler,
159
+ children: /*#__PURE__*/ jsxs(Flex, {
160
+ gap: 2,
161
+ children: [
162
+ /*#__PURE__*/ jsx(Cross, {}),
163
+ /*#__PURE__*/ jsx(Typography, {
164
+ children: formatMessage({
165
+ id: 'global.last-changes.discard',
166
+ defaultMessage: 'Discard last changes'
167
+ })
168
+ })
169
+ ]
170
+ })
171
+ })
172
+ ]
169
173
  })
170
174
  ]
171
175
  })
172
176
  ]
173
177
  })
174
- ]
175
- })
176
- }),
177
- /*#__PURE__*/ jsx(Searchbar, {
178
- value: search.value,
179
- onChange: (e)=>search.onChange(e.target.value),
180
- onClear: ()=>search.onChange(''),
181
- placeholder: formatMessage({
182
- id: getTrad('search.placeholder'),
183
- defaultMessage: 'Search'
184
- }),
185
- size: "S",
186
- // eslint-disable-next-line react/no-children-prop
187
- children: undefined,
188
- name: 'search_contentType',
189
- clearLabel: formatMessage({
190
- id: 'clearLabel',
191
- defaultMessage: 'Clear'
192
- }),
193
- "aria-label": formatMessage({
194
- id: getTrad('search.placeholder'),
195
- defaultMessage: 'Search'
196
- })
197
- })
198
- ]
199
- }),
200
- /*#__PURE__*/ jsx(SubNav.Sections, {
201
- children: menu.map((section)=>/*#__PURE__*/ jsx(Fragment, {
202
- children: /*#__PURE__*/ jsx(SubNav.Section, {
203
- label: formatMessage({
204
- id: section.title.id,
205
- defaultMessage: section.title.defaultMessage
206
178
  }),
207
- link: section.customLink && {
208
- label: formatMessage({
209
- id: section.customLink?.id,
210
- defaultMessage: section.customLink?.defaultMessage
179
+ /*#__PURE__*/ jsx(Searchbar, {
180
+ value: search.value,
181
+ onChange: (e)=>search.onChange(e.target.value),
182
+ onClear: ()=>search.onChange(''),
183
+ placeholder: formatMessage({
184
+ id: getTrad('search.placeholder'),
185
+ defaultMessage: 'Search'
211
186
  }),
212
- onClik: section.customLink?.onClick
213
- },
214
- sectionId: section.name,
215
- children: section.links.map((link)=>{
216
- const linkLabel = formatMessage({
217
- id: link.name,
218
- defaultMessage: link.title
219
- });
220
- if ('links' in link) {
221
- return /*#__PURE__*/ jsx(SubNav.SubSection, {
222
- label: link.title,
223
- children: link.links.map((subLink)=>{
224
- const label = formatMessage({
225
- id: subLink.name,
226
- defaultMessage: subLink.title
227
- });
228
- return /*#__PURE__*/ jsx(SubNav.Link, {
229
- to: subLink.to,
230
- label: label,
231
- endAction: /*#__PURE__*/ jsx(Box, {
232
- tag: "span",
233
- textAlign: "center",
234
- width: '24px',
235
- children: /*#__PURE__*/ jsx(Status, {
236
- status: subLink.status
237
- })
187
+ size: "S",
188
+ // eslint-disable-next-line react/no-children-prop
189
+ children: undefined,
190
+ name: 'search_contentType',
191
+ clearLabel: formatMessage({
192
+ id: 'clearLabel',
193
+ defaultMessage: 'Clear'
194
+ }),
195
+ "aria-label": formatMessage({
196
+ id: getTrad('search.placeholder'),
197
+ defaultMessage: 'Search'
198
+ })
199
+ })
200
+ ]
201
+ }),
202
+ /*#__PURE__*/ jsx(SubNav.Sections, {
203
+ children: menu.map((section)=>/*#__PURE__*/ jsx(Fragment, {
204
+ children: /*#__PURE__*/ jsx(SubNav.Section, {
205
+ label: formatMessage({
206
+ id: section.title.id,
207
+ defaultMessage: section.title.defaultMessage
208
+ }),
209
+ link: section.customLink && {
210
+ label: formatMessage({
211
+ id: section.customLink?.id,
212
+ defaultMessage: section.customLink?.defaultMessage
213
+ }),
214
+ onClick: section.customLink?.onClick
215
+ },
216
+ sectionId: section.name,
217
+ children: section.links.map((link)=>{
218
+ const linkLabel = formatMessage({
219
+ id: link.name,
220
+ defaultMessage: link.title
221
+ });
222
+ if ('links' in link) {
223
+ return /*#__PURE__*/ jsx(SubNav.SubSection, {
224
+ label: link.title,
225
+ children: link.links.map((subLink)=>{
226
+ const label = formatMessage({
227
+ id: subLink.name,
228
+ defaultMessage: subLink.title
229
+ });
230
+ return /*#__PURE__*/ jsx(SubNav.Link, {
231
+ to: subLink.to,
232
+ label: label,
233
+ endAction: /*#__PURE__*/ jsx(Box, {
234
+ tag: "span",
235
+ textAlign: "center",
236
+ width: '24px',
237
+ children: /*#__PURE__*/ jsx(Status, {
238
+ status: subLink.status
239
+ })
240
+ })
241
+ }, subLink.name);
238
242
  })
239
- }, subLink.name);
240
- })
241
- }, link.name);
242
- }
243
- return /*#__PURE__*/ jsx(SubNav.Link, {
244
- to: link.to,
245
- label: linkLabel,
246
- endAction: /*#__PURE__*/ jsx(Box, {
247
- tag: "span",
248
- textAlign: "center",
249
- width: '24px',
250
- children: /*#__PURE__*/ jsx(Status, {
251
- status: link.status
252
- })
243
+ }, link.name);
244
+ }
245
+ return /*#__PURE__*/ jsx(SubNav.Link, {
246
+ to: link.to,
247
+ label: linkLabel,
248
+ endAction: /*#__PURE__*/ jsx(Box, {
249
+ tag: "span",
250
+ textAlign: "center",
251
+ width: '24px',
252
+ children: /*#__PURE__*/ jsx(Status, {
253
+ status: link.status
254
+ })
255
+ })
256
+ }, link.name);
253
257
  })
254
- }, link.name);
255
- })
256
- })
257
- }, section.name))
258
+ })
259
+ }, section.name))
260
+ })
261
+ ]
258
262
  }),
259
263
  /*#__PURE__*/ jsx(Dialog.Root, {
260
264
  open: discardConfirmationModalIsOpen,
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypeBuilderNav.mjs","sources":["../../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx"],"sourcesContent":["import { Fragment, useState, useEffect } from 'react';\n\nimport { ConfirmDialog, SubNav, tours, useGuidedTour } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Searchbar,\n Button,\n Flex,\n Typography,\n Divider,\n Menu,\n VisuallyHidden,\n Dialog,\n} from '@strapi/design-system';\nimport { ArrowClockwise, Cross, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { Status } from '../Status';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst ArrowCounterClockwise = styled(ArrowClockwise)`\n transform: scaleX(-1);\n`;\n\nconst DiscardAllMenuItem = styled(Menu.Item)`\n color: ${({ theme }) => theme.colors.danger600};\n\n &:hover {\n background: ${({ theme, disabled }) => !disabled && theme.colors.danger100};\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { saveSchema, isModified, history, isInDevelopmentMode } = useDataManager();\n\n const { formatMessage } = useIntl();\n\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n const [discardConfirmationModalIsOpen, setDiscardConfirmationModalIsOpen] = useState(false);\n\n useEffect(() => {\n if (!isInDevelopmentMode) {\n return;\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'Enter') {\n if (isModified) {\n e.preventDefault();\n saveSchema();\n }\n } else if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault(); // Prevent browser default undo (e.g., in input fields)\n history.undo();\n } else if (e.key === 'y' || (e.shiftKey && e.key === 'z') || e.key === 'Z') {\n e.preventDefault(); // Prevent browser default redo (e.g., in input fields)\n history.redo();\n }\n }\n };\n\n document.addEventListener('keydown', onKeyDown);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n });\n\n const discardHandler = () => {\n setDiscardConfirmationModalIsOpen(true);\n };\n\n const discardChanges = () => {\n setMenuIsOpen(false);\n setDiscardConfirmationModalIsOpen(false);\n history.discardAllChanges();\n };\n\n const undoHandler = () => {\n history.undo();\n };\n\n const redoHandler = () => {\n history.redo();\n };\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav.Main aria-label={pluginName}>\n <SubNav.Header label={pluginName} />\n <Divider background=\"neutral150\" />\n <Flex padding={5} gap={3} direction={'column'} alignItems={'stretch'}>\n <tours.contentTypeBuilder.Save>\n <Flex gap={2}>\n <Button\n flex={1}\n onClick={(e) => {\n e.preventDefault();\n saveSchema();\n }}\n type=\"submit\"\n disabled={!isModified || !isInDevelopmentMode}\n fullWidth\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n <Menu.Root open={menuIsOpen} onOpenChange={setMenuIsOpen}>\n <Menu.Trigger\n size=\"S\"\n endIcon={null}\n paddingTop=\"4px\"\n paddingLeft=\"7px\"\n paddingRight=\"7px\"\n variant=\"tertiary\"\n >\n <More fill=\"neutral500\" aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: 'global.more.actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </Menu.Trigger>\n <Menu.Content zIndex={1}>\n <Menu.Item\n disabled={!history.canUndo || !isInDevelopmentMode}\n onSelect={undoHandler}\n startIcon={<ArrowCounterClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.undo',\n defaultMessage: 'Undo last change',\n })}\n </Menu.Item>\n <Menu.Item\n disabled={!history.canRedo || !isInDevelopmentMode}\n onSelect={redoHandler}\n startIcon={<ArrowClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.redo',\n defaultMessage: 'Redo last change',\n })}\n </Menu.Item>\n <Menu.Separator />\n <DiscardAllMenuItem\n disabled={!history.canDiscardAll || !isInDevelopmentMode}\n onSelect={discardHandler}\n >\n <Flex gap={2}>\n <Cross />\n <Typography>\n {formatMessage({\n id: 'global.last-changes.discard',\n defaultMessage: 'Discard last changes',\n })}\n </Typography>\n </Flex>\n </DiscardAllMenuItem>\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </tours.contentTypeBuilder.Save>\n\n <Searchbar\n value={search.value}\n onChange={(e) => search.onChange(e.target.value)}\n onClear={() => search.onChange('')}\n placeholder={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNav.Section\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n link={\n section.customLink && {\n label: formatMessage({\n id: section.customLink?.id,\n defaultMessage: section.customLink?.defaultMessage,\n }),\n onClik: section.customLink?.onClick,\n }\n }\n sectionId={section.name}\n >\n {section.links.map((link) => {\n const linkLabel = formatMessage({ id: link.name, defaultMessage: link.title });\n\n if ('links' in link) {\n return (\n <SubNav.SubSection key={link.name} label={link.title}>\n {link.links.map((subLink) => {\n const label = formatMessage({\n id: subLink.name,\n defaultMessage: subLink.title,\n });\n\n return (\n <SubNav.Link\n to={subLink.to}\n key={subLink.name}\n label={label}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={subLink.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.SubSection>\n );\n }\n\n return (\n <SubNav.Link\n to={link.to}\n key={link.name}\n label={linkLabel}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={link.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.Section>\n </Fragment>\n ))}\n </SubNav.Sections>\n <Dialog.Root\n open={discardConfirmationModalIsOpen}\n onOpenChange={setDiscardConfirmationModalIsOpen}\n >\n <ConfirmDialog onConfirm={discardChanges}>\n {formatMessage({\n id: getTrad('popUpWarning.discardAll.message'),\n defaultMessage: 'Are you sure you want to discard all changes?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </SubNav.Main>\n );\n};\n"],"names":["ArrowCounterClockwise","styled","ArrowClockwise","DiscardAllMenuItem","Menu","Item","theme","colors","danger600","disabled","danger100","ContentTypeBuilderNav","menu","search","useContentTypeBuilderMenu","saveSchema","isModified","history","isInDevelopmentMode","useDataManager","formatMessage","useIntl","menuIsOpen","setMenuIsOpen","useState","discardConfirmationModalIsOpen","setDiscardConfirmationModalIsOpen","useEffect","onKeyDown","e","ctrlKey","metaKey","key","preventDefault","shiftKey","undo","redo","document","addEventListener","removeEventListener","discardHandler","discardChanges","discardAllChanges","undoHandler","redoHandler","pluginName","id","getTrad","defaultMessage","_jsxs","SubNav","Main","aria-label","_jsx","Header","label","Divider","background","Flex","padding","gap","direction","alignItems","tours","contentTypeBuilder","Save","Button","flex","onClick","type","fullWidth","size","Root","open","onOpenChange","Trigger","endIcon","paddingTop","paddingLeft","paddingRight","variant","More","fill","aria-hidden","focusable","VisuallyHidden","tag","Content","zIndex","canUndo","onSelect","startIcon","canRedo","Separator","canDiscardAll","Cross","Typography","Searchbar","value","onChange","target","onClear","placeholder","children","undefined","name","clearLabel","Sections","map","section","Fragment","Section","title","link","customLink","onClik","sectionId","links","linkLabel","SubSection","subLink","Link","to","endAction","Box","textAlign","width","Status","status","Dialog","ConfirmDialog","onConfirm"],"mappings":"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"}
1
+ {"version":3,"file":"ContentTypeBuilderNav.mjs","sources":["../../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx"],"sourcesContent":["import { Fragment, useState, useEffect } from 'react';\n\nimport { ConfirmDialog, SubNav, tours } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Searchbar,\n Button,\n Flex,\n Typography,\n Divider,\n Menu,\n VisuallyHidden,\n Dialog,\n} from '@strapi/design-system';\nimport { ArrowClockwise, Cross, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { Status } from '../Status';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst ArrowCounterClockwise = styled(ArrowClockwise)`\n transform: scaleX(-1);\n`;\n\nconst DiscardAllMenuItem = styled(Menu.Item)`\n color: ${({ theme }) => theme.colors.danger600};\n\n &:hover {\n background: ${({ theme, disabled }) => !disabled && theme.colors.danger100};\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { saveSchema, isModified, history, isInDevelopmentMode } = useDataManager();\n\n const { formatMessage } = useIntl();\n\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n const [discardConfirmationModalIsOpen, setDiscardConfirmationModalIsOpen] = useState(false);\n\n useEffect(() => {\n if (!isInDevelopmentMode) {\n return;\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'Enter') {\n if (isModified) {\n e.preventDefault();\n saveSchema();\n }\n } else if (e.key === 'z' && !e.shiftKey) {\n e.preventDefault(); // Prevent browser default undo (e.g., in input fields)\n history.undo();\n } else if (e.key === 'y' || (e.shiftKey && e.key === 'z') || e.key === 'Z') {\n e.preventDefault(); // Prevent browser default redo (e.g., in input fields)\n history.redo();\n }\n }\n };\n\n document.addEventListener('keydown', onKeyDown);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n };\n });\n\n const discardHandler = () => {\n setDiscardConfirmationModalIsOpen(true);\n };\n\n const discardChanges = () => {\n setMenuIsOpen(false);\n setDiscardConfirmationModalIsOpen(false);\n history.discardAllChanges();\n };\n\n const undoHandler = () => {\n history.undo();\n };\n\n const redoHandler = () => {\n history.redo();\n };\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav.Main aria-label={pluginName}>\n <SubNav.Header label={pluginName} />\n <Divider background=\"neutral150\" />\n <SubNav.Content>\n <Flex padding={5} gap={3} direction={'column'} alignItems={'stretch'}>\n <tours.contentTypeBuilder.Save>\n <Flex gap={2}>\n <Button\n flex={1}\n onClick={(e) => {\n e.preventDefault();\n saveSchema();\n }}\n type=\"submit\"\n disabled={!isModified || !isInDevelopmentMode}\n fullWidth\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n <Menu.Root open={menuIsOpen} onOpenChange={setMenuIsOpen}>\n <Menu.Trigger\n size=\"S\"\n endIcon={null}\n paddingTop=\"4px\"\n paddingLeft=\"7px\"\n paddingRight=\"7px\"\n variant=\"tertiary\"\n >\n <More fill=\"neutral500\" aria-hidden focusable={false} />\n <VisuallyHidden tag=\"span\">\n {formatMessage({\n id: 'global.more.actions',\n defaultMessage: 'More actions',\n })}\n </VisuallyHidden>\n </Menu.Trigger>\n <Menu.Content zIndex={1}>\n <Menu.Item\n disabled={!history.canUndo || !isInDevelopmentMode}\n onSelect={undoHandler}\n startIcon={<ArrowCounterClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.undo',\n defaultMessage: 'Undo last change',\n })}\n </Menu.Item>\n <Menu.Item\n disabled={!history.canRedo || !isInDevelopmentMode}\n onSelect={redoHandler}\n startIcon={<ArrowClockwise />}\n >\n {formatMessage({\n id: 'global.last-change.redo',\n defaultMessage: 'Redo last change',\n })}\n </Menu.Item>\n <Menu.Separator />\n <DiscardAllMenuItem\n disabled={!history.canDiscardAll || !isInDevelopmentMode}\n onSelect={discardHandler}\n >\n <Flex gap={2}>\n <Cross />\n <Typography>\n {formatMessage({\n id: 'global.last-changes.discard',\n defaultMessage: 'Discard last changes',\n })}\n </Typography>\n </Flex>\n </DiscardAllMenuItem>\n </Menu.Content>\n </Menu.Root>\n </Flex>\n </tours.contentTypeBuilder.Save>\n\n <Searchbar\n value={search.value}\n onChange={(e) => search.onChange(e.target.value)}\n onClear={() => search.onChange('')}\n placeholder={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={formatMessage({\n id: getTrad('search.placeholder'),\n defaultMessage: 'Search',\n })}\n />\n </Flex>\n <SubNav.Sections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNav.Section\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n link={\n section.customLink && {\n label: formatMessage({\n id: section.customLink?.id,\n defaultMessage: section.customLink?.defaultMessage,\n }),\n onClick: section.customLink?.onClick,\n }\n }\n sectionId={section.name}\n >\n {section.links.map((link) => {\n const linkLabel = formatMessage({ id: link.name, defaultMessage: link.title });\n\n if ('links' in link) {\n return (\n <SubNav.SubSection key={link.name} label={link.title}>\n {link.links.map((subLink) => {\n const label = formatMessage({\n id: subLink.name,\n defaultMessage: subLink.title,\n });\n\n return (\n <SubNav.Link\n to={subLink.to}\n key={subLink.name}\n label={label}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={subLink.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.SubSection>\n );\n }\n\n return (\n <SubNav.Link\n to={link.to}\n key={link.name}\n label={linkLabel}\n endAction={\n <Box tag=\"span\" textAlign=\"center\" width={'24px'}>\n <Status status={link.status} />\n </Box>\n }\n />\n );\n })}\n </SubNav.Section>\n </Fragment>\n ))}\n </SubNav.Sections>\n </SubNav.Content>\n <Dialog.Root\n open={discardConfirmationModalIsOpen}\n onOpenChange={setDiscardConfirmationModalIsOpen}\n >\n <ConfirmDialog onConfirm={discardChanges}>\n {formatMessage({\n id: getTrad('popUpWarning.discardAll.message'),\n defaultMessage: 'Are you sure you want to discard all changes?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </SubNav.Main>\n );\n};\n"],"names":["ArrowCounterClockwise","styled","ArrowClockwise","DiscardAllMenuItem","Menu","Item","theme","colors","danger600","disabled","danger100","ContentTypeBuilderNav","menu","search","useContentTypeBuilderMenu","saveSchema","isModified","history","isInDevelopmentMode","useDataManager","formatMessage","useIntl","menuIsOpen","setMenuIsOpen","useState","discardConfirmationModalIsOpen","setDiscardConfirmationModalIsOpen","useEffect","onKeyDown","e","ctrlKey","metaKey","key","preventDefault","shiftKey","undo","redo","document","addEventListener","removeEventListener","discardHandler","discardChanges","discardAllChanges","undoHandler","redoHandler","pluginName","id","getTrad","defaultMessage","_jsxs","SubNav","Main","aria-label","_jsx","Header","label","Divider","background","Content","Flex","padding","gap","direction","alignItems","tours","contentTypeBuilder","Save","Button","flex","onClick","type","fullWidth","size","Root","open","onOpenChange","Trigger","endIcon","paddingTop","paddingLeft","paddingRight","variant","More","fill","aria-hidden","focusable","VisuallyHidden","tag","zIndex","canUndo","onSelect","startIcon","canRedo","Separator","canDiscardAll","Cross","Typography","Searchbar","value","onChange","target","onClear","placeholder","children","undefined","name","clearLabel","Sections","map","section","Fragment","Section","title","link","customLink","sectionId","links","linkLabel","SubSection","subLink","Link","to","endAction","Box","textAlign","width","Status","status","Dialog","ConfirmDialog","onConfirm"],"mappings":";;;;;;;;;;;;AAwBA,MAAMA,qBAAAA,GAAwBC,MAAOC,CAAAA,cAAAA,CAAe;;AAEpD,CAAC;AAED,MAAMC,kBAAqBF,GAAAA,MAAAA,CAAOG,IAAKC,CAAAA,IAAI,CAAC;SACnC,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,SAAS,CAAC;;;AAGjC,gBAAA,EAAE,CAAC,EAAEF,KAAK,EAAEG,QAAQ,EAAE,GAAK,CAACA,QAAYH,IAAAA,KAAAA,CAAMC,MAAM,CAACG,SAAS,CAAC;;AAE/E,CAAC;MAEYC,qBAAwB,GAAA,IAAA;AACnC,IAAA,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,yBAAAA,EAAAA;IACzB,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,OAAO,EAAEC,mBAAmB,EAAE,GAAGC,cAAAA,EAAAA;IAEjE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAc,CAAA,GAAGC,QAAS,CAAA,KAAA,CAAA;AAC7C,IAAA,MAAM,CAACC,8BAAAA,EAAgCC,iCAAkC,CAAA,GAAGF,QAAS,CAAA,KAAA,CAAA;IAErFG,SAAU,CAAA,IAAA;AACR,QAAA,IAAI,CAACT,mBAAqB,EAAA;AACxB,YAAA;AACF;AAEA,QAAA,MAAMU,YAAY,CAACC,CAAAA,GAAAA;AACjB,YAAA,IAAIA,CAAEC,CAAAA,OAAO,IAAID,CAAAA,CAAEE,OAAO,EAAE;gBAC1B,IAAIF,CAAAA,CAAEG,GAAG,KAAK,OAAS,EAAA;AACrB,oBAAA,IAAIhB,UAAY,EAAA;AACda,wBAAAA,CAAAA,CAAEI,cAAc,EAAA;AAChBlB,wBAAAA,UAAAA,EAAAA;AACF;iBACK,MAAA,IAAIc,EAAEG,GAAG,KAAK,OAAO,CAACH,CAAAA,CAAEK,QAAQ,EAAE;oBACvCL,CAAEI,CAAAA,cAAc;AAChBhB,oBAAAA,OAAAA,CAAQkB,IAAI,EAAA;AACd,iBAAA,MAAO,IAAIN,CAAAA,CAAEG,GAAG,KAAK,OAAQH,CAAEK,CAAAA,QAAQ,IAAIL,CAAAA,CAAEG,GAAG,KAAK,GAAA,IAAQH,CAAEG,CAAAA,GAAG,KAAK,GAAK,EAAA;oBAC1EH,CAAEI,CAAAA,cAAc;AAChBhB,oBAAAA,OAAAA,CAAQmB,IAAI,EAAA;AACd;AACF;AACF,SAAA;QAEAC,QAASC,CAAAA,gBAAgB,CAAC,SAAWV,EAAAA,SAAAA,CAAAA;QAErC,OAAO,IAAA;YACLS,QAASE,CAAAA,mBAAmB,CAAC,SAAWX,EAAAA,SAAAA,CAAAA;AAC1C,SAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAMY,cAAiB,GAAA,IAAA;QACrBd,iCAAkC,CAAA,IAAA,CAAA;AACpC,KAAA;AAEA,IAAA,MAAMe,cAAiB,GAAA,IAAA;QACrBlB,aAAc,CAAA,KAAA,CAAA;QACdG,iCAAkC,CAAA,KAAA,CAAA;AAClCT,QAAAA,OAAAA,CAAQyB,iBAAiB,EAAA;AAC3B,KAAA;AAEA,IAAA,MAAMC,WAAc,GAAA,IAAA;AAClB1B,QAAAA,OAAAA,CAAQkB,IAAI,EAAA;AACd,KAAA;AAEA,IAAA,MAAMS,WAAc,GAAA,IAAA;AAClB3B,QAAAA,OAAAA,CAAQmB,IAAI,EAAA;AACd,KAAA;AAEA,IAAA,MAAMS,aAAazB,aAAc,CAAA;AAC/B0B,QAAAA,EAAAA,EAAIC,OAAQ,CAAA,aAAA,CAAA;QACZC,cAAgB,EAAA;AAClB,KAAA,CAAA;IAEA,qBACEC,IAAA,CAACC,OAAOC,IAAI,EAAA;QAACC,YAAYP,EAAAA,UAAAA;;AACvB,0BAAAQ,GAAA,CAACH,OAAOI,MAAM,EAAA;gBAACC,KAAOV,EAAAA;;0BACtBQ,GAACG,CAAAA,OAAAA,EAAAA;gBAAQC,UAAW,EAAA;;AACpB,0BAAAR,IAAA,CAACC,OAAOQ,OAAO,EAAA;;kCACbT,IAACU,CAAAA,IAAAA,EAAAA;wBAAKC,OAAS,EAAA,CAAA;wBAAGC,GAAK,EAAA,CAAA;wBAAGC,SAAW,EAAA,QAAA;wBAAUC,UAAY,EAAA,SAAA;;0CACzDV,GAACW,CAAAA,KAAAA,CAAMC,kBAAkB,CAACC,IAAI,EAAA;AAC5B,gCAAA,QAAA,gBAAAjB,IAACU,CAAAA,IAAAA,EAAAA;oCAAKE,GAAK,EAAA,CAAA;;sDACTR,GAACc,CAAAA,MAAAA,EAAAA;4CACCC,IAAM,EAAA,CAAA;AACNC,4CAAAA,OAAAA,EAAS,CAACxC,CAAAA,GAAAA;AACRA,gDAAAA,CAAAA,CAAEI,cAAc,EAAA;AAChBlB,gDAAAA,UAAAA,EAAAA;AACF,6CAAA;4CACAuD,IAAK,EAAA,QAAA;4CACL7D,QAAU,EAAA,CAACO,cAAc,CAACE,mBAAAA;4CAC1BqD,SAAS,EAAA,IAAA;4CACTC,IAAK,EAAA,GAAA;sDAEJpD,aAAc,CAAA;gDACb0B,EAAI,EAAA,aAAA;gDACJE,cAAgB,EAAA;AAClB,6CAAA;;AAEF,sDAAAC,IAAA,CAAC7C,KAAKqE,IAAI,EAAA;4CAACC,IAAMpD,EAAAA,UAAAA;4CAAYqD,YAAcpD,EAAAA,aAAAA;;AACzC,8DAAA0B,IAAA,CAAC7C,KAAKwE,OAAO,EAAA;oDACXJ,IAAK,EAAA,GAAA;oDACLK,OAAS,EAAA,IAAA;oDACTC,UAAW,EAAA,KAAA;oDACXC,WAAY,EAAA,KAAA;oDACZC,YAAa,EAAA,KAAA;oDACbC,OAAQ,EAAA,UAAA;;sEAER5B,GAAC6B,CAAAA,IAAAA,EAAAA;4DAAKC,IAAK,EAAA,YAAA;4DAAaC,aAAW,EAAA,IAAA;4DAACC,SAAW,EAAA;;sEAC/ChC,GAACiC,CAAAA,cAAAA,EAAAA;4DAAeC,GAAI,EAAA,MAAA;sEACjBnE,aAAc,CAAA;gEACb0B,EAAI,EAAA,qBAAA;gEACJE,cAAgB,EAAA;AAClB,6DAAA;;;;AAGJ,8DAAAC,IAAA,CAAC7C,KAAKsD,OAAO,EAAA;oDAAC8B,MAAQ,EAAA,CAAA;;AACpB,sEAAAnC,GAAA,CAACjD,KAAKC,IAAI,EAAA;AACRI,4DAAAA,QAAAA,EAAU,CAACQ,OAAAA,CAAQwE,OAAO,IAAI,CAACvE,mBAAAA;4DAC/BwE,QAAU/C,EAAAA,WAAAA;AACVgD,4DAAAA,SAAAA,gBAAWtC,GAACrD,CAAAA,qBAAAA,EAAAA,EAAAA,CAAAA;sEAEXoB,aAAc,CAAA;gEACb0B,EAAI,EAAA,yBAAA;gEACJE,cAAgB,EAAA;AAClB,6DAAA;;AAEF,sEAAAK,GAAA,CAACjD,KAAKC,IAAI,EAAA;AACRI,4DAAAA,QAAAA,EAAU,CAACQ,OAAAA,CAAQ2E,OAAO,IAAI,CAAC1E,mBAAAA;4DAC/BwE,QAAU9C,EAAAA,WAAAA;AACV+C,4DAAAA,SAAAA,gBAAWtC,GAACnD,CAAAA,cAAAA,EAAAA,EAAAA,CAAAA;sEAEXkB,aAAc,CAAA;gEACb0B,EAAI,EAAA,yBAAA;gEACJE,cAAgB,EAAA;AAClB,6DAAA;;AAEF,sEAAAK,GAAA,CAACjD,KAAKyF,SAAS,EAAA,EAAA,CAAA;sEACfxC,GAAClD,CAAAA,kBAAAA,EAAAA;AACCM,4DAAAA,QAAAA,EAAU,CAACQ,OAAAA,CAAQ6E,aAAa,IAAI,CAAC5E,mBAAAA;4DACrCwE,QAAUlD,EAAAA,cAAAA;AAEV,4DAAA,QAAA,gBAAAS,IAACU,CAAAA,IAAAA,EAAAA;gEAAKE,GAAK,EAAA,CAAA;;kFACTR,GAAC0C,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;kFACD1C,GAAC2C,CAAAA,UAAAA,EAAAA;kFACE5E,aAAc,CAAA;4EACb0B,EAAI,EAAA,6BAAA;4EACJE,cAAgB,EAAA;AAClB,yEAAA;;;;;;;;;;;;0CASdK,GAAC4C,CAAAA,SAAAA,EAAAA;AACCC,gCAAAA,KAAAA,EAAOrF,OAAOqF,KAAK;gCACnBC,QAAU,EAAA,CAACtE,IAAMhB,MAAOsF,CAAAA,QAAQ,CAACtE,CAAEuE,CAAAA,MAAM,CAACF,KAAK,CAAA;gCAC/CG,OAAS,EAAA,IAAMxF,MAAOsF,CAAAA,QAAQ,CAAC,EAAA,CAAA;AAC/BG,gCAAAA,WAAAA,EAAalF,aAAc,CAAA;AACzB0B,oCAAAA,EAAAA,EAAIC,OAAQ,CAAA,oBAAA,CAAA;oCACZC,cAAgB,EAAA;AAClB,iCAAA,CAAA;gCACAwB,IAAK,EAAA,GAAA;;gCAEL+B,QAAUC,EAAAA,SAAAA;gCACVC,IAAM,EAAA,oBAAA;AACNC,gCAAAA,UAAAA,EAAYtF,aAAc,CAAA;oCAAE0B,EAAI,EAAA,YAAA;oCAAcE,cAAgB,EAAA;AAAQ,iCAAA,CAAA;AACtEI,gCAAAA,YAAAA,EAAYhC,aAAc,CAAA;AACxB0B,oCAAAA,EAAAA,EAAIC,OAAQ,CAAA,oBAAA,CAAA;oCACZC,cAAgB,EAAA;AAClB,iCAAA;;;;AAGJ,kCAAAK,GAAA,CAACH,OAAOyD,QAAQ,EAAA;AACb/F,wBAAAA,QAAAA,EAAAA,IAAAA,CAAKgG,GAAG,CAAC,CAACC,OAAAA,iBACTxD,GAACyD,CAAAA,QAAAA,EAAAA;wDACCzD,GAAA,CAACH,OAAO6D,OAAO,EAAA;AACbxD,oCAAAA,KAAAA,EAAOnC,aAAc,CAAA;wCACnB0B,EAAI+D,EAAAA,OAAAA,CAAQG,KAAK,CAAClE,EAAE;wCACpBE,cAAgB6D,EAAAA,OAAAA,CAAQG,KAAK,CAAChE;AAChC,qCAAA,CAAA;oCACAiE,IACEJ,EAAAA,OAAAA,CAAQK,UAAU,IAAI;AACpB3D,wCAAAA,KAAAA,EAAOnC,aAAc,CAAA;4CACnB0B,EAAI+D,EAAAA,OAAAA,CAAQK,UAAU,EAAEpE,EAAAA;4CACxBE,cAAgB6D,EAAAA,OAAAA,CAAQK,UAAU,EAAElE;AACtC,yCAAA,CAAA;wCACAqB,OAASwC,EAAAA,OAAAA,CAAQK,UAAU,EAAE7C;AAC/B,qCAAA;AAEF8C,oCAAAA,SAAAA,EAAWN,QAAQJ,IAAI;AAEtBI,oCAAAA,QAAAA,EAAAA,OAAAA,CAAQO,KAAK,CAACR,GAAG,CAAC,CAACK,IAAAA,GAAAA;AAClB,wCAAA,MAAMI,YAAYjG,aAAc,CAAA;AAAE0B,4CAAAA,EAAAA,EAAImE,KAAKR,IAAI;AAAEzD,4CAAAA,cAAAA,EAAgBiE,KAAKD;AAAM,yCAAA,CAAA;AAE5E,wCAAA,IAAI,WAAWC,IAAM,EAAA;4CACnB,qBACE5D,GAAA,CAACH,OAAOoE,UAAU,EAAA;AAAiB/D,gDAAAA,KAAAA,EAAO0D,KAAKD,KAAK;AACjDC,gDAAAA,QAAAA,EAAAA,IAAAA,CAAKG,KAAK,CAACR,GAAG,CAAC,CAACW,OAAAA,GAAAA;AACf,oDAAA,MAAMhE,QAAQnC,aAAc,CAAA;AAC1B0B,wDAAAA,EAAAA,EAAIyE,QAAQd,IAAI;AAChBzD,wDAAAA,cAAAA,EAAgBuE,QAAQP;AAC1B,qDAAA,CAAA;oDAEA,qBACE3D,GAAA,CAACH,OAAOsE,IAAI,EAAA;AACVC,wDAAAA,EAAAA,EAAIF,QAAQE,EAAE;wDAEdlE,KAAOA,EAAAA,KAAAA;AACPmE,wDAAAA,SAAAA,gBACErE,GAACsE,CAAAA,GAAAA,EAAAA;4DAAIpC,GAAI,EAAA,MAAA;4DAAOqC,SAAU,EAAA,QAAA;4DAASC,KAAO,EAAA,MAAA;AACxC,4DAAA,QAAA,gBAAAxE,GAACyE,CAAAA,MAAAA,EAAAA;AAAOC,gEAAAA,MAAAA,EAAQR,QAAQQ;;;AAJvBR,qDAAAA,EAAAA,OAAAA,CAAQd,IAAI,CAAA;AASvB,iDAAA;AAnBsBQ,6CAAAA,EAAAA,IAAAA,CAAKR,IAAI,CAAA;AAsBrC;wCAEA,qBACEpD,GAAA,CAACH,OAAOsE,IAAI,EAAA;AACVC,4CAAAA,EAAAA,EAAIR,KAAKQ,EAAE;4CAEXlE,KAAO8D,EAAAA,SAAAA;AACPK,4CAAAA,SAAAA,gBACErE,GAACsE,CAAAA,GAAAA,EAAAA;gDAAIpC,GAAI,EAAA,MAAA;gDAAOqC,SAAU,EAAA,QAAA;gDAASC,KAAO,EAAA,MAAA;AACxC,gDAAA,QAAA,gBAAAxE,GAACyE,CAAAA,MAAAA,EAAAA;AAAOC,oDAAAA,MAAAA,EAAQd,KAAKc;;;AAJpBd,yCAAAA,EAAAA,IAAAA,CAAKR,IAAI,CAAA;AASpB,qCAAA;;AA1DWI,6BAAAA,EAAAA,OAAAA,CAAQJ,IAAI,CAAA;;;;AAgEjC,0BAAApD,GAAA,CAAC2E,OAAOvD,IAAI,EAAA;gBACVC,IAAMjD,EAAAA,8BAAAA;gBACNkD,YAAcjD,EAAAA,iCAAAA;AAEd,gBAAA,QAAA,gBAAA2B,GAAC4E,CAAAA,aAAAA,EAAAA;oBAAcC,SAAWzF,EAAAA,cAAAA;8BACvBrB,aAAc,CAAA;AACb0B,wBAAAA,EAAAA,EAAIC,OAAQ,CAAA,iCAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;;;AAKV;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataManagerContext.js","sources":["../../../../admin/src/components/DataManager/DataManagerContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { Component, ContentType } from '../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport interface DataManagerContextValue {\n isLoading: boolean;\n addAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n moveAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n from: number;\n to: number;\n }) => void;\n addCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n addCreatedComponentToDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n }) => void;\n createComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n uid: Internal.UID.Component;\n }) => void;\n createSchema: (opts: {\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 uid: Internal.UID.Schema;\n }) => void;\n changeDynamicZoneComponents: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n }) => void;\n removeAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeToRemoveName: string;\n }) => void;\n deleteComponent(uid: Internal.UID.Component): void;\n deleteContentType(uid: Internal.UID.ContentType): void;\n removeComponentFromDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dzName: string;\n componentToRemoveIndex: number;\n }) => void;\n sortedContentTypesList: {\n visible: ContentType['visible'];\n name: ContentType['uid'];\n title: ContentType['info']['displayName'];\n plugin: ContentType['plugin'];\n uid: ContentType['uid'];\n to: string;\n kind: ContentType['kind'];\n restrictRelationsTo: ContentType['restrictRelationsTo'];\n status: ContentType['status'];\n }[];\n updateComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentUID: Internal.UID.Component;\n }) => void;\n updateComponentUid: (opts: {\n newComponentUID: Internal.UID.Component;\n componentUID: Internal.UID.Component;\n }) => void;\n updateSchema: (opts: {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: Internal.UID.ContentType;\n }) => void;\n initialComponents: Record<Internal.UID.Component, Component>;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n initialContentTypes: Record<Internal.UID.ContentType, ContentType>;\n contentTypes: Record<Internal.UID.ContentType, ContentType>;\n isInDevelopmentMode?: boolean;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n saveSchema(): Promise<void>;\n isModified: boolean;\n isSaving: boolean;\n applyChange: (opts: {\n action: 'add' | 'update' | 'delete';\n schema: Component | ContentType;\n }) => void;\n history: {\n undo(): void;\n redo(): void;\n discardAllChanges(): void;\n canUndo: boolean;\n canRedo: boolean;\n canDiscardAll: boolean;\n };\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n"],"names":["DataManagerContext","createContext"],"mappings":";;;;AA6IA;AACO,MAAMA,qBAAqBC,mBAAyC;;;;"}
1
+ {"version":3,"file":"DataManagerContext.js","sources":["../../../../admin/src/components/DataManager/DataManagerContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { Component, ContentType } from '../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport interface DataManagerContextValue {\n isLoading: boolean;\n addAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n moveAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n from: number;\n to: number;\n }) => void;\n addCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n addCreatedComponentToDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n }) => void;\n createComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n uid: Internal.UID.Component;\n }) => void;\n createSchema: (opts: {\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 uid: Internal.UID.Schema;\n }) => void;\n changeDynamicZoneComponents: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n }) => void;\n removeAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeToRemoveName: string;\n }) => void;\n deleteComponent(uid: Internal.UID.Component): void;\n deleteContentType(uid: Internal.UID.ContentType): void;\n removeComponentFromDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dzName: string;\n componentToRemoveIndex: number;\n }) => void;\n sortedContentTypesList: {\n visible: ContentType['visible'];\n name: ContentType['uid'];\n title: ContentType['info']['displayName'];\n plugin: ContentType['plugin'];\n uid: ContentType['uid'];\n to: string;\n kind: ContentType['kind'];\n restrictRelationsTo: ContentType['restrictRelationsTo'];\n status: ContentType['status'];\n }[];\n updateComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentUID: Internal.UID.Component;\n }) => void;\n updateComponentUid: (opts: {\n newComponentUID: Internal.UID.Component;\n componentUID: Internal.UID.Component;\n }) => void;\n updateSchema: (opts: {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: Internal.UID.ContentType;\n }) => void;\n initialComponents: Record<Internal.UID.Component, Component>;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n initialContentTypes: Record<Internal.UID.ContentType, ContentType>;\n contentTypes: Record<Internal.UID.ContentType, ContentType>;\n isInDevelopmentMode?: boolean;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n saveSchema(): Promise<void>;\n isModified: boolean;\n isSaving: boolean;\n applyChange: (opts: {\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }) => void;\n history: {\n undo(): void;\n redo(): void;\n discardAllChanges(): void;\n canUndo: boolean;\n canRedo: boolean;\n canDiscardAll: boolean;\n };\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n"],"names":["DataManagerContext","createContext"],"mappings":";;;;AA6IA;AACO,MAAMA,qBAAqBC,mBAAyC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataManagerContext.mjs","sources":["../../../../admin/src/components/DataManager/DataManagerContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { Component, ContentType } from '../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport interface DataManagerContextValue {\n isLoading: boolean;\n addAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n moveAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n from: number;\n to: number;\n }) => void;\n addCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n addCreatedComponentToDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n }) => void;\n createComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n uid: Internal.UID.Component;\n }) => void;\n createSchema: (opts: {\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 uid: Internal.UID.Schema;\n }) => void;\n changeDynamicZoneComponents: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n }) => void;\n removeAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeToRemoveName: string;\n }) => void;\n deleteComponent(uid: Internal.UID.Component): void;\n deleteContentType(uid: Internal.UID.ContentType): void;\n removeComponentFromDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dzName: string;\n componentToRemoveIndex: number;\n }) => void;\n sortedContentTypesList: {\n visible: ContentType['visible'];\n name: ContentType['uid'];\n title: ContentType['info']['displayName'];\n plugin: ContentType['plugin'];\n uid: ContentType['uid'];\n to: string;\n kind: ContentType['kind'];\n restrictRelationsTo: ContentType['restrictRelationsTo'];\n status: ContentType['status'];\n }[];\n updateComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentUID: Internal.UID.Component;\n }) => void;\n updateComponentUid: (opts: {\n newComponentUID: Internal.UID.Component;\n componentUID: Internal.UID.Component;\n }) => void;\n updateSchema: (opts: {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: Internal.UID.ContentType;\n }) => void;\n initialComponents: Record<Internal.UID.Component, Component>;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n initialContentTypes: Record<Internal.UID.ContentType, ContentType>;\n contentTypes: Record<Internal.UID.ContentType, ContentType>;\n isInDevelopmentMode?: boolean;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n saveSchema(): Promise<void>;\n isModified: boolean;\n isSaving: boolean;\n applyChange: (opts: {\n action: 'add' | 'update' | 'delete';\n schema: Component | ContentType;\n }) => void;\n history: {\n undo(): void;\n redo(): void;\n discardAllChanges(): void;\n canUndo: boolean;\n canRedo: boolean;\n canDiscardAll: boolean;\n };\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n"],"names":["DataManagerContext","createContext"],"mappings":";;AA6IA;AACO,MAAMA,qBAAqBC,aAAyC;;;;"}
1
+ {"version":3,"file":"DataManagerContext.mjs","sources":["../../../../admin/src/components/DataManager/DataManagerContext.ts"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { Component, ContentType } from '../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport interface DataManagerContextValue {\n isLoading: boolean;\n addAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editAttribute: (opts: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n moveAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n from: number;\n to: number;\n }) => void;\n addCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n }) => void;\n editCustomFieldAttribute: (params: {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n name: string;\n }) => void;\n addCreatedComponentToDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n }) => void;\n createComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n uid: Internal.UID.Component;\n }) => void;\n createSchema: (opts: {\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 uid: Internal.UID.Schema;\n }) => void;\n changeDynamicZoneComponents: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n }) => void;\n removeAttribute: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n attributeToRemoveName: string;\n }) => void;\n deleteComponent(uid: Internal.UID.Component): void;\n deleteContentType(uid: Internal.UID.ContentType): void;\n removeComponentFromDynamicZone: (opts: {\n forTarget: Struct.ModelType;\n targetUid: Internal.UID.Schema;\n dzName: string;\n componentToRemoveIndex: number;\n }) => void;\n sortedContentTypesList: {\n visible: ContentType['visible'];\n name: ContentType['uid'];\n title: ContentType['info']['displayName'];\n plugin: ContentType['plugin'];\n uid: ContentType['uid'];\n to: string;\n kind: ContentType['kind'];\n restrictRelationsTo: ContentType['restrictRelationsTo'];\n status: ContentType['status'];\n }[];\n updateComponentSchema: (opts: {\n data: {\n icon: string;\n displayName: string;\n };\n componentUID: Internal.UID.Component;\n }) => void;\n updateComponentUid: (opts: {\n newComponentUID: Internal.UID.Component;\n componentUID: Internal.UID.Component;\n }) => void;\n updateSchema: (opts: {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: Internal.UID.ContentType;\n }) => void;\n initialComponents: Record<Internal.UID.Component, Component>;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n initialContentTypes: Record<Internal.UID.ContentType, ContentType>;\n contentTypes: Record<Internal.UID.ContentType, ContentType>;\n isInDevelopmentMode?: boolean;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n saveSchema(): Promise<void>;\n isModified: boolean;\n isSaving: boolean;\n applyChange: (opts: {\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }) => void;\n history: {\n undo(): void;\n redo(): void;\n discardAllChanges(): void;\n canUndo: boolean;\n canRedo: boolean;\n canDiscardAll: boolean;\n };\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n"],"names":["DataManagerContext","createContext"],"mappings":";;AA6IA;AACO,MAAMA,qBAAqBC,aAAyC;;;;"}
@@ -5,7 +5,6 @@ var omit = require('lodash/omit');
5
5
  var getRelationType = require('../../utils/getRelationType.js');
6
6
  var makeUnique = require('../../utils/makeUnique.js');
7
7
  var undoRedo = require('./undoRedo.js');
8
- var formatSchemas = require('./utils/formatSchemas.js');
9
8
 
10
9
  const initialState = {
11
10
  components: {},
@@ -501,20 +500,63 @@ const slice = undoRedo.createUndoRedoSlice({
501
500
  switch(action){
502
501
  case 'add':
503
502
  {
504
- // generate a uid ?
505
503
  const uid = schema.uid;
506
504
  if (schema.modelType === 'component') {
505
+ state.components[uid] = schema;
506
+ } else {
507
+ state.contentTypes[uid] = schema;
508
+ }
509
+ }
510
+ break;
511
+ case 'update':
512
+ {
513
+ const uid = schema.uid;
514
+ // Find the schema, if the state was "create", we should keep it as it was before
515
+ if (schema.modelType === 'component') {
516
+ const component = state.components[uid];
507
517
  state.components[uid] = {
508
- ...formatSchemas.formatSchema(schema),
509
- status: 'NEW'
518
+ ...schema,
519
+ status: component?.status === 'NEW' ? 'NEW' : schema.status
510
520
  };
511
521
  } else {
522
+ const contentType = state.contentTypes[uid];
512
523
  state.contentTypes[uid] = {
513
- ...formatSchemas.formatSchema(schema),
514
- status: 'NEW'
524
+ ...schema,
525
+ status: contentType?.status === 'NEW' ? 'NEW' : schema.status
515
526
  };
516
527
  }
517
528
  }
529
+ break;
530
+ case 'delete':
531
+ {
532
+ const uid = schema.uid;
533
+ const isComponent = schema.modelType === 'component';
534
+ // It's a component that has yet not been added
535
+ if (isComponent) {
536
+ const exists = state.components[uid];
537
+ if (!exists) {
538
+ return;
539
+ }
540
+ const isUnsaved = state.components[uid]?.status === 'NEW';
541
+ if (isUnsaved) {
542
+ delete state.components[uid];
543
+ } else {
544
+ state.components[uid].status = 'REMOVED';
545
+ }
546
+ } else {
547
+ const exists = state.contentTypes[uid];
548
+ if (!exists) {
549
+ return;
550
+ }
551
+ const isUnsaved = state.contentTypes[uid]?.status === 'NEW';
552
+ if (isUnsaved) {
553
+ delete state.contentTypes[uid];
554
+ } else {
555
+ state.contentTypes[uid].status = 'REMOVED';
556
+ }
557
+ }
558
+ break;
559
+ }
518
560
  }
519
561
  }
520
562
  }