@strapi/content-type-builder 5.37.1 → 5.38.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 (433) hide show
  1. package/dist/admin/components/AIChat/Chat.js.map +1 -1
  2. package/dist/admin/components/AIChat/Chat.mjs +2 -2
  3. package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
  4. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
  5. package/dist/admin/components/AIChat/FeedbackModal.mjs +1 -1
  6. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
  7. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
  8. package/dist/admin/components/AIChat/UploadCodeModal.mjs +1 -1
  9. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
  10. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  11. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
  12. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/components/Alert.js.map +1 -1
  14. package/dist/admin/components/AIChat/components/Alert.mjs.map +1 -1
  15. package/dist/admin/components/AIChat/components/AnimatedBox.js.map +1 -1
  16. package/dist/admin/components/AIChat/components/AnimatedBox.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.js.map +1 -1
  18. package/dist/admin/components/AIChat/components/Attachments/AttachmentPreview.mjs.map +1 -1
  19. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
  20. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +1 -1
  21. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
  22. package/dist/admin/components/AIChat/components/Base64Image.js.map +1 -1
  23. package/dist/admin/components/AIChat/components/Base64Image.mjs.map +1 -1
  24. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
  25. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
  26. package/dist/admin/components/AIChat/components/Dropzone.js +2 -6
  27. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
  28. package/dist/admin/components/AIChat/components/Dropzone.mjs +3 -7
  29. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
  30. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
  31. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +1 -1
  32. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
  33. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
  34. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
  35. package/dist/admin/components/AIChat/components/ImagePreview.js.map +1 -1
  36. package/dist/admin/components/AIChat/components/ImagePreview.mjs +1 -1
  37. package/dist/admin/components/AIChat/components/ImagePreview.mjs.map +1 -1
  38. package/dist/admin/components/AIChat/components/Input.js +1 -5
  39. package/dist/admin/components/AIChat/components/Input.js.map +1 -1
  40. package/dist/admin/components/AIChat/components/Input.mjs +4 -7
  41. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
  42. package/dist/admin/components/AIChat/components/Messages/Marker.js.map +1 -1
  43. package/dist/admin/components/AIChat/components/Messages/Marker.mjs +2 -2
  44. package/dist/admin/components/AIChat/components/Messages/Marker.mjs.map +1 -1
  45. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  46. package/dist/admin/components/AIChat/components/Messages/Message.mjs +1 -1
  47. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  48. package/dist/admin/components/AIChat/components/ResizableTextArea.js.map +1 -1
  49. package/dist/admin/components/AIChat/components/ResizableTextArea.mjs.map +1 -1
  50. package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
  51. package/dist/admin/components/AIChat/components/SimpleMenu.mjs.map +1 -1
  52. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
  53. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
  54. package/dist/admin/components/AIChat/components/animations.js.map +1 -1
  55. package/dist/admin/components/AIChat/components/animations.mjs.map +1 -1
  56. package/dist/admin/components/AIChat/components/icons/FigmaIcon.js.map +1 -1
  57. package/dist/admin/components/AIChat/components/icons/FigmaIcon.mjs.map +1 -1
  58. package/dist/admin/components/AIChat/components/icons/StopIcon.js.map +1 -1
  59. package/dist/admin/components/AIChat/components/icons/StopIcon.mjs.map +1 -1
  60. package/dist/admin/components/AIChat/hooks/useAIFetch.js.map +1 -1
  61. package/dist/admin/components/AIChat/hooks/useAIFetch.mjs.map +1 -1
  62. package/dist/admin/components/AIChat/hooks/useAttachments.js.map +1 -1
  63. package/dist/admin/components/AIChat/hooks/useAttachments.mjs.map +1 -1
  64. package/dist/admin/components/AIChat/hooks/useChatTitle.js.map +1 -1
  65. package/dist/admin/components/AIChat/hooks/useChatTitle.mjs.map +1 -1
  66. package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
  67. package/dist/admin/components/AIChat/hooks/useCodeUpload.mjs.map +1 -1
  68. package/dist/admin/components/AIChat/hooks/useFeedback.js.map +1 -1
  69. package/dist/admin/components/AIChat/hooks/useFeedback.mjs.map +1 -1
  70. package/dist/admin/components/AIChat/hooks/useFigmaUpload.js.map +1 -1
  71. package/dist/admin/components/AIChat/hooks/useFigmaUpload.mjs.map +1 -1
  72. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.js.map +1 -1
  73. package/dist/admin/components/AIChat/hooks/useLastSeenSchemas.mjs.map +1 -1
  74. package/dist/admin/components/AIChat/hooks/useTranslations.js.map +1 -1
  75. package/dist/admin/components/AIChat/hooks/useTranslations.mjs.map +1 -1
  76. package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
  77. package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
  78. package/dist/admin/components/AIChat/lib/constants.js.map +1 -1
  79. package/dist/admin/components/AIChat/lib/constants.mjs.map +1 -1
  80. package/dist/admin/components/AIChat/lib/misc.js.map +1 -1
  81. package/dist/admin/components/AIChat/lib/misc.mjs.map +1 -1
  82. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
  83. package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
  84. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  85. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
  86. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
  87. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
  88. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  89. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  90. package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
  91. package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
  92. package/dist/admin/components/ApplyConditionButton.js.map +1 -1
  93. package/dist/admin/components/ApplyConditionButton.mjs.map +1 -1
  94. package/dist/admin/components/AttributeIcon.js.map +1 -1
  95. package/dist/admin/components/AttributeIcon.mjs +1 -1
  96. package/dist/admin/components/AttributeIcon.mjs.map +1 -1
  97. package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -1
  98. package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -1
  99. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  100. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  101. package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -1
  102. package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -1
  103. package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
  104. package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
  105. package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -1
  106. package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -1
  107. package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
  108. package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -1
  109. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -1
  110. package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -1
  111. package/dist/admin/components/AttributeRow.js.map +1 -1
  112. package/dist/admin/components/AttributeRow.mjs +1 -1
  113. package/dist/admin/components/AttributeRow.mjs.map +1 -1
  114. package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
  115. package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
  116. package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
  117. package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
  118. package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
  119. package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
  120. package/dist/admin/components/CTBSession/CTBSessionProvider.js.map +1 -1
  121. package/dist/admin/components/CTBSession/CTBSessionProvider.mjs.map +1 -1
  122. package/dist/admin/components/CTBSession/sessionContext.js.map +1 -1
  123. package/dist/admin/components/CTBSession/sessionContext.mjs.map +1 -1
  124. package/dist/admin/components/CTBSession/useCTBSession.js.map +1 -1
  125. package/dist/admin/components/CTBSession/useCTBSession.mjs.map +1 -1
  126. package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
  127. package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
  128. package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
  129. package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
  130. package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
  131. package/dist/admin/components/ComponentCard/ComponentCard.mjs +1 -1
  132. package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
  133. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -1
  134. package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -1
  135. package/dist/admin/components/ComponentList.js.map +1 -1
  136. package/dist/admin/components/ComponentList.mjs.map +1 -1
  137. package/dist/admin/components/ComponentRow.js.map +1 -1
  138. package/dist/admin/components/ComponentRow.mjs.map +1 -1
  139. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
  140. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +2 -2
  141. package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
  142. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
  143. package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
  144. package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
  145. package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
  146. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  147. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  148. package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
  149. package/dist/admin/components/CustomRadioGroup/Styles.mjs +1 -1
  150. package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
  151. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  152. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  153. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  154. package/dist/admin/components/DataManager/DataManagerProvider.mjs +1 -1
  155. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  156. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  157. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  158. package/dist/admin/components/DataManager/undoRedo.js.map +1 -1
  159. package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -1
  160. package/dist/admin/components/DataManager/useDataManager.js.map +1 -1
  161. package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -1
  162. package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
  163. package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
  164. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
  165. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
  166. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
  167. package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -1
  168. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -1
  169. package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -1
  170. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
  171. package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
  172. package/dist/admin/components/DisplayedType.js.map +1 -1
  173. package/dist/admin/components/DisplayedType.mjs.map +1 -1
  174. package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
  175. package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
  176. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  177. package/dist/admin/components/DynamicZoneList.mjs +1 -1
  178. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  179. package/dist/admin/components/ExitPrompt.js.map +1 -1
  180. package/dist/admin/components/ExitPrompt.mjs.map +1 -1
  181. package/dist/admin/components/Footers.js.map +1 -1
  182. package/dist/admin/components/Footers.mjs +2 -2
  183. package/dist/admin/components/Footers.mjs.map +1 -1
  184. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  185. package/dist/admin/components/FormModal/FormModal.mjs +1 -1
  186. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  187. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  188. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  189. package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -1
  190. package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -1
  191. package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -1
  192. package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -1
  193. package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -1
  194. package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -1
  195. package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -1
  196. package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -1
  197. package/dist/admin/components/FormModal/attributes/form.js.map +1 -1
  198. package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -1
  199. package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -1
  200. package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -1
  201. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  202. package/dist/admin/components/FormModal/attributes/types.mjs +1 -1
  203. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  204. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  205. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  206. package/dist/admin/components/FormModal/component/componentField.js.map +1 -1
  207. package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -1
  208. package/dist/admin/components/FormModal/component/componentForm.js.map +1 -1
  209. package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -1
  210. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  211. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
  212. package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -1
  213. package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -1
  214. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
  215. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -1
  216. package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -1
  217. package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -1
  218. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  219. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  220. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -1
  221. package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -1
  222. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
  223. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -1
  224. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
  225. package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
  226. package/dist/admin/components/FormModal/reducer.js.map +1 -1
  227. package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
  228. package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
  229. package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
  230. package/dist/admin/components/FormModal/utils/createUid.js.map +1 -1
  231. package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -1
  232. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
  233. package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
  234. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
  235. package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
  236. package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
  237. package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
  238. package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
  239. package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
  240. package/dist/admin/components/FormModalEndActions.js.map +1 -1
  241. package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
  242. package/dist/admin/components/FormModalHeader.js.map +1 -1
  243. package/dist/admin/components/FormModalHeader.mjs.map +1 -1
  244. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
  245. package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
  246. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
  247. package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
  248. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -1
  249. package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -1
  250. package/dist/admin/components/FormModalSubHeader.js.map +1 -1
  251. package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
  252. package/dist/admin/components/GenericInputs.js +1 -5
  253. package/dist/admin/components/GenericInputs.js.map +1 -1
  254. package/dist/admin/components/GenericInputs.mjs +1 -5
  255. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  256. package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
  257. package/dist/admin/components/IconPicker/IconPicker.mjs +1 -1
  258. package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
  259. package/dist/admin/components/IconPicker/constants.js.map +1 -1
  260. package/dist/admin/components/IconPicker/constants.mjs.map +1 -1
  261. package/dist/admin/components/List.js.map +1 -1
  262. package/dist/admin/components/List.mjs +1 -1
  263. package/dist/admin/components/List.mjs.map +1 -1
  264. package/dist/admin/components/PluralName.js.map +1 -1
  265. package/dist/admin/components/PluralName.mjs.map +1 -1
  266. package/dist/admin/components/Relation/Relation.js.map +1 -1
  267. package/dist/admin/components/Relation/Relation.mjs.map +1 -1
  268. package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
  269. package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
  270. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
  271. package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
  272. package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -1
  273. package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -1
  274. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
  275. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +1 -1
  276. package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
  277. package/dist/admin/components/SelectCategory.js.map +1 -1
  278. package/dist/admin/components/SelectCategory.mjs.map +1 -1
  279. package/dist/admin/components/SelectComponent.js.map +1 -1
  280. package/dist/admin/components/SelectComponent.mjs.map +1 -1
  281. package/dist/admin/components/SelectComponents.js.map +1 -1
  282. package/dist/admin/components/SelectComponents.mjs.map +1 -1
  283. package/dist/admin/components/SelectDateType.js.map +1 -1
  284. package/dist/admin/components/SelectDateType.mjs.map +1 -1
  285. package/dist/admin/components/SelectNumber.js.map +1 -1
  286. package/dist/admin/components/SelectNumber.mjs.map +1 -1
  287. package/dist/admin/components/SingularName.js.map +1 -1
  288. package/dist/admin/components/SingularName.mjs.map +1 -1
  289. package/dist/admin/components/Status.js.map +1 -1
  290. package/dist/admin/components/Status.mjs.map +1 -1
  291. package/dist/admin/components/TabForm.js.map +1 -1
  292. package/dist/admin/components/TabForm.mjs.map +1 -1
  293. package/dist/admin/components/TextareaEnum.js.map +1 -1
  294. package/dist/admin/components/TextareaEnum.mjs.map +1 -1
  295. package/dist/admin/constants.js.map +1 -1
  296. package/dist/admin/constants.mjs.map +1 -1
  297. package/dist/admin/icons/Curve.js.map +1 -1
  298. package/dist/admin/icons/Curve.mjs.map +1 -1
  299. package/dist/admin/index.js.map +1 -1
  300. package/dist/admin/index.mjs.map +1 -1
  301. package/dist/admin/pages/App/index.js.map +1 -1
  302. package/dist/admin/pages/App/index.mjs.map +1 -1
  303. package/dist/admin/pages/ListView/EmptyState.js.map +1 -1
  304. package/dist/admin/pages/ListView/EmptyState.mjs +1 -1
  305. package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -1
  306. package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
  307. package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
  308. package/dist/admin/pages/ListView/ListView.js.map +1 -1
  309. package/dist/admin/pages/ListView/ListView.mjs +1 -1
  310. package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
  311. package/dist/admin/reducers.js +4 -4
  312. package/dist/admin/reducers.js.map +1 -1
  313. package/dist/admin/reducers.mjs +4 -4
  314. package/dist/admin/reducers.mjs.map +1 -1
  315. package/dist/admin/utils/conditions.js.map +1 -1
  316. package/dist/admin/utils/conditions.mjs.map +1 -1
  317. package/dist/admin/utils/findAttribute.js.map +1 -1
  318. package/dist/admin/utils/findAttribute.mjs.map +1 -1
  319. package/dist/admin/utils/formAPI.js.map +1 -1
  320. package/dist/admin/utils/formAPI.mjs.map +1 -1
  321. package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -1
  322. package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -1
  323. package/dist/admin/utils/getMaxDepth.js.map +1 -1
  324. package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
  325. package/dist/admin/utils/getRelationType.js.map +1 -1
  326. package/dist/admin/utils/getRelationType.mjs.map +1 -1
  327. package/dist/admin/utils/getTrad.js.map +1 -1
  328. package/dist/admin/utils/getTrad.mjs.map +1 -1
  329. package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
  330. package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
  331. package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
  332. package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
  333. package/dist/admin/utils/makeUnique.js.map +1 -1
  334. package/dist/admin/utils/makeUnique.mjs.map +1 -1
  335. package/dist/admin/utils/nameToSlug.js.map +1 -1
  336. package/dist/admin/utils/nameToSlug.mjs.map +1 -1
  337. package/dist/admin/utils/parseDateValue.js.map +1 -1
  338. package/dist/admin/utils/parseDateValue.mjs.map +1 -1
  339. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  340. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  341. package/dist/admin/utils/timeFormat.js.map +1 -1
  342. package/dist/admin/utils/timeFormat.mjs.map +1 -1
  343. package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
  344. package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -1
  345. package/dist/server/bootstrap.js.map +1 -1
  346. package/dist/server/bootstrap.mjs.map +1 -1
  347. package/dist/server/config.js.map +1 -1
  348. package/dist/server/config.mjs.map +1 -1
  349. package/dist/server/controllers/builder.js.map +1 -1
  350. package/dist/server/controllers/builder.mjs.map +1 -1
  351. package/dist/server/controllers/component-categories.js.map +1 -1
  352. package/dist/server/controllers/component-categories.mjs.map +1 -1
  353. package/dist/server/controllers/components.js.map +1 -1
  354. package/dist/server/controllers/components.mjs +1 -1
  355. package/dist/server/controllers/components.mjs.map +1 -1
  356. package/dist/server/controllers/content-types.js.map +1 -1
  357. package/dist/server/controllers/content-types.mjs +1 -1
  358. package/dist/server/controllers/content-types.mjs.map +1 -1
  359. package/dist/server/controllers/index.js.map +1 -1
  360. package/dist/server/controllers/index.mjs.map +1 -1
  361. package/dist/server/controllers/schema.js.map +1 -1
  362. package/dist/server/controllers/schema.mjs.map +1 -1
  363. package/dist/server/controllers/validation/common.js.map +1 -1
  364. package/dist/server/controllers/validation/common.mjs.map +1 -1
  365. package/dist/server/controllers/validation/component-category.js.map +1 -1
  366. package/dist/server/controllers/validation/component-category.mjs.map +1 -1
  367. package/dist/server/controllers/validation/component.js.map +1 -1
  368. package/dist/server/controllers/validation/component.mjs +1 -1
  369. package/dist/server/controllers/validation/component.mjs.map +1 -1
  370. package/dist/server/controllers/validation/content-type.js.map +1 -1
  371. package/dist/server/controllers/validation/content-type.mjs.map +1 -1
  372. package/dist/server/controllers/validation/data-transform.js.map +1 -1
  373. package/dist/server/controllers/validation/data-transform.mjs.map +1 -1
  374. package/dist/server/controllers/validation/model-schema.js.map +1 -1
  375. package/dist/server/controllers/validation/model-schema.mjs.map +1 -1
  376. package/dist/server/controllers/validation/relations.js.map +1 -1
  377. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  378. package/dist/server/controllers/validation/schema.js.map +1 -1
  379. package/dist/server/controllers/validation/schema.mjs +1 -1
  380. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  381. package/dist/server/controllers/validation/types.js +0 -1
  382. package/dist/server/controllers/validation/types.js.map +1 -1
  383. package/dist/server/controllers/validation/types.mjs +1 -2
  384. package/dist/server/controllers/validation/types.mjs.map +1 -1
  385. package/dist/server/index.js +8 -8
  386. package/dist/server/middlewares/is-development-mode.js.map +1 -1
  387. package/dist/server/middlewares/is-development-mode.mjs.map +1 -1
  388. package/dist/server/register.js.map +1 -1
  389. package/dist/server/register.mjs.map +1 -1
  390. package/dist/server/routes/admin.js.map +1 -1
  391. package/dist/server/routes/admin.mjs.map +1 -1
  392. package/dist/server/routes/content-api.js.map +1 -1
  393. package/dist/server/routes/content-api.mjs.map +1 -1
  394. package/dist/server/routes/index.js.map +1 -1
  395. package/dist/server/routes/index.mjs.map +1 -1
  396. package/dist/server/services/api-handler.js.map +1 -1
  397. package/dist/server/services/api-handler.mjs.map +1 -1
  398. package/dist/server/services/builder.js.map +1 -1
  399. package/dist/server/services/builder.mjs.map +1 -1
  400. package/dist/server/services/component-categories.js.map +1 -1
  401. package/dist/server/services/component-categories.mjs +1 -1
  402. package/dist/server/services/component-categories.mjs.map +1 -1
  403. package/dist/server/services/components.js.map +1 -1
  404. package/dist/server/services/components.mjs +1 -1
  405. package/dist/server/services/components.mjs.map +1 -1
  406. package/dist/server/services/constants.js.map +1 -1
  407. package/dist/server/services/constants.mjs.map +1 -1
  408. package/dist/server/services/content-types.js.map +1 -1
  409. package/dist/server/services/content-types.mjs +1 -1
  410. package/dist/server/services/content-types.mjs.map +1 -1
  411. package/dist/server/services/index.js.map +1 -1
  412. package/dist/server/services/index.mjs.map +1 -1
  413. package/dist/server/services/schema-builder/component-builder.js.map +1 -1
  414. package/dist/server/services/schema-builder/component-builder.mjs +1 -1
  415. package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
  416. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  417. package/dist/server/services/schema-builder/content-type-builder.mjs +2 -2
  418. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  419. package/dist/server/services/schema-builder/index.js.map +1 -1
  420. package/dist/server/services/schema-builder/index.mjs +3 -3
  421. package/dist/server/services/schema-builder/index.mjs.map +1 -1
  422. package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
  423. package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
  424. package/dist/server/services/schema.js.map +1 -1
  425. package/dist/server/services/schema.mjs +1 -1
  426. package/dist/server/services/schema.mjs.map +1 -1
  427. package/dist/server/utils/attributes.js.map +1 -1
  428. package/dist/server/utils/attributes.mjs.map +1 -1
  429. package/dist/server/utils/index.js.map +1 -1
  430. package/dist/server/utils/index.mjs.map +1 -1
  431. package/dist/server/utils/typeguards.js.map +1 -1
  432. package/dist/server/utils/typeguards.mjs.map +1 -1
  433. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"DataManagerProvider.js","sources":["../../../../admin/src/components/DataManager/DataManagerProvider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n adminApi,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport mapValues from 'lodash/mapValues';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { useCTBTracking } from '../CTBSession/ctbSession';\nimport { useCTBSession } from '../CTBSession/useCTBSession';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\n\nimport { DataManagerContext, type DataManagerContextValue } from './DataManagerContext';\nimport { actions, initialState, type State } from './reducer';\nimport { useServerRestartWatcher } from './useServerRestartWatcher';\nimport { sortContentType, stateToRequestData } from './utils/cleanData';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\n\nimport type { ContentTypes, ContentType, Components } from '../../types';\nimport type { FormAPI } from '../../utils/formAPI';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: React.ReactNode;\n}\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_dataManagerProvider'] || initialState) as State;\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n const state = useSelector(selectState);\n const dispatchGuidedTour = useGuidedTour('DataManagerProvider', (s) => s.dispatch);\n const location = useLocation();\n const { sessionId: ctbSessionId, regenerateSessionId } = useCTBSession();\n\n const {\n components,\n contentTypes,\n reservedNames,\n initialComponents,\n initialContentTypes,\n isLoading,\n } = state.current;\n\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const serverRestartWatcher = useServerRestartWatcher();\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n const plugin = getPlugin('content-type-builder');\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { onCloseModal } = useFormModalNavigation();\n\n const [isSaving, setIsSaving] = React.useState(false);\n const previousLocationRef = React.useRef<string | null>(null);\n\n const isModified = React.useMemo(() => {\n return !(isEqual(components, initialComponents) && isEqual(contentTypes, initialContentTypes));\n }, [components, contentTypes, initialComponents, initialContentTypes]);\n\n const fetchClient = useFetchClient();\n\n const isInDevelopmentMode = autoReload;\n\n const getDataRef = React.useRef<any>();\n\n getDataRef.current = async () => {\n try {\n const [schemaResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/schema`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const { components, contentTypes } = schemaResponse.data.data;\n\n dispatch(\n actions.init({\n components: mapValues(components, (component) => ({\n ...component,\n status: 'UNCHANGED',\n })) as Components,\n contentTypes: mapValues(contentTypes, (contentType) => ({\n ...contentType,\n status: 'UNCHANGED',\n })) as ContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n\n dispatch(actions.clearHistory());\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n React.useEffect(() => {\n getDataRef.current();\n previousLocationRef.current = location.pathname;\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Detect navigation away and back to CTB to regenerate session\n React.useEffect(() => {\n const currentPath = location.pathname;\n const previousPath = previousLocationRef.current;\n const CTB_PATH = '/plugins/content-type-builder';\n\n if (previousPath) {\n const isCTBPath = currentPath.includes(CTB_PATH);\n const wasCTBPath = previousPath.includes(CTB_PATH);\n\n // Regenerate session when returning to CTB after navigating away\n if (!wasCTBPath && isCTBPath) {\n regenerateSessionId();\n }\n }\n\n previousLocationRef.current = currentPath;\n }, [location.pathname, regenerateSessionId]);\n\n React.useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = (components: Components) => {\n const composWithCompos = retrieveComponentsThatHaveComponents(components);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = (components: Components) => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const saveSchema = async () => {\n setIsSaving(true);\n\n const PluginForms = plugin?.apis?.forms as FormAPI;\n\n const mutatedCTs = Object.entries(state.current.contentTypes).reduce(\n (acc, [uid, contentType]) => {\n acc[uid] = PluginForms.mutateContentTypeSchema(\n contentType,\n initialContentTypes[uid]\n ) as ContentType;\n\n return acc;\n },\n {} as ContentTypes\n );\n\n const { requestData, trackingEventProperties } = stateToRequestData({\n components: state.current.components,\n contentTypes: mutatedCTs,\n });\n\n // Track that the save button was clicked (includes session ID via useCTBTracking)\n trackUsage('willUpdateCTBSchema', {\n ...trackingEventProperties,\n ctbSessionId,\n });\n\n const isSendingContentTypes = Object.keys(state.current.contentTypes).length > 0;\n\n lockAppWithAutoreload();\n\n try {\n await fetchClient.post(`/content-type-builder/update-schema`, { data: requestData });\n\n if (isSendingContentTypes) {\n // Note: didCreateGuidedTourCollectionType doesn't accept properties\n trackUsage('didCreateGuidedTourCollectionType');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher();\n // Generate new session ID after server restart\n regenerateSessionId();\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n // Update the app's permissions\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: false,\n ctbSessionId,\n });\n } finally {\n setIsSaving(false);\n unlockAppWithAutoreload();\n\n dispatch(adminApi.util.invalidateTags(['GuidedTourMeta', 'HomepageKeyStatistics']));\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: true,\n ctbSessionId,\n });\n }\n };\n\n const componentsThatHaveOtherComponentInTheirAttributes = React.useMemo(() => {\n return getAllComponentsThatHaveAComponentInTheirAttributes(components);\n }, [components]);\n\n const nestedComponents = React.useMemo(() => {\n return getAllNestedComponents(components);\n }, [components]);\n\n const allComponentsCategories = React.useMemo(() => {\n return retrieveSpecificInfoFromComponents(components, ['category']);\n }, [components]);\n\n const componentsGroupedByCategory = React.useMemo(() => {\n return groupBy(components, 'category');\n }, [components]);\n\n const sortedContentTypesList = React.useMemo(() => {\n return sortContentType(contentTypes);\n }, [contentTypes]);\n\n const context: DataManagerContextValue = {\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n saveSchema,\n reservedNames,\n components,\n contentTypes,\n initialComponents,\n initialContentTypes,\n isSaving,\n isModified,\n isInDevelopmentMode,\n allComponentsCategories,\n componentsGroupedByCategory,\n sortedContentTypesList,\n isLoading,\n addAttribute(payload) {\n dispatch(actions.addAttribute(payload));\n },\n editAttribute(payload) {\n dispatch(actions.editAttribute(payload));\n },\n addCustomFieldAttribute(payload) {\n dispatch(actions.addCustomFieldAttribute(payload));\n },\n editCustomFieldAttribute(payload) {\n dispatch(actions.editCustomFieldAttribute(payload));\n },\n addCreatedComponentToDynamicZone(payload) {\n dispatch(actions.addCreatedComponentToDynamicZone(payload));\n },\n createSchema(payload) {\n dispatch(actions.createSchema(payload));\n },\n createComponentSchema({ data, uid, componentCategory }) {\n dispatch(actions.createComponentSchema({ data, uid, componentCategory }));\n },\n changeDynamicZoneComponents({ forTarget, targetUid, dynamicZoneTarget, newComponents }) {\n dispatch(\n actions.changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents,\n })\n );\n },\n removeAttribute(payload) {\n if (payload.forTarget === 'contentType') {\n // Note: willDeleteFieldOfContentType doesn't accept properties\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(actions.removeField(payload));\n },\n removeComponentFromDynamicZone(payload) {\n dispatch(actions.removeComponentFromDynamicZone(payload));\n },\n deleteComponent(uid: Internal.UID.Component) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.component.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteComponent(uid));\n }\n },\n deleteContentType(uid: Internal.UID.ContentType) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.contentType.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteContentType(uid));\n }\n },\n\n updateComponentSchema({ data, componentUID }) {\n dispatch(\n actions.updateComponentSchema({\n data,\n uid: componentUID,\n })\n );\n },\n\n updateComponentUid({ componentUID, newComponentUID }) {\n dispatch(\n actions.updateComponentUid({\n uid: componentUID,\n newComponentUID,\n })\n );\n },\n\n updateSchema(args) {\n dispatch(actions.updateSchema(args));\n },\n\n moveAttribute(args) {\n dispatch(actions.moveAttribute(args));\n },\n\n applyChange(args) {\n dispatch(actions.applyChange(args));\n },\n\n history: {\n undo() {\n dispatch(actions.undo());\n },\n\n redo() {\n dispatch(actions.redo());\n },\n\n discardAllChanges() {\n dispatch(actions.discardAll());\n },\n\n canUndo: state.past.length > 0,\n canRedo: state.future.length > 0,\n canDiscardAll: isModified,\n },\n };\n\n return <DataManagerContext.Provider value={context}>{children}</DataManagerContext.Provider>;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default DataManagerProvider;\n"],"names":["selectState","state","initialState","DataManagerProvider","children","dispatch","useDispatch","useSelector","dispatchGuidedTour","useGuidedTour","s","location","useLocation","sessionId","ctbSessionId","regenerateSessionId","useCTBSession","components","contentTypes","reservedNames","initialComponents","initialContentTypes","isLoading","current","toggleNotification","useNotification","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","serverRestartWatcher","useServerRestartWatcher","getPlugin","useStrapiApp","plugin","autoReload","useAppInfo","formatMessage","useIntl","trackUsage","useCTBTracking","refetchPermissions","useAuth","onCloseModal","useFormModalNavigation","isSaving","setIsSaving","React","useState","previousLocationRef","useRef","isModified","useMemo","isEqual","fetchClient","useFetchClient","isInDevelopmentMode","getDataRef","schemaResponse","reservedNamesResponse","Promise","all","get","data","actions","init","mapValues","component","status","contentType","clearHistory","err","console","error","type","message","id","defaultMessage","useEffect","pathname","reloadPlugin","currentPath","previousPath","CTB_PATH","isCTBPath","includes","wasCTBPath","getTrad","getAllComponentsThatHaveAComponentInTheirAttributes","composWithCompos","retrieveComponentsThatHaveComponents","getAllNestedComponents","appNestedCompo","retrieveNestedComponents","updatePermissions","saveSchema","PluginForms","apis","forms","mutatedCTs","Object","entries","reduce","acc","uid","mutateContentTypeSchema","requestData","trackingEventProperties","stateToRequestData","isSendingContentTypes","keys","length","post","success","adminApi","util","invalidateTags","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","allComponentsCategories","retrieveSpecificInfoFromComponents","componentsGroupedByCategory","groupBy","sortedContentTypesList","sortContentType","context","addAttribute","editAttribute","addCustomFieldAttribute","editCustomFieldAttribute","addCreatedComponentToDynamicZone","createComponentSchema","componentCategory","changeDynamicZoneComponents","forTarget","targetUid","dynamicZoneTarget","newComponents","removeAttribute","removeField","removeComponentFromDynamicZone","deleteComponent","userConfirm","window","confirm","deleteContentType","updateComponentSchema","componentUID","updateComponentUid","newComponentUID","updateSchema","args","moveAttribute","applyChange","history","undo","redo","discardAllChanges","discardAll","canUndo","past","canRedo","future","canDiscardAll","_jsx","DataManagerContext","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"DataManagerProvider.js","sources":["../../../../admin/src/components/DataManager/DataManagerProvider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n adminApi,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport mapValues from 'lodash/mapValues';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { useCTBTracking } from '../CTBSession/ctbSession';\nimport { useCTBSession } from '../CTBSession/useCTBSession';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\n\nimport { DataManagerContext, type DataManagerContextValue } from './DataManagerContext';\nimport { actions, initialState, type State } from './reducer';\nimport { useServerRestartWatcher } from './useServerRestartWatcher';\nimport { sortContentType, stateToRequestData } from './utils/cleanData';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\n\nimport type { ContentTypes, ContentType, Components } from '../../types';\nimport type { FormAPI } from '../../utils/formAPI';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: React.ReactNode;\n}\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_dataManagerProvider'] || initialState) as State;\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n const state = useSelector(selectState);\n const dispatchGuidedTour = useGuidedTour('DataManagerProvider', (s) => s.dispatch);\n const location = useLocation();\n const { sessionId: ctbSessionId, regenerateSessionId } = useCTBSession();\n\n const {\n components,\n contentTypes,\n reservedNames,\n initialComponents,\n initialContentTypes,\n isLoading,\n } = state.current;\n\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const serverRestartWatcher = useServerRestartWatcher();\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n const plugin = getPlugin('content-type-builder');\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { onCloseModal } = useFormModalNavigation();\n\n const [isSaving, setIsSaving] = React.useState(false);\n const previousLocationRef = React.useRef<string | null>(null);\n\n const isModified = React.useMemo(() => {\n return !(isEqual(components, initialComponents) && isEqual(contentTypes, initialContentTypes));\n }, [components, contentTypes, initialComponents, initialContentTypes]);\n\n const fetchClient = useFetchClient();\n\n const isInDevelopmentMode = autoReload;\n\n const getDataRef = React.useRef<any>();\n\n getDataRef.current = async () => {\n try {\n const [schemaResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/schema`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const { components, contentTypes } = schemaResponse.data.data;\n\n dispatch(\n actions.init({\n components: mapValues(components, (component) => ({\n ...component,\n status: 'UNCHANGED',\n })) as Components,\n contentTypes: mapValues(contentTypes, (contentType) => ({\n ...contentType,\n status: 'UNCHANGED',\n })) as ContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n\n dispatch(actions.clearHistory());\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n React.useEffect(() => {\n getDataRef.current();\n previousLocationRef.current = location.pathname;\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Detect navigation away and back to CTB to regenerate session\n React.useEffect(() => {\n const currentPath = location.pathname;\n const previousPath = previousLocationRef.current;\n const CTB_PATH = '/plugins/content-type-builder';\n\n if (previousPath) {\n const isCTBPath = currentPath.includes(CTB_PATH);\n const wasCTBPath = previousPath.includes(CTB_PATH);\n\n // Regenerate session when returning to CTB after navigating away\n if (!wasCTBPath && isCTBPath) {\n regenerateSessionId();\n }\n }\n\n previousLocationRef.current = currentPath;\n }, [location.pathname, regenerateSessionId]);\n\n React.useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = (components: Components) => {\n const composWithCompos = retrieveComponentsThatHaveComponents(components);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = (components: Components) => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const saveSchema = async () => {\n setIsSaving(true);\n\n const PluginForms = plugin?.apis?.forms as FormAPI;\n\n const mutatedCTs = Object.entries(state.current.contentTypes).reduce(\n (acc, [uid, contentType]) => {\n acc[uid] = PluginForms.mutateContentTypeSchema(\n contentType,\n initialContentTypes[uid]\n ) as ContentType;\n\n return acc;\n },\n {} as ContentTypes\n );\n\n const { requestData, trackingEventProperties } = stateToRequestData({\n components: state.current.components,\n contentTypes: mutatedCTs,\n });\n\n // Track that the save button was clicked (includes session ID via useCTBTracking)\n trackUsage('willUpdateCTBSchema', {\n ...trackingEventProperties,\n ctbSessionId,\n });\n\n const isSendingContentTypes = Object.keys(state.current.contentTypes).length > 0;\n\n lockAppWithAutoreload();\n\n try {\n await fetchClient.post(`/content-type-builder/update-schema`, { data: requestData });\n\n if (isSendingContentTypes) {\n // Note: didCreateGuidedTourCollectionType doesn't accept properties\n trackUsage('didCreateGuidedTourCollectionType');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher();\n // Generate new session ID after server restart\n regenerateSessionId();\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n // Update the app's permissions\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: false,\n ctbSessionId,\n });\n } finally {\n setIsSaving(false);\n unlockAppWithAutoreload();\n\n dispatch(adminApi.util.invalidateTags(['GuidedTourMeta', 'HomepageKeyStatistics']));\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: true,\n ctbSessionId,\n });\n }\n };\n\n const componentsThatHaveOtherComponentInTheirAttributes = React.useMemo(() => {\n return getAllComponentsThatHaveAComponentInTheirAttributes(components);\n }, [components]);\n\n const nestedComponents = React.useMemo(() => {\n return getAllNestedComponents(components);\n }, [components]);\n\n const allComponentsCategories = React.useMemo(() => {\n return retrieveSpecificInfoFromComponents(components, ['category']);\n }, [components]);\n\n const componentsGroupedByCategory = React.useMemo(() => {\n return groupBy(components, 'category');\n }, [components]);\n\n const sortedContentTypesList = React.useMemo(() => {\n return sortContentType(contentTypes);\n }, [contentTypes]);\n\n const context: DataManagerContextValue = {\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n saveSchema,\n reservedNames,\n components,\n contentTypes,\n initialComponents,\n initialContentTypes,\n isSaving,\n isModified,\n isInDevelopmentMode,\n allComponentsCategories,\n componentsGroupedByCategory,\n sortedContentTypesList,\n isLoading,\n addAttribute(payload) {\n dispatch(actions.addAttribute(payload));\n },\n editAttribute(payload) {\n dispatch(actions.editAttribute(payload));\n },\n addCustomFieldAttribute(payload) {\n dispatch(actions.addCustomFieldAttribute(payload));\n },\n editCustomFieldAttribute(payload) {\n dispatch(actions.editCustomFieldAttribute(payload));\n },\n addCreatedComponentToDynamicZone(payload) {\n dispatch(actions.addCreatedComponentToDynamicZone(payload));\n },\n createSchema(payload) {\n dispatch(actions.createSchema(payload));\n },\n createComponentSchema({ data, uid, componentCategory }) {\n dispatch(actions.createComponentSchema({ data, uid, componentCategory }));\n },\n changeDynamicZoneComponents({ forTarget, targetUid, dynamicZoneTarget, newComponents }) {\n dispatch(\n actions.changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents,\n })\n );\n },\n removeAttribute(payload) {\n if (payload.forTarget === 'contentType') {\n // Note: willDeleteFieldOfContentType doesn't accept properties\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(actions.removeField(payload));\n },\n removeComponentFromDynamicZone(payload) {\n dispatch(actions.removeComponentFromDynamicZone(payload));\n },\n deleteComponent(uid: Internal.UID.Component) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.component.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteComponent(uid));\n }\n },\n deleteContentType(uid: Internal.UID.ContentType) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.contentType.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteContentType(uid));\n }\n },\n\n updateComponentSchema({ data, componentUID }) {\n dispatch(\n actions.updateComponentSchema({\n data,\n uid: componentUID,\n })\n );\n },\n\n updateComponentUid({ componentUID, newComponentUID }) {\n dispatch(\n actions.updateComponentUid({\n uid: componentUID,\n newComponentUID,\n })\n );\n },\n\n updateSchema(args) {\n dispatch(actions.updateSchema(args));\n },\n\n moveAttribute(args) {\n dispatch(actions.moveAttribute(args));\n },\n\n applyChange(args) {\n dispatch(actions.applyChange(args));\n },\n\n history: {\n undo() {\n dispatch(actions.undo());\n },\n\n redo() {\n dispatch(actions.redo());\n },\n\n discardAllChanges() {\n dispatch(actions.discardAll());\n },\n\n canUndo: state.past.length > 0,\n canRedo: state.future.length > 0,\n canDiscardAll: isModified,\n },\n };\n\n return <DataManagerContext.Provider value={context}>{children}</DataManagerContext.Provider>;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default DataManagerProvider;\n"],"names":["selectState","state","initialState","DataManagerProvider","children","dispatch","useDispatch","useSelector","dispatchGuidedTour","useGuidedTour","s","location","useLocation","sessionId","ctbSessionId","regenerateSessionId","useCTBSession","components","contentTypes","reservedNames","initialComponents","initialContentTypes","isLoading","current","toggleNotification","useNotification","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","serverRestartWatcher","useServerRestartWatcher","getPlugin","useStrapiApp","plugin","autoReload","useAppInfo","formatMessage","useIntl","trackUsage","useCTBTracking","refetchPermissions","useAuth","onCloseModal","useFormModalNavigation","isSaving","setIsSaving","React","useState","previousLocationRef","useRef","isModified","useMemo","isEqual","fetchClient","useFetchClient","isInDevelopmentMode","getDataRef","schemaResponse","reservedNamesResponse","Promise","all","get","data","actions","init","mapValues","component","status","contentType","clearHistory","err","console","error","type","message","id","defaultMessage","useEffect","pathname","reloadPlugin","currentPath","previousPath","CTB_PATH","isCTBPath","includes","wasCTBPath","getTrad","getAllComponentsThatHaveAComponentInTheirAttributes","composWithCompos","retrieveComponentsThatHaveComponents","getAllNestedComponents","appNestedCompo","retrieveNestedComponents","updatePermissions","saveSchema","PluginForms","apis","forms","mutatedCTs","Object","entries","reduce","acc","uid","mutateContentTypeSchema","requestData","trackingEventProperties","stateToRequestData","isSendingContentTypes","keys","length","post","success","adminApi","util","invalidateTags","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","allComponentsCategories","retrieveSpecificInfoFromComponents","componentsGroupedByCategory","groupBy","sortedContentTypesList","sortContentType","context","addAttribute","editAttribute","addCustomFieldAttribute","editCustomFieldAttribute","addCreatedComponentToDynamicZone","createComponentSchema","componentCategory","changeDynamicZoneComponents","forTarget","targetUid","dynamicZoneTarget","newComponents","removeAttribute","removeField","removeComponentFromDynamicZone","deleteComponent","userConfirm","window","confirm","deleteContentType","updateComponentSchema","componentUID","updateComponentUid","newComponentUID","updateSchema","args","moveAttribute","applyChange","history","undo","redo","discardAllChanges","discardAll","canUndo","past","canRedo","future","canDiscardAll","_jsx","DataManagerContext","Provider","value"],"mappings":"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"}
@@ -14,7 +14,7 @@ import { useCTBSession } from '../CTBSession/useCTBSession.mjs';
14
14
  import { useCTBTracking } from '../CTBSession/useCTBTracking.mjs';
15
15
  import { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation.mjs';
16
16
  import { DataManagerContext } from './DataManagerContext.mjs';
17
- import { actions, initialState } from './reducer.mjs';
17
+ import { initialState, actions } from './reducer.mjs';
18
18
  import { useServerRestartWatcher } from './useServerRestartWatcher.mjs';
19
19
  import { sortContentType, stateToRequestData } from './utils/cleanData.mjs';
20
20
  import { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"DataManagerProvider.mjs","sources":["../../../../admin/src/components/DataManager/DataManagerProvider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n adminApi,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport mapValues from 'lodash/mapValues';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { useCTBTracking } from '../CTBSession/ctbSession';\nimport { useCTBSession } from '../CTBSession/useCTBSession';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\n\nimport { DataManagerContext, type DataManagerContextValue } from './DataManagerContext';\nimport { actions, initialState, type State } from './reducer';\nimport { useServerRestartWatcher } from './useServerRestartWatcher';\nimport { sortContentType, stateToRequestData } from './utils/cleanData';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\n\nimport type { ContentTypes, ContentType, Components } from '../../types';\nimport type { FormAPI } from '../../utils/formAPI';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: React.ReactNode;\n}\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_dataManagerProvider'] || initialState) as State;\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n const state = useSelector(selectState);\n const dispatchGuidedTour = useGuidedTour('DataManagerProvider', (s) => s.dispatch);\n const location = useLocation();\n const { sessionId: ctbSessionId, regenerateSessionId } = useCTBSession();\n\n const {\n components,\n contentTypes,\n reservedNames,\n initialComponents,\n initialContentTypes,\n isLoading,\n } = state.current;\n\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const serverRestartWatcher = useServerRestartWatcher();\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n const plugin = getPlugin('content-type-builder');\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { onCloseModal } = useFormModalNavigation();\n\n const [isSaving, setIsSaving] = React.useState(false);\n const previousLocationRef = React.useRef<string | null>(null);\n\n const isModified = React.useMemo(() => {\n return !(isEqual(components, initialComponents) && isEqual(contentTypes, initialContentTypes));\n }, [components, contentTypes, initialComponents, initialContentTypes]);\n\n const fetchClient = useFetchClient();\n\n const isInDevelopmentMode = autoReload;\n\n const getDataRef = React.useRef<any>();\n\n getDataRef.current = async () => {\n try {\n const [schemaResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/schema`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const { components, contentTypes } = schemaResponse.data.data;\n\n dispatch(\n actions.init({\n components: mapValues(components, (component) => ({\n ...component,\n status: 'UNCHANGED',\n })) as Components,\n contentTypes: mapValues(contentTypes, (contentType) => ({\n ...contentType,\n status: 'UNCHANGED',\n })) as ContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n\n dispatch(actions.clearHistory());\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n React.useEffect(() => {\n getDataRef.current();\n previousLocationRef.current = location.pathname;\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Detect navigation away and back to CTB to regenerate session\n React.useEffect(() => {\n const currentPath = location.pathname;\n const previousPath = previousLocationRef.current;\n const CTB_PATH = '/plugins/content-type-builder';\n\n if (previousPath) {\n const isCTBPath = currentPath.includes(CTB_PATH);\n const wasCTBPath = previousPath.includes(CTB_PATH);\n\n // Regenerate session when returning to CTB after navigating away\n if (!wasCTBPath && isCTBPath) {\n regenerateSessionId();\n }\n }\n\n previousLocationRef.current = currentPath;\n }, [location.pathname, regenerateSessionId]);\n\n React.useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = (components: Components) => {\n const composWithCompos = retrieveComponentsThatHaveComponents(components);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = (components: Components) => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const saveSchema = async () => {\n setIsSaving(true);\n\n const PluginForms = plugin?.apis?.forms as FormAPI;\n\n const mutatedCTs = Object.entries(state.current.contentTypes).reduce(\n (acc, [uid, contentType]) => {\n acc[uid] = PluginForms.mutateContentTypeSchema(\n contentType,\n initialContentTypes[uid]\n ) as ContentType;\n\n return acc;\n },\n {} as ContentTypes\n );\n\n const { requestData, trackingEventProperties } = stateToRequestData({\n components: state.current.components,\n contentTypes: mutatedCTs,\n });\n\n // Track that the save button was clicked (includes session ID via useCTBTracking)\n trackUsage('willUpdateCTBSchema', {\n ...trackingEventProperties,\n ctbSessionId,\n });\n\n const isSendingContentTypes = Object.keys(state.current.contentTypes).length > 0;\n\n lockAppWithAutoreload();\n\n try {\n await fetchClient.post(`/content-type-builder/update-schema`, { data: requestData });\n\n if (isSendingContentTypes) {\n // Note: didCreateGuidedTourCollectionType doesn't accept properties\n trackUsage('didCreateGuidedTourCollectionType');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher();\n // Generate new session ID after server restart\n regenerateSessionId();\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n // Update the app's permissions\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: false,\n ctbSessionId,\n });\n } finally {\n setIsSaving(false);\n unlockAppWithAutoreload();\n\n dispatch(adminApi.util.invalidateTags(['GuidedTourMeta', 'HomepageKeyStatistics']));\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: true,\n ctbSessionId,\n });\n }\n };\n\n const componentsThatHaveOtherComponentInTheirAttributes = React.useMemo(() => {\n return getAllComponentsThatHaveAComponentInTheirAttributes(components);\n }, [components]);\n\n const nestedComponents = React.useMemo(() => {\n return getAllNestedComponents(components);\n }, [components]);\n\n const allComponentsCategories = React.useMemo(() => {\n return retrieveSpecificInfoFromComponents(components, ['category']);\n }, [components]);\n\n const componentsGroupedByCategory = React.useMemo(() => {\n return groupBy(components, 'category');\n }, [components]);\n\n const sortedContentTypesList = React.useMemo(() => {\n return sortContentType(contentTypes);\n }, [contentTypes]);\n\n const context: DataManagerContextValue = {\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n saveSchema,\n reservedNames,\n components,\n contentTypes,\n initialComponents,\n initialContentTypes,\n isSaving,\n isModified,\n isInDevelopmentMode,\n allComponentsCategories,\n componentsGroupedByCategory,\n sortedContentTypesList,\n isLoading,\n addAttribute(payload) {\n dispatch(actions.addAttribute(payload));\n },\n editAttribute(payload) {\n dispatch(actions.editAttribute(payload));\n },\n addCustomFieldAttribute(payload) {\n dispatch(actions.addCustomFieldAttribute(payload));\n },\n editCustomFieldAttribute(payload) {\n dispatch(actions.editCustomFieldAttribute(payload));\n },\n addCreatedComponentToDynamicZone(payload) {\n dispatch(actions.addCreatedComponentToDynamicZone(payload));\n },\n createSchema(payload) {\n dispatch(actions.createSchema(payload));\n },\n createComponentSchema({ data, uid, componentCategory }) {\n dispatch(actions.createComponentSchema({ data, uid, componentCategory }));\n },\n changeDynamicZoneComponents({ forTarget, targetUid, dynamicZoneTarget, newComponents }) {\n dispatch(\n actions.changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents,\n })\n );\n },\n removeAttribute(payload) {\n if (payload.forTarget === 'contentType') {\n // Note: willDeleteFieldOfContentType doesn't accept properties\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(actions.removeField(payload));\n },\n removeComponentFromDynamicZone(payload) {\n dispatch(actions.removeComponentFromDynamicZone(payload));\n },\n deleteComponent(uid: Internal.UID.Component) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.component.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteComponent(uid));\n }\n },\n deleteContentType(uid: Internal.UID.ContentType) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.contentType.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteContentType(uid));\n }\n },\n\n updateComponentSchema({ data, componentUID }) {\n dispatch(\n actions.updateComponentSchema({\n data,\n uid: componentUID,\n })\n );\n },\n\n updateComponentUid({ componentUID, newComponentUID }) {\n dispatch(\n actions.updateComponentUid({\n uid: componentUID,\n newComponentUID,\n })\n );\n },\n\n updateSchema(args) {\n dispatch(actions.updateSchema(args));\n },\n\n moveAttribute(args) {\n dispatch(actions.moveAttribute(args));\n },\n\n applyChange(args) {\n dispatch(actions.applyChange(args));\n },\n\n history: {\n undo() {\n dispatch(actions.undo());\n },\n\n redo() {\n dispatch(actions.redo());\n },\n\n discardAllChanges() {\n dispatch(actions.discardAll());\n },\n\n canUndo: state.past.length > 0,\n canRedo: state.future.length > 0,\n canDiscardAll: isModified,\n },\n };\n\n return <DataManagerContext.Provider value={context}>{children}</DataManagerContext.Provider>;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default DataManagerProvider;\n"],"names":["selectState","state","initialState","DataManagerProvider","children","dispatch","useDispatch","useSelector","dispatchGuidedTour","useGuidedTour","s","location","useLocation","sessionId","ctbSessionId","regenerateSessionId","useCTBSession","components","contentTypes","reservedNames","initialComponents","initialContentTypes","isLoading","current","toggleNotification","useNotification","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","serverRestartWatcher","useServerRestartWatcher","getPlugin","useStrapiApp","plugin","autoReload","useAppInfo","formatMessage","useIntl","trackUsage","useCTBTracking","refetchPermissions","useAuth","onCloseModal","useFormModalNavigation","isSaving","setIsSaving","React","useState","previousLocationRef","useRef","isModified","useMemo","isEqual","fetchClient","useFetchClient","isInDevelopmentMode","getDataRef","schemaResponse","reservedNamesResponse","Promise","all","get","data","actions","init","mapValues","component","status","contentType","clearHistory","err","console","error","type","message","id","defaultMessage","useEffect","pathname","reloadPlugin","currentPath","previousPath","CTB_PATH","isCTBPath","includes","wasCTBPath","getTrad","getAllComponentsThatHaveAComponentInTheirAttributes","composWithCompos","retrieveComponentsThatHaveComponents","getAllNestedComponents","appNestedCompo","retrieveNestedComponents","updatePermissions","saveSchema","PluginForms","apis","forms","mutatedCTs","Object","entries","reduce","acc","uid","mutateContentTypeSchema","requestData","trackingEventProperties","stateToRequestData","isSendingContentTypes","keys","length","post","success","adminApi","util","invalidateTags","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","allComponentsCategories","retrieveSpecificInfoFromComponents","componentsGroupedByCategory","groupBy","sortedContentTypesList","sortContentType","context","addAttribute","editAttribute","addCustomFieldAttribute","editCustomFieldAttribute","addCreatedComponentToDynamicZone","createComponentSchema","componentCategory","changeDynamicZoneComponents","forTarget","targetUid","dynamicZoneTarget","newComponents","removeAttribute","removeField","removeComponentFromDynamicZone","deleteComponent","userConfirm","window","confirm","deleteContentType","updateComponentSchema","componentUID","updateComponentUid","newComponentUID","updateSchema","args","moveAttribute","applyChange","history","undo","redo","discardAllChanges","discardAll","canUndo","past","canRedo","future","canDiscardAll","_jsx","DataManagerContext","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"DataManagerProvider.mjs","sources":["../../../../admin/src/components/DataManager/DataManagerProvider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n adminApi,\n useGuidedTour,\n GUIDED_TOUR_REQUIRED_ACTIONS,\n} from '@strapi/admin/strapi-admin';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport mapValues from 'lodash/mapValues';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { useCTBTracking } from '../CTBSession/ctbSession';\nimport { useCTBSession } from '../CTBSession/useCTBSession';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\n\nimport { DataManagerContext, type DataManagerContextValue } from './DataManagerContext';\nimport { actions, initialState, type State } from './reducer';\nimport { useServerRestartWatcher } from './useServerRestartWatcher';\nimport { sortContentType, stateToRequestData } from './utils/cleanData';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\n\nimport type { ContentTypes, ContentType, Components } from '../../types';\nimport type { FormAPI } from '../../utils/formAPI';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: React.ReactNode;\n}\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_dataManagerProvider'] || initialState) as State;\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n const state = useSelector(selectState);\n const dispatchGuidedTour = useGuidedTour('DataManagerProvider', (s) => s.dispatch);\n const location = useLocation();\n const { sessionId: ctbSessionId, regenerateSessionId } = useCTBSession();\n\n const {\n components,\n contentTypes,\n reservedNames,\n initialComponents,\n initialContentTypes,\n isLoading,\n } = state.current;\n\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const serverRestartWatcher = useServerRestartWatcher();\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n const plugin = getPlugin('content-type-builder');\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useCTBTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { onCloseModal } = useFormModalNavigation();\n\n const [isSaving, setIsSaving] = React.useState(false);\n const previousLocationRef = React.useRef<string | null>(null);\n\n const isModified = React.useMemo(() => {\n return !(isEqual(components, initialComponents) && isEqual(contentTypes, initialContentTypes));\n }, [components, contentTypes, initialComponents, initialContentTypes]);\n\n const fetchClient = useFetchClient();\n\n const isInDevelopmentMode = autoReload;\n\n const getDataRef = React.useRef<any>();\n\n getDataRef.current = async () => {\n try {\n const [schemaResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/schema`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const { components, contentTypes } = schemaResponse.data.data;\n\n dispatch(\n actions.init({\n components: mapValues(components, (component) => ({\n ...component,\n status: 'UNCHANGED',\n })) as Components,\n contentTypes: mapValues(contentTypes, (contentType) => ({\n ...contentType,\n status: 'UNCHANGED',\n })) as ContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n\n dispatch(actions.clearHistory());\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n React.useEffect(() => {\n getDataRef.current();\n previousLocationRef.current = location.pathname;\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Detect navigation away and back to CTB to regenerate session\n React.useEffect(() => {\n const currentPath = location.pathname;\n const previousPath = previousLocationRef.current;\n const CTB_PATH = '/plugins/content-type-builder';\n\n if (previousPath) {\n const isCTBPath = currentPath.includes(CTB_PATH);\n const wasCTBPath = previousPath.includes(CTB_PATH);\n\n // Regenerate session when returning to CTB after navigating away\n if (!wasCTBPath && isCTBPath) {\n regenerateSessionId();\n }\n }\n\n previousLocationRef.current = currentPath;\n }, [location.pathname, regenerateSessionId]);\n\n React.useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = (components: Components) => {\n const composWithCompos = retrieveComponentsThatHaveComponents(components);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = (components: Components) => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const saveSchema = async () => {\n setIsSaving(true);\n\n const PluginForms = plugin?.apis?.forms as FormAPI;\n\n const mutatedCTs = Object.entries(state.current.contentTypes).reduce(\n (acc, [uid, contentType]) => {\n acc[uid] = PluginForms.mutateContentTypeSchema(\n contentType,\n initialContentTypes[uid]\n ) as ContentType;\n\n return acc;\n },\n {} as ContentTypes\n );\n\n const { requestData, trackingEventProperties } = stateToRequestData({\n components: state.current.components,\n contentTypes: mutatedCTs,\n });\n\n // Track that the save button was clicked (includes session ID via useCTBTracking)\n trackUsage('willUpdateCTBSchema', {\n ...trackingEventProperties,\n ctbSessionId,\n });\n\n const isSendingContentTypes = Object.keys(state.current.contentTypes).length > 0;\n\n lockAppWithAutoreload();\n\n try {\n await fetchClient.post(`/content-type-builder/update-schema`, { data: requestData });\n\n if (isSendingContentTypes) {\n // Note: didCreateGuidedTourCollectionType doesn't accept properties\n trackUsage('didCreateGuidedTourCollectionType');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher();\n // Generate new session ID after server restart\n regenerateSessionId();\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n // Update the app's permissions\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: false,\n ctbSessionId,\n });\n } finally {\n setIsSaving(false);\n unlockAppWithAutoreload();\n\n dispatch(adminApi.util.invalidateTags(['GuidedTourMeta', 'HomepageKeyStatistics']));\n dispatchGuidedTour({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n\n trackUsage('didUpdateCTBSchema', {\n ...trackingEventProperties,\n success: true,\n ctbSessionId,\n });\n }\n };\n\n const componentsThatHaveOtherComponentInTheirAttributes = React.useMemo(() => {\n return getAllComponentsThatHaveAComponentInTheirAttributes(components);\n }, [components]);\n\n const nestedComponents = React.useMemo(() => {\n return getAllNestedComponents(components);\n }, [components]);\n\n const allComponentsCategories = React.useMemo(() => {\n return retrieveSpecificInfoFromComponents(components, ['category']);\n }, [components]);\n\n const componentsGroupedByCategory = React.useMemo(() => {\n return groupBy(components, 'category');\n }, [components]);\n\n const sortedContentTypesList = React.useMemo(() => {\n return sortContentType(contentTypes);\n }, [contentTypes]);\n\n const context: DataManagerContextValue = {\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n saveSchema,\n reservedNames,\n components,\n contentTypes,\n initialComponents,\n initialContentTypes,\n isSaving,\n isModified,\n isInDevelopmentMode,\n allComponentsCategories,\n componentsGroupedByCategory,\n sortedContentTypesList,\n isLoading,\n addAttribute(payload) {\n dispatch(actions.addAttribute(payload));\n },\n editAttribute(payload) {\n dispatch(actions.editAttribute(payload));\n },\n addCustomFieldAttribute(payload) {\n dispatch(actions.addCustomFieldAttribute(payload));\n },\n editCustomFieldAttribute(payload) {\n dispatch(actions.editCustomFieldAttribute(payload));\n },\n addCreatedComponentToDynamicZone(payload) {\n dispatch(actions.addCreatedComponentToDynamicZone(payload));\n },\n createSchema(payload) {\n dispatch(actions.createSchema(payload));\n },\n createComponentSchema({ data, uid, componentCategory }) {\n dispatch(actions.createComponentSchema({ data, uid, componentCategory }));\n },\n changeDynamicZoneComponents({ forTarget, targetUid, dynamicZoneTarget, newComponents }) {\n dispatch(\n actions.changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents,\n })\n );\n },\n removeAttribute(payload) {\n if (payload.forTarget === 'contentType') {\n // Note: willDeleteFieldOfContentType doesn't accept properties\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(actions.removeField(payload));\n },\n removeComponentFromDynamicZone(payload) {\n dispatch(actions.removeComponentFromDynamicZone(payload));\n },\n deleteComponent(uid: Internal.UID.Component) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.component.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteComponent(uid));\n }\n },\n deleteContentType(uid: Internal.UID.ContentType) {\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(`popUpWarning.bodyMessage.contentType.delete`),\n })\n );\n\n if (userConfirm) {\n onCloseModal();\n\n dispatch(actions.deleteContentType(uid));\n }\n },\n\n updateComponentSchema({ data, componentUID }) {\n dispatch(\n actions.updateComponentSchema({\n data,\n uid: componentUID,\n })\n );\n },\n\n updateComponentUid({ componentUID, newComponentUID }) {\n dispatch(\n actions.updateComponentUid({\n uid: componentUID,\n newComponentUID,\n })\n );\n },\n\n updateSchema(args) {\n dispatch(actions.updateSchema(args));\n },\n\n moveAttribute(args) {\n dispatch(actions.moveAttribute(args));\n },\n\n applyChange(args) {\n dispatch(actions.applyChange(args));\n },\n\n history: {\n undo() {\n dispatch(actions.undo());\n },\n\n redo() {\n dispatch(actions.redo());\n },\n\n discardAllChanges() {\n dispatch(actions.discardAll());\n },\n\n canUndo: state.past.length > 0,\n canRedo: state.future.length > 0,\n canDiscardAll: isModified,\n },\n };\n\n return <DataManagerContext.Provider value={context}>{children}</DataManagerContext.Provider>;\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default DataManagerProvider;\n"],"names":["selectState","state","initialState","DataManagerProvider","children","dispatch","useDispatch","useSelector","dispatchGuidedTour","useGuidedTour","s","location","useLocation","sessionId","ctbSessionId","regenerateSessionId","useCTBSession","components","contentTypes","reservedNames","initialComponents","initialContentTypes","isLoading","current","toggleNotification","useNotification","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","serverRestartWatcher","useServerRestartWatcher","getPlugin","useStrapiApp","plugin","autoReload","useAppInfo","formatMessage","useIntl","trackUsage","useCTBTracking","refetchPermissions","useAuth","onCloseModal","useFormModalNavigation","isSaving","setIsSaving","React","useState","previousLocationRef","useRef","isModified","useMemo","isEqual","fetchClient","useFetchClient","isInDevelopmentMode","getDataRef","schemaResponse","reservedNamesResponse","Promise","all","get","data","actions","init","mapValues","component","status","contentType","clearHistory","err","console","error","type","message","id","defaultMessage","useEffect","pathname","reloadPlugin","currentPath","previousPath","CTB_PATH","isCTBPath","includes","wasCTBPath","getTrad","getAllComponentsThatHaveAComponentInTheirAttributes","composWithCompos","retrieveComponentsThatHaveComponents","getAllNestedComponents","appNestedCompo","retrieveNestedComponents","updatePermissions","saveSchema","PluginForms","apis","forms","mutatedCTs","Object","entries","reduce","acc","uid","mutateContentTypeSchema","requestData","trackingEventProperties","stateToRequestData","isSendingContentTypes","keys","length","post","success","adminApi","util","invalidateTags","payload","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","allComponentsCategories","retrieveSpecificInfoFromComponents","componentsGroupedByCategory","groupBy","sortedContentTypesList","sortContentType","context","addAttribute","editAttribute","addCustomFieldAttribute","editCustomFieldAttribute","addCreatedComponentToDynamicZone","createComponentSchema","componentCategory","changeDynamicZoneComponents","forTarget","targetUid","dynamicZoneTarget","newComponents","removeAttribute","removeField","removeComponentFromDynamicZone","deleteComponent","userConfirm","window","confirm","deleteContentType","updateComponentSchema","componentUID","updateComponentUid","newComponentUID","updateSchema","args","moveAttribute","applyChange","history","undo","redo","discardAllChanges","discardAll","canUndo","past","canRedo","future","canDiscardAll","_jsx","DataManagerContext","Provider","value"],"mappings":"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"}
@@ -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';\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":";;;;;;;;AAgCA,MAAMA,YAAqC,GAAA;AACzCC,IAAAA,UAAAA,EAAY,EAAC;AACbC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,iBAAAA,EAAmB,EAAC;AACpBC,IAAAA,mBAAAA,EAAqB,EAAC;IACtBC,aAAe,EAAA;AACbC,QAAAA,MAAAA,EAAQ,EAAE;AACVC,QAAAA,UAAAA,EAAY;AACd,KAAA;IACAC,SAAW,EAAA;AACb;AAEA,MAAMC,kBAAqB,GAAA;AAAC,IAAA,QAAA;AAAU,IAAA;AAAU,CAAA;AAEhD,MAAMC,sBAAsB,CAACC,gBAAAA,GAAAA;AAC3B,IAAA,IAAIA,qBAAqB,WAAa,EAAA;QACpC,OAAO,WAAA;AACT;AAEA,IAAA,IAAIA,qBAAqB,WAAa,EAAA;QACpC,OAAO,WAAA;AACT;IAEA,OAAOA,gBAAAA;AACT,CAAA;AAEA,MAAMC,kBAAAA,GAAqB,CAACC,IAAWC,EAAAA,eAAAA,GAAAA;IACrC,OAAOD,IAAAA,CAAKN,UAAU,CAACQ,SAAS,CAAC,CAAC,EAAEC,IAAI,EAAoB,GAAKA,IAASF,KAAAA,eAAAA,CAAAA;AAC5E,CAAA;AAgHA,MAAMG,UAAU,CACdC,KAAAA,EACA,EACEC,SAAS,EACTC,SAAS,EAIV,GAAA;IAED,OAAOD,SAAAA,KAAc,aAAgBD,GAAAA,KAAAA,CAAMhB,YAAY,CAACkB,UAAU,GAAGF,KAAAA,CAAMjB,UAAU,CAACmB,SAAU,CAAA;AAClG,CAAA;AAEA;AACA,MAAMC,SAAAA,GAAY,CAACR,IAA+BS,EAAAA,MAAAA,GAAAA;AAChD,IAAA,OAAQT,KAAKS,MAAM;QACjB,KAAK,KAAA;QACL,KAAK,SAAA;AAAW,YAAA;AACd,gBAAA;AACF;AACA,QAAA;AAAS,YAAA;AACPT,gBAAAA,IAAAA,CAAKS,MAAM,GAAGA,MAAAA;AAChB;AACF;AACF,CAAA;AAEA,MAAMC,YAAAA,GAAe,CAACC,SAA+BC,EAAAA,SAAAA,GAAAA;IACnD,IAAID,SAAAA,KAAc,KAASA,IAAAA,SAAAA,KAAc,SAAW,EAAA;QAClD,OAAOA,SAAAA;AACT;IAEA,OAAOC,SAAAA;AACT,CAAA;AAEA,MAAMC,kBAAAA,GAAqB,CAACC,SAAgCL,EAAAA,MAAAA,GAAAA;AAC1DK,IAAAA,SAAAA,CAAUL,MAAM,GAAGC,YAAaI,CAAAA,SAAAA,CAAUL,MAAM,EAAEA,MAAAA,CAAAA;AACpD,CAAA;AAEA,MAAMM,kBAAkB,CAACC,UAAAA,GAAAA;IACvB,OAAO;AACL,QAAA,GAAGA,UAAU;QACbP,MAAQ,EAAA;AACV,KAAA;AACF,CAAA;AAEA,MAAMQ,cAAAA,GAAiB,CAACjB,IAAAA,EAA+BkB,KAAeJ,EAAAA,SAAAA,GAAAA;AACpE,IAAA,MAAMK,iBAAoBnB,GAAAA,IAAAA,CAAKN,UAAU,CAACwB,KAAM,CAAA;AAEhD,IAAA,MAAMN,SAAYF,GAAAA,YAAAA,CAAaS,iBAAkBV,CAAAA,MAAM,EAAE,SAAA,CAAA;IAEzDT,IAAKN,CAAAA,UAAU,CAACwB,KAAAA,CAAM,GAAG;AACvB,QAAA,GAAGJ,SAAS;QACZL,MAAQG,EAAAA;AACV,KAAA;AAEAJ,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,CAAA;AAEA,MAAMoB,aAAAA,GAAgB,CAACpB,IAA+Bc,EAAAA,SAAAA,GAAAA;IACpDd,IAAKN,CAAAA,UAAU,CAAC2B,IAAI,CAACP,SAAAA,CAAAA;AACrBN,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,CAAA;AAEA,MAAMsB,iBAAAA,GAAoB,CAACtB,IAA+BkB,EAAAA,KAAAA,GAAAA;AACxD,IAAA,MAAMK,IAAOvB,GAAAA,IAAAA,CAAKN,UAAU,CAACwB,KAAM,CAAA;AAEnCV,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;IAEhB,IAAIuB,IAAAA,CAAKd,MAAM,KAAK,KAAO,EAAA;AACzBT,QAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACN,KAAO,EAAA,CAAA,CAAA;KACzB,MAAA;AACLL,QAAAA,kBAAAA,CAAmBU,IAAM,EAAA,SAAA,CAAA;AAC3B;AACF,CAAA;AAEA,MAAME,kBAAAA,GAAqB,CACzBzB,IAAAA,EACAkB,KACAJ,EAAAA,SAAAA,GAAAA;IAEAd,IAAKN,CAAAA,UAAU,CAACwB,KAAAA,CAAM,GAAGJ,SAAAA;AACzBN,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,CAAA;AAEA,MAAM0B,qBAAAA,GAAwB,CAAC1B,IAA+BG,EAAAA,IAAAA,GAAAA;IAC5D,MAAMwB,GAAAA,GAAM3B,IAAKN,CAAAA,UAAU,CAACQ,SAAS,CAAC,CAACqB,IAAAA,GAASA,IAAKpB,CAAAA,IAAI,KAAKA,IAAAA,CAAAA;AAE9D,IAAA,MAAMoB,IAAOvB,GAAAA,IAAAA,CAAKN,UAAU,CAACiC,GAAI,CAAA;AAEjCnB,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;IAEhB,IAAIuB,IAAAA,CAAKd,MAAM,KAAK,KAAO,EAAA;AACzBT,QAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACG,GAAK,EAAA,CAAA,CAAA;KACvB,MAAA;AACLd,QAAAA,kBAAAA,CAAmBU,IAAM,EAAA,SAAA,CAAA;AAC3B;AACF,CAAA;AAEA,MAAMK,UAAAA,GAAa,CAAC5B,IAA+B6B,EAAAA,IAAAA,GAAAA;AACjDC,IAAAA,KAAAA,CAAM9B,IAAM6B,EAAAA,IAAAA,CAAAA;AACZrB,IAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,CAAA;AAEA,MAAM+B,QAAQC,4BACZ,CAAA;IACE7B,IAAM,EAAA,cAAA;AACNhB,IAAAA,YAAAA;IACA8C,QAAU,EAAA;AACRC,QAAAA,IAAAA,EAAM,CAAC7B,KAAO8B,EAAAA,MAAAA,GAAAA;YACZ,MAAM,EAAE/C,UAAU,EAAEC,YAAY,EAAEG,aAAa,EAAE,GAAG2C,MAAAA,CAAOC,OAAO;AAElE/B,YAAAA,KAAAA,CAAMjB,UAAU,GAAGA,UAAAA;AACnBiB,YAAAA,KAAAA,CAAMf,iBAAiB,GAAGF,UAAAA;AAC1BiB,YAAAA,KAAAA,CAAMd,mBAAmB,GAAGF,YAAAA;AAC5BgB,YAAAA,KAAAA,CAAMhB,YAAY,GAAGA,YAAAA;AACrBgB,YAAAA,KAAAA,CAAMb,aAAa,GAAGA,aAAAA;AACtBa,YAAAA,KAAAA,CAAMV,SAAS,GAAG,KAAA;AACpB,SAAA;AACA0C,QAAAA,qBAAAA,EAAuB,CAAChC,KAAO8B,EAAAA,MAAAA,GAAAA;YAC7B,MAAM,EAAEG,GAAG,EAAET,IAAI,EAAEU,iBAAiB,EAAE,GAAGJ,MAAAA,CAAOC,OAAO;AAEvD,YAAA,MAAMI,SAAuB,GAAA;gBAC3BF,GAAKA,EAAAA,GAAAA;gBACL7B,MAAQ,EAAA,KAAA;gBACRgC,QAAUF,EAAAA,iBAAAA;AACVG,gBAAAA,SAAAA,EAAWb,KAAKc,WAAW;AAC3BC,gBAAAA,QAAAA,EAAUf,KAAKc,WAAW;gBAC1BE,IAAM,EAAA;AACJC,oBAAAA,IAAAA,EAAMjB,KAAKiB,IAAI;AACfH,oBAAAA,WAAAA,EAAad,KAAKc;AACpB,iBAAA;AACAjD,gBAAAA,UAAAA,EAAY,EAAE;gBACdqD,SAAW,EAAA;AACb,aAAA;YAEA1C,KAAMjB,CAAAA,UAAU,CAACkD,GAAAA,CAAc,GAAGE,SAAAA;AACpC,SAAA;AACAQ,QAAAA,YAAAA,EAAc,CAAC3C,KAAO8B,EAAAA,MAAAA,GAAAA;AACpB,YAAA,MAAM,EAAEG,GAAG,EAAET,IAAI,EAAE,GAAGM,OAAOC,OAAO;AAEpC,YAAA,MAAM,EAAEO,WAAW,EAAEM,YAAY,EAAEC,UAAU,EAAEC,IAAI,EAAEC,eAAe,EAAEC,aAAa,EAAE,GACnFxB,IAAAA;AAEF,YAAA,MAAMW,SAAyB,GAAA;gBAC7BF,GAAKA,EAAAA,GAAAA;gBACL7B,MAAQ,EAAA,KAAA;gBACR6C,OAAS,EAAA,IAAA;gBACTP,SAAW,EAAA,aAAA;gBACXQ,mBAAqB,EAAA,IAAA;AACrB7D,gBAAAA,UAAAA,EAAY,EAAE;AACdyD,gBAAAA,IAAAA;gBACAT,SAAWC,EAAAA,WAAAA;gBACXC,QAAUD,EAAAA,WAAAA;gBACVa,OAAS,EAAA;AACPJ,oBAAAA;AACF,iBAAA;gBACAP,IAAM,EAAA;AACJF,oBAAAA,WAAAA;AACAM,oBAAAA,YAAAA;AACAC,oBAAAA;AACF,iBAAA;AACAG,gBAAAA;AACF,aAAA;YAEAhD,KAAMhB,CAAAA,YAAY,CAACiD,GAAAA,CAAI,GAAGE,SAAAA;AAC5B,SAAA;AACAiB,QAAAA,YAAAA,EAAc,CAACpD,KAAO8B,EAAAA,MAAAA,GAAAA;YACpB,MAAM,EAAEuB,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/D,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMO,SAAAA,GAAYC,eAAgB4C,CAAAA,IAAAA,CAAKD,cAAgB,EAAA,iBAAA,CAAA,CAAA;YAEvD,IAAI5C,SAAAA,CAAUd,IAAI,KAAK,UAAY,EAAA;gBACjC,MAAM4D,MAAAA,GAAS9C,UAAU8C,MAAM;gBAC/B,MAAMC,eAAAA,GAAkB/C,SAAU+C,CAAAA,eAAe,IAAI,IAAA;gBACrD,MAAMC,QAAAA,GAAWhD,UAAUgD,QAAQ;gBACnC,MAAMC,YAAAA,GAAeC,gCAAgBF,QAAUD,EAAAA,eAAAA,CAAAA;AAE/C,gBAAA,MAAMI,0BAA0B,CAAC;AAAC,oBAAA,QAAA;AAAU,oBAAA;AAAU,iBAAA,CAACC,QAAQ,CAACH,YAAAA,CAAAA;AAEhE,gBAAA,IAAIE,uBAAyB,EAAA;AAC3B,oBAAA,MAAME,oBAAoBpD,eAAgB,CAAA;wBACxCZ,IAAM0D,EAAAA,eAAAA;AACNC,wBAAAA,QAAAA,EAAUjE,mBAAoBkE,CAAAA,YAAAA,CAAAA;AAC9BH,wBAAAA,MAAAA,EAAQ5D,KAAKsC,GAAG;AAChBuB,wBAAAA,eAAAA,EAAiB/C,UAAUX,IAAI;wBAC/BH,IAAM,EAAA,UAAA;AACNoE,wBAAAA,OAAAA,EAAStD,UAAUsD;AACrB,qBAAA,CAAA;oBAEA,MAAMC,UAAAA,GAAajE,QAAQC,KAAO,EAAA;AAAEC,wBAAAA,SAAAA;wBAAWC,SAAWqD,EAAAA;AAAO,qBAAA,CAAA;AACjExC,oBAAAA,aAAAA,CAAciD,UAAYF,EAAAA,iBAAAA,CAAAA;AAC5B;AACF;AAEA/C,YAAAA,aAAAA,CAAcpB,IAAMc,EAAAA,SAAAA,CAAAA;AACpBN,YAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,SAAA;AACAsE,QAAAA,aAAAA,EAAe,CAACjE,KAAO8B,EAAAA,MAAAA,GAAAA;YACrB,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAEgE,IAAI,EAAEC,EAAE,EAAE,GAAGrC,MAAAA,CAAOC,OAAO;YAEzD,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;AAEnD,YAAA,MAAMO,SAAYd,GAAAA,IAAAA,CAAKN,UAAU,CAAC6E,IAAK,CAAA;AACvCvE,YAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAAC+C,IAAM,EAAA,CAAA,CAAA;AAC7BvE,YAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACgD,IAAI,CAAG1D,EAAAA,SAAAA,CAAAA;AAC9BN,YAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,SAAA;AACAyE,QAAAA,uBAAAA,EAAyB,CAACpE,KAAO8B,EAAAA,MAAAA,GAAAA;YAC/B,MAAM,EAAEuB,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/D,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;AAEnDa,YAAAA,aAAAA,CAAcpB,MAAMe,eAAgB2C,CAAAA,cAAAA,CAAAA,CAAAA;AACtC,SAAA;AACAgB,QAAAA,gCAAAA,EAAkC,CAChCrE,KACA8B,EAAAA,MAAAA,GAAAA;YAEA,MAAM,EAAEwC,iBAAiB,EAAEC,eAAe,EAAEtE,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAEnF,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMsE,gBAAAA,GAAmB9E,mBAAmBC,IAAM2E,EAAAA,iBAAAA,CAAAA;AAClD,YAAA,MAAMpD,IAAOvB,GAAAA,IAAAA,CAAKN,UAAU,CAACmF,gBAAiB,CAAA;YAE9CD,eAAgBE,CAAAA,OAAO,CAAC,CAACC,YAAAA,GAAAA;gBACvBxD,IAAKnC,CAAAA,UAAU,CAACiC,IAAI,CAAC0D,YAAAA,CAAAA;AACvB,aAAA,CAAA;AAEAlE,YAAAA,kBAAAA,CAAmBU,IAAM,EAAA,SAAA,CAAA;AACzBf,YAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB,SAAA;AACAgF,QAAAA,2BAAAA,EAA6B,CAC3B3E,KACA8B,EAAAA,MAAAA,GAAAA;YAEA,MAAM,EAAEwC,iBAAiB,EAAEM,aAAa,EAAE3E,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAEjF,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMsE,gBAAAA,GAAmB9E,mBAAmBC,IAAM2E,EAAAA,iBAAAA,CAAAA;AAClD,YAAA,MAAMpD,IAAOvB,GAAAA,IAAAA,CAAKN,UAAU,CAACmF,gBAAiB,CAAA;YAC9C,MAAMK,mBAAAA,GAAsB3D,KAAKnC,UAAU;AAE3C,YAAA,MAAM+F,oBAAoBC,qBAAW,CAAA;AAAIF,gBAAAA,GAAAA,mBAAAA;AAAwBD,gBAAAA,GAAAA;AAAc,aAAA,CAAA;AAE/EzE,YAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAChBa,YAAAA,kBAAAA,CAAmBU,IAAM,EAAA,SAAA,CAAA;AACzBA,YAAAA,IAAAA,CAAKnC,UAAU,GAAG+F,iBAAAA;AACpB,SAAA;AACAE,QAAAA,aAAAA,EAAe,CAAChF,KAAO8B,EAAAA,MAAAA,GAAAA;YACrB,MAAM,EAAEhC,IAAI,EAAEuD,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAErE,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM+E,qBAAAA,GAAwBvF,mBAAmBC,IAAMG,EAAAA,IAAAA,CAAAA;YAEvD,IAAImF,qBAAAA,KAA0B,CAAC,CAAG,EAAA;AAChC,gBAAA;AACF;AAEA,YAAA,MAAMnE,iBAAoBnB,GAAAA,IAAAA,CAAKN,UAAU,CAAC4F,qBAAsB,CAAA;AAEhErE,YAAAA,cAAAA,CAAejB,MAAMsF,qBAAuB5B,EAAAA,cAAAA,CAAAA;AAE5C,YAAA,IAAIvC,iBAAkBnB,CAAAA,IAAI,KAAK0D,cAAAA,CAAe1D,IAAI,EAAE;AAClD,gBAAA;AACF;AAEA,YAAA,IAAImB,kBAAkBnB,IAAI,KAAK,cAAc0D,cAAe1D,CAAAA,IAAI,KAAK,UAAY,EAAA;AAC/E,gBAAA;AACF;YAEA,MAAMuF,cAAAA,GAAiBnF,QAAQC,KAAO,EAAA;gBACpCC,SAAW,EAAA,aAAA;AACXC,gBAAAA,SAAAA,EAAWY,kBAAkByC;AAC/B,aAAA,CAAA;YACA,MAAM4B,SAAAA,GAAYpF,QAAQC,KAAO,EAAA;gBAC/BC,SAAW,EAAA,aAAA;AACXC,gBAAAA,SAAAA,EAAWmD,eAAeE;AAC5B,aAAA,CAAA;AAEA,YAAA,MAAM6B,4BAA+B1F,GAAAA,kBAAAA,CACnCwF,cACApE,EAAAA,iBAAAA,CAAkB0C,eAAe,IAAI,EAAA,CAAA;;YAIvC,IAAI1C,iBAAAA,CAAkB0C,eAAe,EAAE;gBACrCnC,qBAAsB6D,CAAAA,cAAAA,EAAgBpE,kBAAkB0C,eAAe,CAAA;AACzE;AAEA,YAAA,MAAM6B,kBAAkB1B,+BACtBN,CAAAA,cAAAA,CAAeI,QAAQ,EACvBJ,eAAeG,eAAe,CAAA;AAEhC,YAAA,MAAM8B,gBAAmB,GAAA,CAAC/F,kBAAmBsE,CAAAA,QAAQ,CAACwB,eAAAA,CAAAA;AAEtD,YAAA,IAAIC,gBAAkB,EAAA;AACpB,gBAAA,MAAMC,kBAAqB,GAAA;AACzBzF,oBAAAA,IAAAA,EAAMuD,eAAeG,eAAe;oBACpC7D,IAAM,EAAA,UAAA;oBACN8D,QAAUjE,EAAAA,mBAAAA,CAAoB6D,eAAeI,QAAQ,CAAA;AACrDD,oBAAAA,eAAAA,EAAiBH,eAAevD,IAAI;AACpCyD,oBAAAA,MAAAA,EAAQ5D,KAAKsC,GAAG;AAChB8B,oBAAAA,OAAAA,EAASjD,iBAAkBiD,CAAAA,OAAO,IAAIV,cAAAA,CAAeU,OAAO;AAC5Df,oBAAAA,aAAAA,EAAelC,iBAAkBkC,CAAAA,aAAa,IAAIK,cAAAA,CAAeL,aAAa;oBAC9E5C,MAAQ,EAAA;AACV,iBAAA;;gBAGA,IAAIgF,4BAAAA,KAAiC,CAAC,CAAKF,IAAAA,cAAAA,CAAejD,GAAG,KAAKkD,SAAAA,CAAUlD,GAAG,EAAE;;AAE/Eb,oBAAAA,kBAAAA,CAAmB+D,WAAWC,4BAA8BG,EAAAA,kBAAAA,CAAAA;iBACvD,MAAA;AACLxE,oBAAAA,aAAAA,CAAcoE,SAAW,EAAA;AACvB,wBAAA,GAAGI,kBAAkB;wBACrBnF,MAAQ,EAAA;AACV,qBAAA,CAAA;AACF;AACF;AACF,SAAA;AACAoF,QAAAA,wBAAAA,EAA0B,CAACxF,KAAO8B,EAAAA,MAAAA,GAAAA;YAChC,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAEJ,IAAI,EAAEuD,cAAc,EAAE,GAAGvB,MAAAA,CAAOC,OAAO;AAErE,YAAA,MAAM0D,oBAAuB3F,GAAAA,IAAAA;YAC7B,MAAMH,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM+E,qBAAAA,GAAwBvF,mBAAmBC,IAAM8F,EAAAA,oBAAAA,CAAAA;AAEvD7E,YAAAA,cAAAA,CAAejB,MAAMsF,qBAAuB5B,EAAAA,cAAAA,CAAAA;AAC9C,SAAA;QACAqC,YAAc,EAAA,IAAA;YACZ,OAAO5G,YAAAA;AACT,SAAA;AACA6G,QAAAA,8BAAAA,EAAgC,CAC9B3F,KACA8B,EAAAA,MAAAA,GAAAA;YAEA,MAAM,EAAE8D,MAAM,EAAEC,sBAAsB,EAAE5F,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/E,MAAMpC,IAAAA,GACJM,SAAc,KAAA,aAAA,GAAgBD,KAAMhB,CAAAA,YAAY,CAACkB,SAAAA,CAAU,GAAGF,KAAAA,CAAMjB,UAAU,CAACmB,SAAU,CAAA;AAE3F,YAAA,IAAI,CAACP,IAAM,EAAA;AACT,gBAAA;AACF;YAEA,MAAM6E,gBAAAA,GAAmB9E,mBAAmBC,IAAMiG,EAAAA,MAAAA,CAAAA;AAClD,YAAA,MAAM1E,IAAOvB,GAAAA,IAAAA,CAAKN,UAAU,CAACmF,gBAAiB,CAAA;AAE9CrE,YAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAChBa,YAAAA,kBAAAA,CAAmBU,IAAM,EAAA,SAAA,CAAA;AACzBA,YAAAA,IAAAA,CAAKnC,UAAU,CAACoC,MAAM,CAAC0E,sBAAwB,EAAA,CAAA,CAAA;AACjD,SAAA;AACAC,QAAAA,WAAAA,EAAa,CAAC9F,KAAO8B,EAAAA,MAAAA,GAAAA;YACnB,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAE6F,qBAAqB,EAAE,GAAGjE,MAAAA,CAAOC,OAAO;YAEtE,MAAMpC,IAAAA,GAAOI,QAAQC,KAAO,EAAA;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM8F,sBAAAA,GAAyBtG,mBAAmBC,IAAMoG,EAAAA,qBAAAA,CAAAA;AACxD,YAAA,MAAMtF,SAAYd,GAAAA,IAAAA,CAAKN,UAAU,CAAC2G,sBAAuB,CAAA;YAEzD,IAAIvF,SAAAA,CAAUd,IAAI,KAAK,UAAY,EAAA;gBACjC,MAAM,EAAE4D,MAAM,EAAEE,QAAQ,EAAED,eAAiByC,EAAAA,mBAAmB,EAAE,GAAGxF,SAAAA;gBACnE,MAAMiD,YAAAA,GAAeC,gCAAgBF,QAAUwC,EAAAA,mBAAAA,CAAAA;AAE/C,gBAAA,MAAMX,gBAAmB,GAAA,CAAC/F,kBAAmBsE,CAAAA,QAAQ,CAACH,YAAAA,CAAAA;AAEtD,gBAAA,IAAI4B,oBAAoBW,mBAAqB,EAAA;oBAC3C,MAAMC,iBAAAA,GAAoBnG,QAAQC,KAAO,EAAA;AAAEC,wBAAAA,SAAAA;wBAAWC,SAAWqD,EAAAA;AAAO,qBAAA,CAAA;oBACxE,MAAM4C,oBAAAA,GAAuBzG,mBAAmBwG,iBAAmBD,EAAAA,mBAAAA,CAAAA;AAEnEhF,oBAAAA,iBAAAA,CAAkBiF,iBAAmBC,EAAAA,oBAAAA,CAAAA;AACvC;AACF;;AAGAxG,YAAAA,IAAAA,CAAKN,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;gBACvB,IAAIA,SAAAA,CAAUd,IAAI,KAAK,KAAO,EAAA;oBAC5B,IAAIc,SAAAA,CAAU2F,WAAW,KAAKL,qBAAuB,EAAA;AACnD,wBAAA,OAAOtF,UAAU2F,WAAW;AAC9B;AACF;AACF,aAAA,CAAA;AAEAnF,YAAAA,iBAAAA,CAAkBtB,IAAMqG,EAAAA,sBAAAA,CAAAA;AAC1B,SAAA;;AAEAK,QAAAA,qBAAAA,EAAuB,CAACrG,KAAO8B,EAAAA,MAAAA,GAAAA;AAC7B,YAAA,MAAM,EAAEN,IAAI,EAAES,GAAG,EAAE,GAAGH,OAAOC,OAAO;AAEpC,YAAA,MAAMpC,IAAOK,GAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;AAClC,YAAA,IAAI,CAACtC,IAAM,EAAA;AACT,gBAAA;AACF;AAEA4B,YAAAA,UAAAA,CAAW5B,IAAM,EAAA;gBACf6C,IAAM,EAAA;AACJF,oBAAAA,WAAAA,EAAad,KAAKc,WAAW;AAC7BG,oBAAAA,IAAAA,EAAMjB,KAAKiB;AACb;AACF,aAAA,CAAA;AACF,SAAA;AACA6D,QAAAA,kBAAAA,EAAoB,CAACtG,KAAO8B,EAAAA,MAAAA,GAAAA;AAC1B,YAAA,MAAM,EAAEyE,eAAe,EAAEtE,GAAG,EAAE,GAAGH,OAAOC,OAAO;AAE/C,YAAA,MAAMpC,IAAOK,GAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;AAClC,YAAA,IAAI,CAACtC,IAAAA,IAAQA,IAAKS,CAAAA,MAAM,KAAK,KAAO,EAAA;AAClC,gBAAA;AACF;AAEA,YAAA,IAAImG,oBAAoBtE,GAAK,EAAA;AAC3B,gBAAA,MAAMuE,OAAU,GAAA;AAAE,oBAAA,GAAG7G,IAAI;oBAAEsC,GAAKsE,EAAAA;AAAgB,iBAAA;gBAChDvG,KAAMjB,CAAAA,UAAU,CAACwH,eAAAA,CAAgB,GAAGC,OAAAA;gBACpC,OAAOxG,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;;AAG5BwE,gBAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAEyF,CAAAA,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,oBAAA,MAAMC,WAAc5G,GAAAA,KAAAA,CAAMhB,YAAY,CAAC2H,cAAe,CAAA;AAEtDC,oBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;wBAC9B,IAAIA,SAAAA,CAAUd,IAAI,KAAK,aAAe,EAAA;AACpC,4BAAA,MAAMiF,gBAAgBnE,SAAU1B,CAAAA,UAAU,CAAC8H,GAAG,CAAC,CAACC,SAAAA,GAAAA;AAC9C,gCAAA,IAAIA,cAAc7E,GAAK,EAAA;oCACrB,OAAOsE,eAAAA;AACT;gCAEA,OAAOO,SAAAA;AACT,6BAAA,CAAA;AAEArG,4BAAAA,SAAAA,CAAU1B,UAAU,GAAG6F,aAAAA;AACzB;AACF,qBAAA,CAAA;AAEAgC,oBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,wBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAUqG,CAAAA,SAAS,KAAK7E,GAAK,EAAA;AACjExB,4BAAAA,SAAAA,CAAUqG,SAAS,GAAGP,eAAAA;AACxB;AACF,qBAAA,CAAA;AACF,iBAAA,CAAA;;AAGAE,gBAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAE0F,CAAAA,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,oBAAA,MAAMoC,SAAY9G,GAAAA,KAAAA,CAAMjB,UAAU,CAAC2F,YAAa,CAAA;AAEhDoC,oBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,wBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAUqG,CAAAA,SAAS,KAAK7E,GAAK,EAAA;AACjExB,4BAAAA,SAAAA,CAAUqG,SAAS,GAAGP,eAAAA;AACxB;AACF,qBAAA,CAAA;AACF,iBAAA,CAAA;AACF;AACF,SAAA;AACAQ,QAAAA,YAAAA,EAAc,CAAC/G,KAAO8B,EAAAA,MAAAA,GAAAA;AACpB,YAAA,MAAM,EAAEN,IAAI,EAAES,GAAG,EAAE,GAAGH,OAAOC,OAAO;YAEpC,MAAM,EAAEO,WAAW,EAAEQ,IAAI,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGxB,IAAAA;AAE9D,YAAA,MAAM7B,IAAOK,GAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;AACpC,YAAA,IAAI,CAACtC,IAAM,EAAA;AACT,gBAAA;AACF;AAEA4B,YAAAA,UAAAA,CAAW5B,IAAM,EAAA;gBACf6C,IAAM,EAAA;AACJF,oBAAAA;AACF,iBAAA;AACAQ,gBAAAA,IAAAA;gBACAK,OAAS,EAAA;AACPJ,oBAAAA;AACF,iBAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AACF,SAAA;AACAgE,QAAAA,eAAAA,EAAiB,CAAChH,KAAO8B,EAAAA,MAAAA,GAAAA;YACvB,MAAMG,GAAAA,GAAMH,OAAOC,OAAO;;AAG1B,YAAA,IAAI/B,MAAMjB,UAAU,CAACkD,IAAI,CAAC7B,MAAM,KAAK,KAAO,EAAA;gBAC1C,OAAOJ,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;aACvB,MAAA;AACL9B,gBAAAA,SAAAA,CAAUH,KAAMjB,CAAAA,UAAU,CAACkD,GAAAA,CAAI,EAAE,SAAA,CAAA;AACnC;;AAGAwE,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAEyF,CAAAA,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,gBAAA,MAAMC,WAAc5G,GAAAA,KAAAA,CAAMhB,YAAY,CAAC2H,cAAe,CAAA;;AAGtDC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;oBAC9B,IAAIA,SAAAA,CAAUd,IAAI,KAAK,aAAe,EAAA;wBACpC,MAAMiF,aAAAA,GAAgBnE,UAAU1B,UAAU,CAACkI,MAAM,CAC/C,CAACH,YAAuBA,SAAc7E,KAAAA,GAAAA,CAAAA;AAGxCxB,wBAAAA,SAAAA,CAAU1B,UAAU,GAAG6F,aAAAA;AACzB;AACF,iBAAA,CAAA;AAEAgC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAUqG,CAAAA,SAAS,KAAK7E,GAAK,EAAA;wBACjEZ,qBAAsBuF,CAAAA,WAAAA,EAAanG,UAAUX,IAAI,CAAA;AACnD;AACF,iBAAA,CAAA;AACF,aAAA,CAAA;;AAGA2G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAE0F,CAAAA,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,gBAAA,MAAMoC,SAAY9G,GAAAA,KAAAA,CAAMjB,UAAU,CAAC2F,YAAa,CAAA;AAEhDoC,gBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAUqG,CAAAA,SAAS,KAAK7E,GAAK,EAAA;wBACjEZ,qBAAsByF,CAAAA,SAAAA,EAAWrG,UAAUX,IAAI,CAAA;AACjD;AACF,iBAAA,CAAA;AACF,aAAA,CAAA;AACF,SAAA;AACAoH,QAAAA,iBAAAA,EAAmB,CAAClH,KAAO8B,EAAAA,MAAAA,GAAAA;YACzB,MAAMG,GAAAA,GAAMH,OAAOC,OAAO;AAC1B,YAAA,MAAMpC,IAAOK,GAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;;YAGpC,IAAItC,IAAAA,CAAKS,MAAM,KAAK,KAAO,EAAA;gBACzB,OAAOJ,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;aACzB,MAAA;AACL9B,gBAAAA,SAAAA,CAAUR,IAAM,EAAA,SAAA,CAAA;AAClB;;AAGA8G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAE0F,CAAAA,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,gBAAA,MAAMoC,SAAY9G,GAAAA,KAAAA,CAAMjB,UAAU,CAAC2F,YAAa,CAAA;AAEhDoC,gBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,cAAcc,SAAU8C,CAAAA,MAAM,KAAKtB,GAAK,EAAA;wBAC7DZ,qBAAsByF,CAAAA,SAAAA,EAAWrG,UAAUX,IAAI,CAAA;AACjD;AACF,iBAAA,CAAA;AACF,aAAA,CAAA;;AAGA2G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAEyF,CAAAA,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,gBAAA,MAAMC,WAAc5G,GAAAA,KAAAA,CAAMhB,YAAY,CAAC2H,cAAe,CAAA;AAEtDC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,cAAcc,SAAU8C,CAAAA,MAAM,KAAKtB,GAAK,EAAA;wBAC7DZ,qBAAsBuF,CAAAA,WAAAA,EAAanG,UAAUX,IAAI,CAAA;AACnD;AACF,iBAAA,CAAA;AACF,aAAA,CAAA;AACF,SAAA;QAEAqH,WACEnH,CAAAA,CAAAA,KAAK,EACLoH,aAGE,EAAA;AAEF,YAAA,MAAM,EAAEtF,MAAM,EAAEuF,MAAM,EAAE,GAAGD,cAAcrF,OAAO;YAEhD,OAAQD,MAAAA;gBACN,KAAK,KAAA;AACH,oBAAA;wBACE,MAAMG,GAAAA,GAAMoF,OAAOpF,GAAG;wBAEtB,IAAIoF,MAAAA,CAAO3E,SAAS,KAAK,WAAa,EAAA;4BACpC1C,KAAMjB,CAAAA,UAAU,CAACkD,GAAAA,CAAI,GAAGoF,MAAAA;yBACnB,MAAA;4BACLrH,KAAMhB,CAAAA,YAAY,CAACiD,GAAAA,CAAI,GAAGoF,MAAAA;AAC5B;AACF;AACA,oBAAA;gBACF,KAAK,QAAA;AACH,oBAAA;wBACE,MAAMpF,GAAAA,GAAMoF,OAAOpF,GAAG;;wBAItB,IAAIoF,MAAAA,CAAO3E,SAAS,KAAK,WAAa,EAAA;AACpC,4BAAA,MAAMoE,SAAY9G,GAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;4BACvCjC,KAAMjB,CAAAA,UAAU,CAACkD,GAAAA,CAAI,GAAG;AACtB,gCAAA,GAAGoF,MAAM;AACTjH,gCAAAA,MAAAA,EAAQ0G,SAAW1G,EAAAA,MAAAA,KAAW,KAAQ,GAAA,KAAA,GAAQiH,OAAOjH;AACvD,6BAAA;yBACK,MAAA;AACL,4BAAA,MAAMwG,WAAc5G,GAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;4BAC3CjC,KAAMhB,CAAAA,YAAY,CAACiD,GAAAA,CAAI,GAAG;AACxB,gCAAA,GAAGoF,MAAM;AACTjH,gCAAAA,MAAAA,EAAQwG,WAAaxG,EAAAA,MAAAA,KAAW,KAAQ,GAAA,KAAA,GAAQiH,OAAOjH;AACzD,6BAAA;AACF;AACF;AACA,oBAAA;gBACF,KAAK,QAAA;AAAU,oBAAA;wBACb,MAAM6B,GAAAA,GAAMoF,OAAOpF,GAAG;wBACtB,MAAMqF,WAAAA,GAAcD,MAAO3E,CAAAA,SAAS,KAAK,WAAA;;AAEzC,wBAAA,IAAI4E,WAAa,EAAA;AACf,4BAAA,MAAMC,MAASvH,GAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;AACpC,4BAAA,IAAI,CAACsF,MAAQ,EAAA;AACX,gCAAA;AACF;AAEA,4BAAA,MAAMC,YAAYxH,KAAMjB,CAAAA,UAAU,CAACkD,GAAAA,CAAI,EAAE7B,MAAW,KAAA,KAAA;AACpD,4BAAA,IAAIoH,SAAW,EAAA;gCACb,OAAOxH,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA;6BACvB,MAAA;AACLjC,gCAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAI,CAAA,CAAC7B,MAAM,GAAG,SAAA;AACjC;yBACK,MAAA;AACL,4BAAA,MAAMmH,MAASvH,GAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;AACtC,4BAAA,IAAI,CAACsF,MAAQ,EAAA;AACX,gCAAA;AACF;AAEA,4BAAA,MAAMC,YAAYxH,KAAMhB,CAAAA,YAAY,CAACiD,GAAAA,CAAI,EAAE7B,MAAW,KAAA,KAAA;AACtD,4BAAA,IAAIoH,SAAW,EAAA;gCACb,OAAOxH,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA;6BACzB,MAAA;AACLjC,gCAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAI,CAAA,CAAC7B,MAAM,GAAG,SAAA;AACnC;AACF;AAEA,wBAAA;AACF;AACF;AACF;AACF;AACF,CAEA,EAAA;IACEqH,KAAO,EAAA,EAAA;IACPC,yBAA2B,EAAA;AAAC,QAAA,cAAA;AAAgB,QAAA;AAAO,KAAA;AACnDC,IAAAA,aAAAA,EAAe,CAAC3H,KAAAA,GAAAA;AACd,QAAA,IAAI,CAACA,KAAO,EAAA;AACV,YAAA,OAAO,EAAC;AACV;QAEA,OAAO;AACLjB,YAAAA,UAAAA,EAAYiB,MAAMjB,UAAU;AAC5BC,YAAAA,YAAAA,EAAcgB,MAAMhB;AACtB,SAAA;AACF,KAAA;AACA4I,IAAAA,OAAAA,EAAS,CAAC5H,KAAAA,GAAAA;QACRA,KAAMjB,CAAAA,UAAU,GAAGiB,KAAAA,CAAMf,iBAAiB;QAC1Ce,KAAMhB,CAAAA,YAAY,GAAGgB,KAAAA,CAAMd,mBAAmB;AAChD;AACF,CAAA,CAAA;MAIW,EAAE2I,OAAO,EAAEC,OAAO,EAAE,GAAGpG;;;;;;"}
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":";;;;;;;;AAgCA,MAAMA,YAAAA,GAAqC;AACzCC,IAAAA,UAAAA,EAAY,EAAC;AACbC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,iBAAAA,EAAmB,EAAC;AACpBC,IAAAA,mBAAAA,EAAqB,EAAC;IACtBC,aAAAA,EAAe;AACbC,QAAAA,MAAAA,EAAQ,EAAE;AACVC,QAAAA,UAAAA,EAAY;AACd,KAAA;IACAC,SAAAA,EAAW;AACb;AAEA,MAAMC,kBAAAA,GAAqB;AAAC,IAAA,QAAA;AAAU,IAAA;AAAU,CAAA;AAEhD,MAAMC,sBAAsB,CAACC,gBAAAA,GAAAA;AAC3B,IAAA,IAAIA,qBAAqB,WAAA,EAAa;QACpC,OAAO,WAAA;AACT,IAAA;AAEA,IAAA,IAAIA,qBAAqB,WAAA,EAAa;QACpC,OAAO,WAAA;AACT,IAAA;IAEA,OAAOA,gBAAAA;AACT,CAAA;AAEA,MAAMC,kBAAAA,GAAqB,CAACC,IAAAA,EAAWC,eAAAA,GAAAA;IACrC,OAAOD,IAAAA,CAAKN,UAAU,CAACQ,SAAS,CAAC,CAAC,EAAEC,IAAI,EAAoB,GAAKA,IAAAA,KAASF,eAAAA,CAAAA;AAC5E,CAAA;AAgHA,MAAMG,UAAU,CACdC,KAAAA,EACA,EACEC,SAAS,EACTC,SAAS,EAIV,GAAA;IAED,OAAOD,SAAAA,KAAc,aAAA,GAAgBD,KAAAA,CAAMhB,YAAY,CAACkB,UAAU,GAAGF,KAAAA,CAAMjB,UAAU,CAACmB,SAAAA,CAAU;AAClG,CAAA;AAEA;AACA,MAAMC,SAAAA,GAAY,CAACR,IAAAA,EAA+BS,MAAAA,GAAAA;AAChD,IAAA,OAAQT,KAAKS,MAAM;QACjB,KAAK,KAAA;QACL,KAAK,SAAA;AAAW,YAAA;AACd,gBAAA;AACF,YAAA;AACA,QAAA;AAAS,YAAA;AACPT,gBAAAA,IAAAA,CAAKS,MAAM,GAAGA,MAAAA;AAChB,YAAA;AACF;AACF,CAAA;AAEA,MAAMC,YAAAA,GAAe,CAACC,SAAAA,EAA+BC,SAAAA,GAAAA;IACnD,IAAID,SAAAA,KAAc,KAAA,IAASA,SAAAA,KAAc,SAAA,EAAW;QAClD,OAAOA,SAAAA;AACT,IAAA;IAEA,OAAOC,SAAAA;AACT,CAAA;AAEA,MAAMC,kBAAAA,GAAqB,CAACC,SAAAA,EAAgCL,MAAAA,GAAAA;AAC1DK,IAAAA,SAAAA,CAAUL,MAAM,GAAGC,YAAAA,CAAaI,SAAAA,CAAUL,MAAM,EAAEA,MAAAA,CAAAA;AACpD,CAAA;AAEA,MAAMM,kBAAkB,CAACC,UAAAA,GAAAA;IACvB,OAAO;AACL,QAAA,GAAGA,UAAU;QACbP,MAAAA,EAAQ;AACV,KAAA;AACF,CAAA;AAEA,MAAMQ,cAAAA,GAAiB,CAACjB,IAAAA,EAA+BkB,KAAAA,EAAeJ,SAAAA,GAAAA;AACpE,IAAA,MAAMK,iBAAAA,GAAoBnB,IAAAA,CAAKN,UAAU,CAACwB,KAAAA,CAAM;AAEhD,IAAA,MAAMN,SAAAA,GAAYF,YAAAA,CAAaS,iBAAAA,CAAkBV,MAAM,EAAE,SAAA,CAAA;IAEzDT,IAAAA,CAAKN,UAAU,CAACwB,KAAAA,CAAM,GAAG;AACvB,QAAA,GAAGJ,SAAS;QACZL,MAAAA,EAAQG;AACV,KAAA;AAEAJ,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,CAAA;AAEA,MAAMoB,aAAAA,GAAgB,CAACpB,IAAAA,EAA+Bc,SAAAA,GAAAA;IACpDd,IAAAA,CAAKN,UAAU,CAAC2B,IAAI,CAACP,SAAAA,CAAAA;AACrBN,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,CAAA;AAEA,MAAMsB,iBAAAA,GAAoB,CAACtB,IAAAA,EAA+BkB,KAAAA,GAAAA;AACxD,IAAA,MAAMK,IAAAA,GAAOvB,IAAAA,CAAKN,UAAU,CAACwB,KAAAA,CAAM;AAEnCV,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;IAEhB,IAAIuB,IAAAA,CAAKd,MAAM,KAAK,KAAA,EAAO;AACzBT,QAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACN,KAAAA,EAAO,CAAA,CAAA;IAChC,CAAA,MAAO;AACLL,QAAAA,kBAAAA,CAAmBU,IAAAA,EAAM,SAAA,CAAA;AAC3B,IAAA;AACF,CAAA;AAEA,MAAME,kBAAAA,GAAqB,CACzBzB,IAAAA,EACAkB,KAAAA,EACAJ,SAAAA,GAAAA;IAEAd,IAAAA,CAAKN,UAAU,CAACwB,KAAAA,CAAM,GAAGJ,SAAAA;AACzBN,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,CAAA;AAEA,MAAM0B,qBAAAA,GAAwB,CAAC1B,IAAAA,EAA+BG,IAAAA,GAAAA;IAC5D,MAAMwB,GAAAA,GAAM3B,IAAAA,CAAKN,UAAU,CAACQ,SAAS,CAAC,CAACqB,IAAAA,GAASA,IAAAA,CAAKpB,IAAI,KAAKA,IAAAA,CAAAA;AAE9D,IAAA,MAAMoB,IAAAA,GAAOvB,IAAAA,CAAKN,UAAU,CAACiC,GAAAA,CAAI;AAEjCnB,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;IAEhB,IAAIuB,IAAAA,CAAKd,MAAM,KAAK,KAAA,EAAO;AACzBT,QAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACG,GAAAA,EAAK,CAAA,CAAA;IAC9B,CAAA,MAAO;AACLd,QAAAA,kBAAAA,CAAmBU,IAAAA,EAAM,SAAA,CAAA;AAC3B,IAAA;AACF,CAAA;AAEA,MAAMK,UAAAA,GAAa,CAAC5B,IAAAA,EAA+B6B,IAAAA,GAAAA;AACjDC,IAAAA,KAAAA,CAAM9B,IAAAA,EAAM6B,IAAAA,CAAAA;AACZrB,IAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,CAAA;AAEA,MAAM+B,QAAQC,4BAAAA,CACZ;IACE7B,IAAAA,EAAM,cAAA;AACNhB,IAAAA,YAAAA;IACA8C,QAAAA,EAAU;AACRC,QAAAA,IAAAA,EAAM,CAAC7B,KAAAA,EAAO8B,MAAAA,GAAAA;YACZ,MAAM,EAAE/C,UAAU,EAAEC,YAAY,EAAEG,aAAa,EAAE,GAAG2C,MAAAA,CAAOC,OAAO;AAElE/B,YAAAA,KAAAA,CAAMjB,UAAU,GAAGA,UAAAA;AACnBiB,YAAAA,KAAAA,CAAMf,iBAAiB,GAAGF,UAAAA;AAC1BiB,YAAAA,KAAAA,CAAMd,mBAAmB,GAAGF,YAAAA;AAC5BgB,YAAAA,KAAAA,CAAMhB,YAAY,GAAGA,YAAAA;AACrBgB,YAAAA,KAAAA,CAAMb,aAAa,GAAGA,aAAAA;AACtBa,YAAAA,KAAAA,CAAMV,SAAS,GAAG,KAAA;AACpB,QAAA,CAAA;AACA0C,QAAAA,qBAAAA,EAAuB,CAAChC,KAAAA,EAAO8B,MAAAA,GAAAA;YAC7B,MAAM,EAAEG,GAAG,EAAET,IAAI,EAAEU,iBAAiB,EAAE,GAAGJ,MAAAA,CAAOC,OAAO;AAEvD,YAAA,MAAMI,SAAAA,GAAuB;gBAC3BF,GAAAA,EAAKA,GAAAA;gBACL7B,MAAAA,EAAQ,KAAA;gBACRgC,QAAAA,EAAUF,iBAAAA;AACVG,gBAAAA,SAAAA,EAAWb,KAAKc,WAAW;AAC3BC,gBAAAA,QAAAA,EAAUf,KAAKc,WAAW;gBAC1BE,IAAAA,EAAM;AACJC,oBAAAA,IAAAA,EAAMjB,KAAKiB,IAAI;AACfH,oBAAAA,WAAAA,EAAad,KAAKc;AACpB,iBAAA;AACAjD,gBAAAA,UAAAA,EAAY,EAAE;gBACdqD,SAAAA,EAAW;AACb,aAAA;YAEA1C,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAc,GAAGE,SAAAA;AACpC,QAAA,CAAA;AACAQ,QAAAA,YAAAA,EAAc,CAAC3C,KAAAA,EAAO8B,MAAAA,GAAAA;AACpB,YAAA,MAAM,EAAEG,GAAG,EAAET,IAAI,EAAE,GAAGM,OAAOC,OAAO;AAEpC,YAAA,MAAM,EAAEO,WAAW,EAAEM,YAAY,EAAEC,UAAU,EAAEC,IAAI,EAAEC,eAAe,EAAEC,aAAa,EAAE,GACnFxB,IAAAA;AAEF,YAAA,MAAMW,SAAAA,GAAyB;gBAC7BF,GAAAA,EAAKA,GAAAA;gBACL7B,MAAAA,EAAQ,KAAA;gBACR6C,OAAAA,EAAS,IAAA;gBACTP,SAAAA,EAAW,aAAA;gBACXQ,mBAAAA,EAAqB,IAAA;AACrB7D,gBAAAA,UAAAA,EAAY,EAAE;AACdyD,gBAAAA,IAAAA;gBACAT,SAAAA,EAAWC,WAAAA;gBACXC,QAAAA,EAAUD,WAAAA;gBACVa,OAAAA,EAAS;AACPJ,oBAAAA;AACF,iBAAA;gBACAP,IAAAA,EAAM;AACJF,oBAAAA,WAAAA;AACAM,oBAAAA,YAAAA;AACAC,oBAAAA;AACF,iBAAA;AACAG,gBAAAA;AACF,aAAA;YAEAhD,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI,GAAGE,SAAAA;AAC5B,QAAA,CAAA;AACAiB,QAAAA,YAAAA,EAAc,CAACpD,KAAAA,EAAO8B,MAAAA,GAAAA;YACpB,MAAM,EAAEuB,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/D,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMO,SAAAA,GAAYC,eAAAA,CAAgB4C,IAAAA,CAAKD,cAAAA,EAAgB,iBAAA,CAAA,CAAA;YAEvD,IAAI5C,SAAAA,CAAUd,IAAI,KAAK,UAAA,EAAY;gBACjC,MAAM4D,MAAAA,GAAS9C,UAAU8C,MAAM;gBAC/B,MAAMC,eAAAA,GAAkB/C,SAAAA,CAAU+C,eAAe,IAAI,IAAA;gBACrD,MAAMC,QAAAA,GAAWhD,UAAUgD,QAAQ;gBACnC,MAAMC,YAAAA,GAAeC,gCAAgBF,QAAAA,EAAUD,eAAAA,CAAAA;AAE/C,gBAAA,MAAMI,0BAA0B,CAAC;AAAC,oBAAA,QAAA;AAAU,oBAAA;AAAU,iBAAA,CAACC,QAAQ,CAACH,YAAAA,CAAAA;AAEhE,gBAAA,IAAIE,uBAAAA,EAAyB;AAC3B,oBAAA,MAAME,oBAAoBpD,eAAAA,CAAgB;wBACxCZ,IAAAA,EAAM0D,eAAAA;AACNC,wBAAAA,QAAAA,EAAUjE,mBAAAA,CAAoBkE,YAAAA,CAAAA;AAC9BH,wBAAAA,MAAAA,EAAQ5D,KAAKsC,GAAG;AAChBuB,wBAAAA,eAAAA,EAAiB/C,UAAUX,IAAI;wBAC/BH,IAAAA,EAAM,UAAA;AACNoE,wBAAAA,OAAAA,EAAStD,UAAUsD;AACrB,qBAAA,CAAA;oBAEA,MAAMC,UAAAA,GAAajE,QAAQC,KAAAA,EAAO;AAAEC,wBAAAA,SAAAA;wBAAWC,SAAAA,EAAWqD;AAAO,qBAAA,CAAA;AACjExC,oBAAAA,aAAAA,CAAciD,UAAAA,EAAYF,iBAAAA,CAAAA;AAC5B,gBAAA;AACF,YAAA;AAEA/C,YAAAA,aAAAA,CAAcpB,IAAAA,EAAMc,SAAAA,CAAAA;AACpBN,YAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,QAAA,CAAA;AACAsE,QAAAA,aAAAA,EAAe,CAACjE,KAAAA,EAAO8B,MAAAA,GAAAA;YACrB,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAEgE,IAAI,EAAEC,EAAE,EAAE,GAAGrC,MAAAA,CAAOC,OAAO;YAEzD,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;AAEnD,YAAA,MAAMO,SAAAA,GAAYd,IAAAA,CAAKN,UAAU,CAAC6E,IAAAA,CAAK;AACvCvE,YAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAAC+C,IAAAA,EAAM,CAAA,CAAA;AAC7BvE,YAAAA,IAAAA,CAAKN,UAAU,CAAC8B,MAAM,CAACgD,IAAI,CAAA,EAAG1D,SAAAA,CAAAA;AAC9BN,YAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,QAAA,CAAA;AACAyE,QAAAA,uBAAAA,EAAyB,CAACpE,KAAAA,EAAO8B,MAAAA,GAAAA;YAC/B,MAAM,EAAEuB,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/D,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;AAEnDa,YAAAA,aAAAA,CAAcpB,MAAMe,eAAAA,CAAgB2C,cAAAA,CAAAA,CAAAA;AACtC,QAAA,CAAA;AACAgB,QAAAA,gCAAAA,EAAkC,CAChCrE,KAAAA,EACA8B,MAAAA,GAAAA;YAEA,MAAM,EAAEwC,iBAAiB,EAAEC,eAAe,EAAEtE,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAEnF,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMsE,gBAAAA,GAAmB9E,mBAAmBC,IAAAA,EAAM2E,iBAAAA,CAAAA;AAClD,YAAA,MAAMpD,IAAAA,GAAOvB,IAAAA,CAAKN,UAAU,CAACmF,gBAAAA,CAAiB;YAE9CD,eAAAA,CAAgBE,OAAO,CAAC,CAACC,YAAAA,GAAAA;gBACvBxD,IAAAA,CAAKnC,UAAU,CAACiC,IAAI,CAAC0D,YAAAA,CAAAA;AACvB,YAAA,CAAA,CAAA;AAEAlE,YAAAA,kBAAAA,CAAmBU,IAAAA,EAAM,SAAA,CAAA;AACzBf,YAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,QAAA,CAAA;AACAgF,QAAAA,2BAAAA,EAA6B,CAC3B3E,KAAAA,EACA8B,MAAAA,GAAAA;YAEA,MAAM,EAAEwC,iBAAiB,EAAEM,aAAa,EAAE3E,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAEjF,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAMsE,gBAAAA,GAAmB9E,mBAAmBC,IAAAA,EAAM2E,iBAAAA,CAAAA;AAClD,YAAA,MAAMpD,IAAAA,GAAOvB,IAAAA,CAAKN,UAAU,CAACmF,gBAAAA,CAAiB;YAC9C,MAAMK,mBAAAA,GAAsB3D,KAAKnC,UAAU;AAE3C,YAAA,MAAM+F,oBAAoBC,qBAAAA,CAAW;AAAIF,gBAAAA,GAAAA,mBAAAA;AAAwBD,gBAAAA,GAAAA;AAAc,aAAA,CAAA;AAE/EzE,YAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAChBa,YAAAA,kBAAAA,CAAmBU,IAAAA,EAAM,SAAA,CAAA;AACzBA,YAAAA,IAAAA,CAAKnC,UAAU,GAAG+F,iBAAAA;AACpB,QAAA,CAAA;AACAE,QAAAA,aAAAA,EAAe,CAAChF,KAAAA,EAAO8B,MAAAA,GAAAA;YACrB,MAAM,EAAEhC,IAAI,EAAEuD,cAAc,EAAEpD,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAErE,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM+E,qBAAAA,GAAwBvF,mBAAmBC,IAAAA,EAAMG,IAAAA,CAAAA;YAEvD,IAAImF,qBAAAA,KAA0B,EAAC,EAAG;AAChC,gBAAA;AACF,YAAA;AAEA,YAAA,MAAMnE,iBAAAA,GAAoBnB,IAAAA,CAAKN,UAAU,CAAC4F,qBAAAA,CAAsB;AAEhErE,YAAAA,cAAAA,CAAejB,MAAMsF,qBAAAA,EAAuB5B,cAAAA,CAAAA;AAE5C,YAAA,IAAIvC,iBAAAA,CAAkBnB,IAAI,KAAK0D,cAAAA,CAAe1D,IAAI,EAAE;AAClD,gBAAA;AACF,YAAA;AAEA,YAAA,IAAImB,kBAAkBnB,IAAI,KAAK,cAAc0D,cAAAA,CAAe1D,IAAI,KAAK,UAAA,EAAY;AAC/E,gBAAA;AACF,YAAA;YAEA,MAAMuF,cAAAA,GAAiBnF,QAAQC,KAAAA,EAAO;gBACpCC,SAAAA,EAAW,aAAA;AACXC,gBAAAA,SAAAA,EAAWY,kBAAkByC;AAC/B,aAAA,CAAA;YACA,MAAM4B,SAAAA,GAAYpF,QAAQC,KAAAA,EAAO;gBAC/BC,SAAAA,EAAW,aAAA;AACXC,gBAAAA,SAAAA,EAAWmD,eAAeE;AAC5B,aAAA,CAAA;AAEA,YAAA,MAAM6B,4BAAAA,GAA+B1F,kBAAAA,CACnCwF,cAAAA,EACApE,iBAAAA,CAAkB0C,eAAe,IAAI,EAAA,CAAA;;YAIvC,IAAI1C,iBAAAA,CAAkB0C,eAAe,EAAE;gBACrCnC,qBAAAA,CAAsB6D,cAAAA,EAAgBpE,kBAAkB0C,eAAe,CAAA;AACzE,YAAA;AAEA,YAAA,MAAM6B,kBAAkB1B,+BAAAA,CACtBN,cAAAA,CAAeI,QAAQ,EACvBJ,eAAeG,eAAe,CAAA;AAEhC,YAAA,MAAM8B,gBAAAA,GAAmB,CAAC/F,kBAAAA,CAAmBsE,QAAQ,CAACwB,eAAAA,CAAAA;AAEtD,YAAA,IAAIC,gBAAAA,EAAkB;AACpB,gBAAA,MAAMC,kBAAAA,GAAqB;AACzBzF,oBAAAA,IAAAA,EAAMuD,eAAeG,eAAe;oBACpC7D,IAAAA,EAAM,UAAA;oBACN8D,QAAAA,EAAUjE,mBAAAA,CAAoB6D,eAAeI,QAAQ,CAAA;AACrDD,oBAAAA,eAAAA,EAAiBH,eAAevD,IAAI;AACpCyD,oBAAAA,MAAAA,EAAQ5D,KAAKsC,GAAG;AAChB8B,oBAAAA,OAAAA,EAASjD,iBAAAA,CAAkBiD,OAAO,IAAIV,cAAAA,CAAeU,OAAO;AAC5Df,oBAAAA,aAAAA,EAAelC,iBAAAA,CAAkBkC,aAAa,IAAIK,cAAAA,CAAeL,aAAa;oBAC9E5C,MAAAA,EAAQ;AACV,iBAAA;;gBAGA,IAAIgF,4BAAAA,KAAiC,EAAC,IAAKF,cAAAA,CAAejD,GAAG,KAAKkD,SAAAA,CAAUlD,GAAG,EAAE;;AAE/Eb,oBAAAA,kBAAAA,CAAmB+D,WAAWC,4BAAAA,EAA8BG,kBAAAA,CAAAA;gBAC9D,CAAA,MAAO;AACLxE,oBAAAA,aAAAA,CAAcoE,SAAAA,EAAW;AACvB,wBAAA,GAAGI,kBAAkB;wBACrBnF,MAAAA,EAAQ;AACV,qBAAA,CAAA;AACF,gBAAA;AACF,YAAA;AACF,QAAA,CAAA;AACAoF,QAAAA,wBAAAA,EAA0B,CAACxF,KAAAA,EAAO8B,MAAAA,GAAAA;YAChC,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAEJ,IAAI,EAAEuD,cAAc,EAAE,GAAGvB,MAAAA,CAAOC,OAAO;AAErE,YAAA,MAAM0D,oBAAAA,GAAuB3F,IAAAA;YAC7B,MAAMH,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM+E,qBAAAA,GAAwBvF,mBAAmBC,IAAAA,EAAM8F,oBAAAA,CAAAA;AAEvD7E,YAAAA,cAAAA,CAAejB,MAAMsF,qBAAAA,EAAuB5B,cAAAA,CAAAA;AAC9C,QAAA,CAAA;QACAqC,YAAAA,EAAc,IAAA;YACZ,OAAO5G,YAAAA;AACT,QAAA,CAAA;AACA6G,QAAAA,8BAAAA,EAAgC,CAC9B3F,KAAAA,EACA8B,MAAAA,GAAAA;YAEA,MAAM,EAAE8D,MAAM,EAAEC,sBAAsB,EAAE5F,SAAS,EAAEC,SAAS,EAAE,GAAG4B,MAAAA,CAAOC,OAAO;YAE/E,MAAMpC,IAAAA,GACJM,SAAAA,KAAc,aAAA,GAAgBD,KAAAA,CAAMhB,YAAY,CAACkB,SAAAA,CAAU,GAAGF,KAAAA,CAAMjB,UAAU,CAACmB,SAAAA,CAAU;AAE3F,YAAA,IAAI,CAACP,IAAAA,EAAM;AACT,gBAAA;AACF,YAAA;YAEA,MAAM6E,gBAAAA,GAAmB9E,mBAAmBC,IAAAA,EAAMiG,MAAAA,CAAAA;AAClD,YAAA,MAAM1E,IAAAA,GAAOvB,IAAAA,CAAKN,UAAU,CAACmF,gBAAAA,CAAiB;AAE9CrE,YAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAChBa,YAAAA,kBAAAA,CAAmBU,IAAAA,EAAM,SAAA,CAAA;AACzBA,YAAAA,IAAAA,CAAKnC,UAAU,CAACoC,MAAM,CAAC0E,sBAAAA,EAAwB,CAAA,CAAA;AACjD,QAAA,CAAA;AACAC,QAAAA,WAAAA,EAAa,CAAC9F,KAAAA,EAAO8B,MAAAA,GAAAA;YACnB,MAAM,EAAE7B,SAAS,EAAEC,SAAS,EAAE6F,qBAAqB,EAAE,GAAGjE,MAAAA,CAAOC,OAAO;YAEtE,MAAMpC,IAAAA,GAAOI,QAAQC,KAAAA,EAAO;AAAEC,gBAAAA,SAAAA;AAAWC,gBAAAA;AAAU,aAAA,CAAA;YAEnD,MAAM8F,sBAAAA,GAAyBtG,mBAAmBC,IAAAA,EAAMoG,qBAAAA,CAAAA;AACxD,YAAA,MAAMtF,SAAAA,GAAYd,IAAAA,CAAKN,UAAU,CAAC2G,sBAAAA,CAAuB;YAEzD,IAAIvF,SAAAA,CAAUd,IAAI,KAAK,UAAA,EAAY;gBACjC,MAAM,EAAE4D,MAAM,EAAEE,QAAQ,EAAED,eAAAA,EAAiByC,mBAAmB,EAAE,GAAGxF,SAAAA;gBACnE,MAAMiD,YAAAA,GAAeC,gCAAgBF,QAAAA,EAAUwC,mBAAAA,CAAAA;AAE/C,gBAAA,MAAMX,gBAAAA,GAAmB,CAAC/F,kBAAAA,CAAmBsE,QAAQ,CAACH,YAAAA,CAAAA;AAEtD,gBAAA,IAAI4B,oBAAoBW,mBAAAA,EAAqB;oBAC3C,MAAMC,iBAAAA,GAAoBnG,QAAQC,KAAAA,EAAO;AAAEC,wBAAAA,SAAAA;wBAAWC,SAAAA,EAAWqD;AAAO,qBAAA,CAAA;oBACxE,MAAM4C,oBAAAA,GAAuBzG,mBAAmBwG,iBAAAA,EAAmBD,mBAAAA,CAAAA;AAEnEhF,oBAAAA,iBAAAA,CAAkBiF,iBAAAA,EAAmBC,oBAAAA,CAAAA;AACvC,gBAAA;AACF,YAAA;;AAGAxG,YAAAA,IAAAA,CAAKN,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;gBACvB,IAAIA,SAAAA,CAAUd,IAAI,KAAK,KAAA,EAAO;oBAC5B,IAAIc,SAAAA,CAAU2F,WAAW,KAAKL,qBAAAA,EAAuB;AACnD,wBAAA,OAAOtF,UAAU2F,WAAW;AAC9B,oBAAA;AACF,gBAAA;AACF,YAAA,CAAA,CAAA;AAEAnF,YAAAA,iBAAAA,CAAkBtB,IAAAA,EAAMqG,sBAAAA,CAAAA;AAC1B,QAAA,CAAA;;AAEAK,QAAAA,qBAAAA,EAAuB,CAACrG,KAAAA,EAAO8B,MAAAA,GAAAA;AAC7B,YAAA,MAAM,EAAEN,IAAI,EAAES,GAAG,EAAE,GAAGH,OAAOC,OAAO;AAEpC,YAAA,MAAMpC,IAAAA,GAAOK,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;AAClC,YAAA,IAAI,CAACtC,IAAAA,EAAM;AACT,gBAAA;AACF,YAAA;AAEA4B,YAAAA,UAAAA,CAAW5B,IAAAA,EAAM;gBACf6C,IAAAA,EAAM;AACJF,oBAAAA,WAAAA,EAAad,KAAKc,WAAW;AAC7BG,oBAAAA,IAAAA,EAAMjB,KAAKiB;AACb;AACF,aAAA,CAAA;AACF,QAAA,CAAA;AACA6D,QAAAA,kBAAAA,EAAoB,CAACtG,KAAAA,EAAO8B,MAAAA,GAAAA;AAC1B,YAAA,MAAM,EAAEyE,eAAe,EAAEtE,GAAG,EAAE,GAAGH,OAAOC,OAAO;AAE/C,YAAA,MAAMpC,IAAAA,GAAOK,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;AAClC,YAAA,IAAI,CAACtC,IAAAA,IAAQA,IAAAA,CAAKS,MAAM,KAAK,KAAA,EAAO;AAClC,gBAAA;AACF,YAAA;AAEA,YAAA,IAAImG,oBAAoBtE,GAAAA,EAAK;AAC3B,gBAAA,MAAMuE,OAAAA,GAAU;AAAE,oBAAA,GAAG7G,IAAI;oBAAEsC,GAAAA,EAAKsE;AAAgB,iBAAA;gBAChDvG,KAAAA,CAAMjB,UAAU,CAACwH,eAAAA,CAAgB,GAAGC,OAAAA;gBACpC,OAAOxG,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;;AAG5BwE,gBAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAA,CAAEyF,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,oBAAA,MAAMC,WAAAA,GAAc5G,KAAAA,CAAMhB,YAAY,CAAC2H,cAAAA,CAAe;AAEtDC,oBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;wBAC9B,IAAIA,SAAAA,CAAUd,IAAI,KAAK,aAAA,EAAe;AACpC,4BAAA,MAAMiF,gBAAgBnE,SAAAA,CAAU1B,UAAU,CAAC8H,GAAG,CAAC,CAACC,SAAAA,GAAAA;AAC9C,gCAAA,IAAIA,cAAc7E,GAAAA,EAAK;oCACrB,OAAOsE,eAAAA;AACT,gCAAA;gCAEA,OAAOO,SAAAA;AACT,4BAAA,CAAA,CAAA;AAEArG,4BAAAA,SAAAA,CAAU1B,UAAU,GAAG6F,aAAAA;AACzB,wBAAA;AACF,oBAAA,CAAA,CAAA;AAEAgC,oBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,wBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAAA,CAAUqG,SAAS,KAAK7E,GAAAA,EAAK;AACjExB,4BAAAA,SAAAA,CAAUqG,SAAS,GAAGP,eAAAA;AACxB,wBAAA;AACF,oBAAA,CAAA,CAAA;AACF,gBAAA,CAAA,CAAA;;AAGAE,gBAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAA,CAAE0F,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,oBAAA,MAAMoC,SAAAA,GAAY9G,KAAAA,CAAMjB,UAAU,CAAC2F,YAAAA,CAAa;AAEhDoC,oBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,wBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAAA,CAAUqG,SAAS,KAAK7E,GAAAA,EAAK;AACjExB,4BAAAA,SAAAA,CAAUqG,SAAS,GAAGP,eAAAA;AACxB,wBAAA;AACF,oBAAA,CAAA,CAAA;AACF,gBAAA,CAAA,CAAA;AACF,YAAA;AACF,QAAA,CAAA;AACAQ,QAAAA,YAAAA,EAAc,CAAC/G,KAAAA,EAAO8B,MAAAA,GAAAA;AACpB,YAAA,MAAM,EAAEN,IAAI,EAAES,GAAG,EAAE,GAAGH,OAAOC,OAAO;YAEpC,MAAM,EAAEO,WAAW,EAAEQ,IAAI,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGxB,IAAAA;AAE9D,YAAA,MAAM7B,IAAAA,GAAOK,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;AACpC,YAAA,IAAI,CAACtC,IAAAA,EAAM;AACT,gBAAA;AACF,YAAA;AAEA4B,YAAAA,UAAAA,CAAW5B,IAAAA,EAAM;gBACf6C,IAAAA,EAAM;AACJF,oBAAAA;AACF,iBAAA;AACAQ,gBAAAA,IAAAA;gBACAK,OAAAA,EAAS;AACPJ,oBAAAA;AACF,iBAAA;AACAC,gBAAAA;AACF,aAAA,CAAA;AACF,QAAA,CAAA;AACAgE,QAAAA,eAAAA,EAAiB,CAAChH,KAAAA,EAAO8B,MAAAA,GAAAA;YACvB,MAAMG,GAAAA,GAAMH,OAAOC,OAAO;;AAG1B,YAAA,IAAI/B,MAAMjB,UAAU,CAACkD,IAAI,CAAC7B,MAAM,KAAK,KAAA,EAAO;gBAC1C,OAAOJ,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;YAC9B,CAAA,MAAO;AACL9B,gBAAAA,SAAAA,CAAUH,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI,EAAE,SAAA,CAAA;AACnC,YAAA;;AAGAwE,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAA,CAAEyF,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,gBAAA,MAAMC,WAAAA,GAAc5G,KAAAA,CAAMhB,YAAY,CAAC2H,cAAAA,CAAe;;AAGtDC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;oBAC9B,IAAIA,SAAAA,CAAUd,IAAI,KAAK,aAAA,EAAe;wBACpC,MAAMiF,aAAAA,GAAgBnE,UAAU1B,UAAU,CAACkI,MAAM,CAC/C,CAACH,YAAuBA,SAAAA,KAAc7E,GAAAA,CAAAA;AAGxCxB,wBAAAA,SAAAA,CAAU1B,UAAU,GAAG6F,aAAAA;AACzB,oBAAA;AACF,gBAAA,CAAA,CAAA;AAEAgC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAAA,CAAUqG,SAAS,KAAK7E,GAAAA,EAAK;wBACjEZ,qBAAAA,CAAsBuF,WAAAA,EAAanG,UAAUX,IAAI,CAAA;AACnD,oBAAA;AACF,gBAAA,CAAA,CAAA;AACF,YAAA,CAAA,CAAA;;AAGA2G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAA,CAAE0F,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,gBAAA,MAAMoC,SAAAA,GAAY9G,KAAAA,CAAMjB,UAAU,CAAC2F,YAAAA,CAAa;AAEhDoC,gBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,eAAec,SAAAA,CAAUqG,SAAS,KAAK7E,GAAAA,EAAK;wBACjEZ,qBAAAA,CAAsByF,SAAAA,EAAWrG,UAAUX,IAAI,CAAA;AACjD,oBAAA;AACF,gBAAA,CAAA,CAAA;AACF,YAAA,CAAA,CAAA;AACF,QAAA,CAAA;AACAoH,QAAAA,iBAAAA,EAAmB,CAAClH,KAAAA,EAAO8B,MAAAA,GAAAA;YACzB,MAAMG,GAAAA,GAAMH,OAAOC,OAAO;AAC1B,YAAA,MAAMpC,IAAAA,GAAOK,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;;YAGpC,IAAItC,IAAAA,CAAKS,MAAM,KAAK,KAAA,EAAO;gBACzB,OAAOJ,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;YAChC,CAAA,MAAO;AACL9B,gBAAAA,SAAAA,CAAUR,IAAAA,EAAM,SAAA,CAAA;AAClB,YAAA;;AAGA8G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMjB,UAAU,CAAA,CAAE0F,OAAO,CAAC,CAACC,YAAAA,GAAAA;AACrC,gBAAA,MAAMoC,SAAAA,GAAY9G,KAAAA,CAAMjB,UAAU,CAAC2F,YAAAA,CAAa;AAEhDoC,gBAAAA,SAAAA,CAAUzH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC5B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,cAAcc,SAAAA,CAAU8C,MAAM,KAAKtB,GAAAA,EAAK;wBAC7DZ,qBAAAA,CAAsByF,SAAAA,EAAWrG,UAAUX,IAAI,CAAA;AACjD,oBAAA;AACF,gBAAA,CAAA,CAAA;AACF,YAAA,CAAA,CAAA;;AAGA2G,YAAAA,MAAAA,CAAOC,IAAI,CAAC1G,KAAAA,CAAMhB,YAAY,CAAA,CAAEyF,OAAO,CAAC,CAACkC,cAAAA,GAAAA;AACvC,gBAAA,MAAMC,WAAAA,GAAc5G,KAAAA,CAAMhB,YAAY,CAAC2H,cAAAA,CAAe;AAEtDC,gBAAAA,WAAAA,CAAYvH,UAAU,CAACoF,OAAO,CAAC,CAAChE,SAAAA,GAAAA;AAC9B,oBAAA,IAAIA,UAAUd,IAAI,KAAK,cAAcc,SAAAA,CAAU8C,MAAM,KAAKtB,GAAAA,EAAK;wBAC7DZ,qBAAAA,CAAsBuF,WAAAA,EAAanG,UAAUX,IAAI,CAAA;AACnD,oBAAA;AACF,gBAAA,CAAA,CAAA;AACF,YAAA,CAAA,CAAA;AACF,QAAA,CAAA;QAEAqH,WAAAA,CAAAA,CACEnH,KAAK,EACLoH,aAGE,EAAA;AAEF,YAAA,MAAM,EAAEtF,MAAM,EAAEuF,MAAM,EAAE,GAAGD,cAAcrF,OAAO;YAEhD,OAAQD,MAAAA;gBACN,KAAK,KAAA;AACH,oBAAA;wBACE,MAAMG,GAAAA,GAAMoF,OAAOpF,GAAG;wBAEtB,IAAIoF,MAAAA,CAAO3E,SAAS,KAAK,WAAA,EAAa;4BACpC1C,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI,GAAGoF,MAAAA;wBAC1B,CAAA,MAAO;4BACLrH,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI,GAAGoF,MAAAA;AAC5B,wBAAA;AACF,oBAAA;AACA,oBAAA;gBACF,KAAK,QAAA;AACH,oBAAA;wBACE,MAAMpF,GAAAA,GAAMoF,OAAOpF,GAAG;;wBAItB,IAAIoF,MAAAA,CAAO3E,SAAS,KAAK,WAAA,EAAa;AACpC,4BAAA,MAAMoE,SAAAA,GAAY9G,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;4BACvCjC,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI,GAAG;AACtB,gCAAA,GAAGoF,MAAM;AACTjH,gCAAAA,MAAAA,EAAQ0G,SAAAA,EAAW1G,MAAAA,KAAW,KAAA,GAAQ,KAAA,GAAQiH,OAAOjH;AACvD,6BAAA;wBACF,CAAA,MAAO;AACL,4BAAA,MAAMwG,WAAAA,GAAc5G,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;4BAC3CjC,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI,GAAG;AACxB,gCAAA,GAAGoF,MAAM;AACTjH,gCAAAA,MAAAA,EAAQwG,WAAAA,EAAaxG,MAAAA,KAAW,KAAA,GAAQ,KAAA,GAAQiH,OAAOjH;AACzD,6BAAA;AACF,wBAAA;AACF,oBAAA;AACA,oBAAA;gBACF,KAAK,QAAA;AAAU,oBAAA;wBACb,MAAM6B,GAAAA,GAAMoF,OAAOpF,GAAG;wBACtB,MAAMqF,WAAAA,GAAcD,MAAAA,CAAO3E,SAAS,KAAK,WAAA;;AAEzC,wBAAA,IAAI4E,WAAAA,EAAa;AACf,4BAAA,MAAMC,MAAAA,GAASvH,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;AACpC,4BAAA,IAAI,CAACsF,MAAAA,EAAQ;AACX,gCAAA;AACF,4BAAA;AAEA,4BAAA,MAAMC,YAAYxH,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI,EAAE7B,MAAAA,KAAW,KAAA;AACpD,4BAAA,IAAIoH,SAAAA,EAAW;gCACb,OAAOxH,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI;4BAC9B,CAAA,MAAO;AACLjC,gCAAAA,KAAAA,CAAMjB,UAAU,CAACkD,GAAAA,CAAI,CAAC7B,MAAM,GAAG,SAAA;AACjC,4BAAA;wBACF,CAAA,MAAO;AACL,4BAAA,MAAMmH,MAAAA,GAASvH,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;AACtC,4BAAA,IAAI,CAACsF,MAAAA,EAAQ;AACX,gCAAA;AACF,4BAAA;AAEA,4BAAA,MAAMC,YAAYxH,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI,EAAE7B,MAAAA,KAAW,KAAA;AACtD,4BAAA,IAAIoH,SAAAA,EAAW;gCACb,OAAOxH,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI;4BAChC,CAAA,MAAO;AACLjC,gCAAAA,KAAAA,CAAMhB,YAAY,CAACiD,GAAAA,CAAI,CAAC7B,MAAM,GAAG,SAAA;AACnC,4BAAA;AACF,wBAAA;AAEA,wBAAA;AACF,oBAAA;AACF;AACF,QAAA;AACF;AACF,CAAA,EAEA;IACEqH,KAAAA,EAAO,EAAA;IACPC,yBAAAA,EAA2B;AAAC,QAAA,cAAA;AAAgB,QAAA;AAAO,KAAA;AACnDC,IAAAA,aAAAA,EAAe,CAAC3H,KAAAA,GAAAA;AACd,QAAA,IAAI,CAACA,KAAAA,EAAO;AACV,YAAA,OAAO,EAAC;AACV,QAAA;QAEA,OAAO;AACLjB,YAAAA,UAAAA,EAAYiB,MAAMjB,UAAU;AAC5BC,YAAAA,YAAAA,EAAcgB,MAAMhB;AACtB,SAAA;AACF,IAAA,CAAA;AACA4I,IAAAA,OAAAA,EAAS,CAAC5H,KAAAA,GAAAA;QACRA,KAAAA,CAAMjB,UAAU,GAAGiB,KAAAA,CAAMf,iBAAiB;QAC1Ce,KAAAA,CAAMhB,YAAY,GAAGgB,KAAAA,CAAMd,mBAAmB;AAChD,IAAA;AACF,CAAA,CAAA;MAIW,EAAE2I,OAAO,EAAEC,OAAO,EAAE,GAAGpG;;;;;;"}