@strapi/content-type-builder 5.12.7 → 5.13.0-beta.1
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.
- package/dist/admin/components/AttributeIcon.js +1 -0
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -0
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
- package/dist/admin/components/AttributeRow.js +342 -0
- package/dist/admin/components/AttributeRow.js.map +1 -0
- package/dist/admin/components/AttributeRow.mjs +339 -0
- package/dist/admin/components/AttributeRow.mjs.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js +5 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs +5 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js +13 -11
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +13 -11
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ComponentList.js +12 -26
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ComponentList.mjs +12 -26
- package/dist/admin/components/ComponentList.mjs.map +1 -1
- package/dist/admin/components/ComponentRow.js +42 -0
- package/dist/admin/components/ComponentRow.js.map +1 -0
- package/dist/admin/components/ComponentRow.mjs +40 -0
- package/dist/admin/components/ComponentRow.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +253 -70
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +256 -73
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +53 -81
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +54 -82
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js +9 -0
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerContext.mjs +7 -0
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js +344 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +323 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
- package/dist/admin/components/DataManager/reducer.js +546 -0
- package/dist/admin/components/DataManager/reducer.js.map +1 -0
- package/dist/admin/components/DataManager/reducer.mjs +542 -0
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.js +102 -0
- package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
- package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
- package/dist/admin/components/DataManager/useDataManager.js +9 -0
- package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
- package/dist/admin/components/DataManager/useDataManager.mjs +7 -0
- package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.js +128 -0
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs +125 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.js +21 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.js.map +1 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs +18 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +34 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs +31 -0
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js +45 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs +43 -0
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +17 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
- package/dist/admin/components/DisplayedType.js +14 -14
- package/dist/admin/components/DisplayedType.js.map +1 -1
- package/dist/admin/components/DisplayedType.mjs +15 -15
- package/dist/admin/components/DisplayedType.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js +34 -38
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +36 -40
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/ExitPrompt.js +50 -0
- package/dist/admin/components/ExitPrompt.js.map +1 -0
- package/dist/admin/components/ExitPrompt.mjs +48 -0
- package/dist/admin/components/ExitPrompt.mjs.map +1 -0
- package/dist/admin/components/Footers.js +95 -0
- package/dist/admin/components/Footers.js.map +1 -0
- package/dist/admin/components/Footers.mjs +92 -0
- package/dist/admin/components/Footers.mjs.map +1 -0
- package/dist/admin/components/FormModal/FormModal.js +198 -164
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +198 -165
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js +2 -2
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.js +10 -27
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs +10 -27
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/reducer.js +4 -4
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs +4 -4
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.js +9 -14
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs +9 -14
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
- package/dist/admin/components/FormModalEndActions.js +1 -34
- package/dist/admin/components/FormModalEndActions.js.map +1 -1
- package/dist/admin/components/FormModalEndActions.mjs +1 -34
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js +10 -28
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs +10 -28
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +28 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs +7 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +205 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +202 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js +9 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs +7 -0
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +9 -5
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +9 -5
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/List.js +149 -199
- package/dist/admin/components/List.js.map +1 -1
- package/dist/admin/components/List.mjs +151 -202
- package/dist/admin/components/List.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js +3 -2
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs +3 -2
- package/dist/admin/components/Relation/Relation.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +6 -5
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +6 -5
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +19 -21
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +19 -21
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
- package/dist/admin/components/SelectCategory.js +1 -1
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs +1 -1
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js +3 -6
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs +3 -6
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SelectComponents.js +9 -6
- package/dist/admin/components/SelectComponents.js.map +1 -1
- package/dist/admin/components/SelectComponents.mjs +9 -6
- package/dist/admin/components/SelectComponents.mjs.map +1 -1
- package/dist/admin/components/SelectNumber.js +0 -4
- package/dist/admin/components/SelectNumber.js.map +1 -1
- package/dist/admin/components/SelectNumber.mjs +0 -4
- package/dist/admin/components/SelectNumber.mjs.map +1 -1
- package/dist/admin/components/Status.js +73 -0
- package/dist/admin/components/Status.js.map +1 -0
- package/dist/admin/components/Status.mjs +70 -0
- package/dist/admin/components/Status.mjs.map +1 -0
- package/dist/admin/components/TabForm.js +2 -1
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs +2 -1
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/icons/Curve.js +1 -1
- package/dist/admin/icons/Curve.js.map +1 -1
- package/dist/admin/icons/Curve.mjs +1 -1
- package/dist/admin/icons/Curve.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +39 -19
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs +41 -21
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.js +38 -0
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
- package/dist/admin/pages/ListView/EmptyState.mjs +36 -0
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js +26 -17
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +26 -17
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListView.js +105 -158
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.mjs +110 -163
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
- package/dist/admin/reducers.js +3 -4
- package/dist/admin/reducers.js.map +1 -1
- package/dist/admin/reducers.mjs +3 -4
- package/dist/admin/reducers.mjs.map +1 -1
- package/dist/admin/src/components/AttributeRow.d.ts +28 -0
- package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +2 -2
- package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +5 -1
- package/dist/admin/src/components/ComponentList.d.ts +4 -6
- package/dist/admin/src/components/ComponentRow.d.ts +11 -0
- package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +29 -14
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +138 -0
- package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
- package/dist/admin/src/components/DataManager/reducer.d.ts +278 -0
- package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
- package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
- package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +311 -0
- package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +3 -0
- package/dist/admin/src/components/DataManager/utils/retrieveComponentsThatHaveComponents.d.ts +12 -0
- package/dist/admin/src/components/DataManager/utils/retrieveNestedComponents.d.ts +8 -0
- package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +1 -0
- package/dist/admin/src/components/DisplayedType.d.ts +2 -1
- package/dist/admin/src/components/DynamicZoneList.d.ts +8 -5
- package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
- package/dist/admin/src/components/Footers.d.ts +13 -0
- package/dist/admin/src/components/FormModal/forms/forms.d.ts +2 -38
- package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +3 -2
- package/dist/admin/src/components/FormModal/reducer.d.ts +10 -4
- package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +4 -4
- package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +1 -1
- package/dist/admin/src/components/FormModalEndActions.d.ts +1 -5
- package/dist/admin/src/components/FormModalHeader.d.ts +10 -7
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +54 -0
- package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
- package/dist/admin/src/components/FormModalSubHeader.d.ts +3 -3
- package/dist/admin/src/components/GenericInputs.d.ts +2 -1
- package/dist/admin/src/components/List.d.ts +16 -13
- package/dist/admin/src/components/Relation/Relation.d.ts +2 -1
- package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +2 -1
- package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +3 -2
- package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +2 -1
- package/dist/admin/src/components/SelectComponents.d.ts +3 -1
- package/dist/admin/src/components/SelectNumber.d.ts +1 -7
- package/dist/admin/src/components/Status.d.ts +6 -0
- package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
- package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +3 -4
- package/dist/admin/src/pages/ListView/ListView.d.ts +1 -1
- package/dist/admin/src/reducers.d.ts +2 -8
- package/dist/admin/src/types.d.ts +40 -43
- package/dist/admin/src/utils/findAttribute.d.ts +2 -2
- package/dist/admin/src/utils/formAPI.d.ts +43 -1
- package/dist/admin/src/utils/getMaxDepth.d.ts +2 -2
- package/dist/admin/src/utils/getRelationType.d.ts +1 -1
- package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
- package/dist/admin/translations/de.json.js +0 -1
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +0 -1
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/admin/translations/dk.json.js +0 -1
- package/dist/admin/translations/dk.json.js.map +1 -1
- package/dist/admin/translations/dk.json.mjs +0 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +4 -2
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +4 -2
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +0 -1
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +0 -1
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/ko.json.js +0 -1
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +0 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +0 -1
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +0 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/translations/pt-BR.json.js +0 -1
- package/dist/admin/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/translations/pt-BR.json.mjs +0 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +0 -1
- package/dist/admin/translations/sv.json.js.map +1 -1
- package/dist/admin/translations/sv.json.mjs +0 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -1
- package/dist/admin/translations/tr.json.js +0 -1
- package/dist/admin/translations/tr.json.js.map +1 -1
- package/dist/admin/translations/tr.json.mjs +0 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -1
- package/dist/admin/translations/zh.json.js +0 -1
- package/dist/admin/translations/zh.json.js.map +1 -1
- package/dist/admin/translations/zh.json.mjs +0 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -1
- package/dist/admin/utils/findAttribute.js.map +1 -1
- package/dist/admin/utils/findAttribute.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js +0 -1
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs +0 -1
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +3 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/schema.js +55 -0
- package/dist/server/controllers/schema.js.map +1 -0
- package/dist/server/controllers/schema.mjs +53 -0
- package/dist/server/controllers/schema.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +2 -0
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +2 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/content-type.js.map +1 -1
- package/dist/server/controllers/validation/content-type.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js +612 -0
- package/dist/server/controllers/validation/schema.js.map +1 -0
- package/dist/server/controllers/validation/schema.mjs +610 -0
- package/dist/server/controllers/validation/schema.mjs.map +1 -0
- package/dist/server/routes/admin.js +51 -0
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +51 -0
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js +12 -2
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs +12 -2
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js +43 -28
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.mjs +43 -28
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/index.js +51 -49
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/index.mjs +51 -49
- package/dist/server/services/schema-builder/index.mjs.map +1 -1
- package/dist/server/services/schema.js +246 -0
- package/dist/server/services/schema.js.map +1 -0
- package/dist/server/services/schema.mjs +242 -0
- package/dist/server/services/schema.mjs.map +1 -0
- package/dist/server/src/controllers/index.d.ts +5 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/schema.d.ts +8 -0
- package/dist/server/src/controllers/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/common.d.ts +1 -0
- package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts +3 -2
- package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +80968 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +6 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/component-builder.d.ts +1 -0
- package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts +2 -3
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/index.d.ts +3 -0
- package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +2756 -0
- package/dist/server/src/services/schema.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/package.json +11 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormModal.js","sources":["../../../../admin/src/components/FormModal/FormModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp, useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\nimport toLower from 'lodash/toLower';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDataManager } from '../../hooks/useDataManager';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { forms } from './forms/forms';\nimport { actions } from './reducer';\nimport { makeSelectFormModal } from './selectors';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { CustomFieldAttributeParams } from '../../contexts/DataManagerContext';\nimport type { AttributeType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\n/* eslint-disable indent */\n/* eslint-disable react/no-array-index-key */\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const formModalSelector = React.useMemo(makeSelectFormModal, []);\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector((state) => formModalSelector(state), shallowEqual);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const {\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n submitData,\n modifiedData: allDataSchema,\n nestedComponents,\n setModifiedData,\n sortedContentTypesList,\n updateSchema,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const pathToSchema =\n forTarget === 'contentType' || forTarget === 'component' ? [forTarget] : [forTarget, targetUid];\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n // Reset all the modification when opening the edit category modal\n if (modalType === 'editCategory') {\n setModifiedData();\n }\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n const pathToAttributes = [...pathToSchema, 'schema', 'attributes'];\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(allDataSchema, pathToAttributes, []), dynamicZoneTarget) || null;\n\n // Edit category\n if (modalType === 'editCategory' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n name: categoryName,\n },\n })\n );\n }\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n const { displayName, draftAndPublish, kind, pluginOptions, pluralName, singularName } = get(\n allDataSchema,\n [...pathToSchema, 'schema'],\n {\n displayName: null,\n pluginOptions: {},\n singularName: null,\n pluralName: null,\n }\n );\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName,\n draftAndPublish,\n kind,\n pluginOptions,\n pluralName,\n singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n const data = get(allDataSchema, pathToSchema, {});\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: data.schema.displayName,\n category: data.category,\n icon: data.schema.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(allDataSchema, pathToAttributes, []),\n attributeName\n ) as AttributeType;\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: customField!,\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n // forTarget,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n actionType,\n attributeName,\n attributeType,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n isOpen,\n modalType,\n ]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isEditingCategory = modalType === 'editCategory';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.displayName || '');\n const attributes = get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n get(allDataSchema, [...pathToSchema, 'uid'], null),\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n get(allDataSchema, [...pathToSchema, 'uid'], null)\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const type = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes = [];\n\n if (type === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'schema', 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n get(allDataSchema, pathToSchema, {}),\n type,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else if (isEditingCategory) {\n schema = forms.editCategory.schema(allComponentsCategories, initialData);\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n try {\n await checkFormValidity();\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n const ctTargetUid = forTarget === 'components' ? targetUid : uid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({ ...modifiedData, kind }, modalType, uid);\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(allDataSchema, modifiedData)) {\n onCloseModal();\n\n await submitData(modifiedData);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createSchema(rest, 'component', componentUid, category);\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: componentUid,\n });\n } else {\n updateSchema(modifiedData, modalType, targetUid as Internal.UID.Component);\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isEditingCategory) {\n if (toLower(initialData.name) === toLower(modifiedData.name)) {\n // Close the modal\n onCloseModal();\n\n return;\n }\n\n editCategory(initialData.name, modifiedData);\n\n return;\n // Add/edit a field to a content type\n // Add/edit a field to a created component (the end modal is not step 2)\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate: CustomFieldAttributeParams = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n initialAttribute: initialData,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(actions.resetPropsAndSetFormForAddingAnExistingCompo({}));\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n addAttribute(\n modifiedData,\n forTarget,\n targetUid,\n // This change the dispatched type\n // either 'editAttribute' or 'addAttribute' in the DataManagerProvider\n actionType === 'edit',\n // This is for the edit part\n initialData,\n // Passing true will add the component to the components object\n // This way we can add fields to the added component (if it wasn't there already)\n true\n );\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(actions.resetPropsAndSaveCurrentData({}));\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, type, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the field to the schema\n addAttribute(modifiedData, forTarget, targetUid, false);\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone(dynamicZoneTarget, [componentUid]);\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents(dynamicZoneTarget, modifiedData.components);\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: any) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'editCategory') {\n return true;\n }\n\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent =\n forTarget === 'components' || forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(allDataSchema, [...pathToSchema, 'schema', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'schema', 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n categoryName={categoryName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={handleClosed}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteCategory={deleteCategory}\n deleteContentType={deleteData}\n deleteComponent={deleteData}\n categoryName={initialData.name}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isEditingCategory={modalType === 'editCategory'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditCategory={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["FormComponent","styled","form","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","actionType","attributeName","attributeType","customFieldUid","categoryName","dynamicZoneTarget","forTarget","modalType","isOpen","kind","step","targetUid","showBackLink","activeTab","setActiveTab","useFormModalNavigation","getPlugin","useStrapiApp","state","getCustomField","customFields","get","customField","formModalSelector","React","useMemo","makeSelectFormModal","dispatch","useDispatch","toggleNotification","useNotification","reducerState","useSelector","shallowEqual","navigate","useNavigate","trackUsage","useTracking","formatMessage","useIntl","ctbPlugin","pluginId","ctbFormsAPI","apis","forms","inputsFromPlugins","components","inputs","addAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","allComponentsCategories","changeDynamicZoneComponents","contentTypes","createSchema","deleteCategory","deleteData","editCategory","editCustomFieldAttribute","submitData","modifiedData","allDataSchema","nestedComponents","setModifiedData","sortedContentTypesList","updateSchema","reservedNames","useDataManager","componentToCreate","formErrors","initialData","isCreatingComponentWhileAddingAField","pathToSchema","useEffect","collectionTypesForRelation","filter","isAllowedContentTypesForRelations","pathToAttributes","foundDynamicZoneTarget","findAttribute","actions","setDataToEdit","data","name","draftAndPublish","displayName","pluginOptions","pluralName","singularName","schema","category","icon","attributeToEdit","createComponent","type","setDynamicZoneDataSchema","attributeToEditNotFormatted","repeatable","set","setCustomFieldDataSchema","isEditing","modifiedDataToSetForEditing","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingContentType","isCreatingComponent","isCreatingAttribute","isCreatingCustomFieldAttribute","isComponentAttribute","isCreating","isCreatingComponentFromAView","isInFirstComponentStep","isEditingCategory","isPickingAttribute","uid","createUid","attributes","checkFormValidity","dataToValidate","contentType","Object","keys","component","schemaAttributes","schemaData","customFieldValidator","options","validator","alreadyTakenTargetContentTypeAttributes","targetContentTypeUID","targetContentTypeAttributes","attrName","targetAttribute","attribute","validate","abortEarly","handleChange","useCallback","target","value","rest","namesThatCanResetToNullValue","val","includes","clonedErrors","assign","min","minLength","setErrors","errors","onChange","split","handleSubmit","e","shouldContinue","preventDefault","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","canEditContentType","message","id","componentUid","createComponentUid","toLower","customFieldAttributeUpdate","attributeToSet","initialAttribute","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","resetPropsAndSaveCurrentData","console","error","err","getYupInnerErrors","handleConfirmClose","confirm","window","defaultMessage","handleClosed","isEqual","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","getAttributesToDisplay","formToDisplay","advanced","sections","base","isAddingAComponentToAnotherComponent","genericInputProps","customInputs","AllowedTypesSelect","BooleanRadioGroup","CheckboxWithNumberField","IconPicker","ContentTypeRadioGroup","CustomRadioGroup","relation","Relation","SelectCategory","SelectComponent","SelectComponents","BooleanDefaultValueSelect","SelectNumber","SelectDateType","DraftAndPublishToggle","PluralName","SingularName","TextareaEnum","mainBoxHeader","naturePickerType","advancedForm","extensions","contentTypeSchema","baseForm","baseFormInputNames","getFormInputNames","advancedFormInputNames","doesBaseFormHasError","some","key","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","every","handleClickFinish","_jsx","Modal","Root","open","onOpenChange","_jsxs","Content","FormModalHeader","contentTypeKind","AttributeOptions","onSubmit","Body","Tabs","variant","onValueChange","hasError","undefined","Flex","justifyContent","FormModalSubHeader","List","Trigger","getTrad","disabled","Divider","marginBottom","direction","alignItems","gap","TabForm","Footer","Button","onClick","FormModalEndActions","deleteContentType","deleteComponent","isAttributeModal","isCustomFieldModal","isComponentToDzModal","isComponentModal","isContentTypeModal","isCreatingDz","isCreatingComponentAttribute","isCreatingComponentInDz","isEditingAttribute","isDzAttribute","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateComponent","onSubmitCreateContentType","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditCategory","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormModal.js","sources":["../../../../admin/src/components/FormModal/FormModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useStrapiApp, useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport pick from 'lodash/pick';\nimport set from 'lodash/set';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { useDataManager } from '../DataManager/useDataManager';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { useFormModalNavigation } from '../FormModalNavigation/useFormModalNavigation';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { forms } from './forms/forms';\nimport { actions, initialState, type State as FormModalState } from './reducer';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { ContentType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nconst selectState = (state: Record<string, unknown>) =>\n (state['content-type-builder_formModal'] || initialState) as FormModalState;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector(selectState, shallowEqual);\n\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const {\n addAttribute,\n editAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n createComponentSchema,\n deleteComponent,\n deleteContentType,\n editCustomFieldAttribute,\n updateSchema,\n nestedComponents,\n sortedContentTypesList,\n updateComponentSchema,\n updateComponentUid,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(type, 'schema.attributes', []), dynamicZoneTarget) || null;\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n draftAndPublish: type.options?.draftAndPublish,\n kind: 'kind' in type && type.kind,\n pluginOptions: type.pluginOptions,\n pluralName: 'pluralName' in type.info && type.info.pluralName,\n singularName: 'singularName' in type.info && type.info.singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: type.info.displayName,\n category: 'category' in type && type.category,\n icon: type.info.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(type, ['attributes'], []),\n attributeName\n );\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!('repeatable' in attributeToEdit) || !attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: pick(customField, ['type', 'options']),\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n uid: type.uid,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n uid: type.uid,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actionType, attributeName, attributeType, dynamicZoneTarget, forTarget, isOpen, modalType]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.displayName || '');\n const attributes = get(type, ['attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n (type?.uid ?? null) as Internal.UID.ContentType,\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n (type?.uid ?? null) as Internal.UID.Component\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(type, ['attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const computedAttrbiuteType = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes: any[] = [];\n\n if (computedAttrbiuteType === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n type,\n computedAttrbiuteType,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n try {\n await checkFormValidity();\n\n dispatch(\n actions.setErrors({\n errors: {},\n })\n );\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n\n const ctTargetUid = targetUid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({\n data: {\n kind,\n displayName: modifiedData.displayName,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n singularName: modifiedData.singularName,\n pluralName: modifiedData.pluralName,\n },\n uid,\n });\n\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n onCloseModal();\n } else {\n // NOTE: we have to assume we have a CT here until we refactor more\n const contentType = type as ContentType;\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(contentType, modifiedData)) {\n onCloseModal();\n\n await updateSchema({\n uid: contentType.uid,\n data: {\n displayName: modifiedData.displayName,\n kind: modifiedData.kind,\n draftAndPublish: modifiedData.draftAndPublish,\n pluginOptions: modifiedData.pluginOptions,\n },\n });\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createComponentSchema({\n data: {\n displayName: rest.displayName,\n icon: rest.icon,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n onCloseModal();\n\n return;\n } else {\n updateComponentSchema({\n data: {\n icon: modifiedData.icon,\n displayName: modifiedData.displayName,\n },\n componentUID: targetUid,\n });\n\n if (type.status === 'NEW') {\n const componentUid = createComponentUid(\n modifiedData.displayName,\n modifiedData.category\n );\n\n updateComponentUid({\n componentUID: targetUid,\n newComponentUID: componentUid,\n });\n\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${modifiedData.category}/${componentUid}`,\n });\n }\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n name: initialData.name,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(\n actions.resetPropsAndSetFormForAddingAnExistingCompo({\n uid: type.uid,\n })\n );\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n if (actionType === 'create') {\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n } else {\n editAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n name: initialData.name,\n });\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(\n actions.resetPropsAndSaveCurrentData({\n uid: type.uid,\n })\n );\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createComponentSchema({\n // Component data\n data: {\n icon: rest.icon,\n displayName: rest.displayName,\n },\n uid: componentUid,\n componentCategory: category,\n });\n\n // Add the field to the schema\n addAttribute({\n attributeToSet: modifiedData,\n forTarget,\n targetUid,\n });\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createComponentSchema({\n data: rest,\n uid: componentUid,\n componentCategory: category,\n });\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n componentsToAdd: [componentUid],\n });\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'component', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents({\n forTarget,\n targetUid,\n dynamicZoneTarget,\n newComponents: modifiedData.components,\n });\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: unknown) {\n if (yup.ValidationError.isError(err)) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n }\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent = forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(type, ['info', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: type || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button\n type=\"button\"\n variant=\"tertiary\"\n onClick={(e) => {\n e.preventDefault();\n handleClosed();\n }}\n >\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteContentType={() => deleteContentType(targetUid as Internal.UID.ContentType)}\n deleteComponent={() => deleteComponent(targetUid as Internal.UID.Component)}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["FormComponent","styled","form","selectState","state","initialState","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","actionType","attributeName","attributeType","customFieldUid","dynamicZoneTarget","forTarget","modalType","isOpen","kind","step","targetUid","showBackLink","activeTab","setActiveTab","useFormModalNavigation","getPlugin","useStrapiApp","getCustomField","customFields","get","customField","dispatch","useDispatch","toggleNotification","useNotification","reducerState","useSelector","shallowEqual","navigate","useNavigate","trackUsage","useTracking","formatMessage","useIntl","ctbPlugin","pluginId","ctbFormsAPI","apis","forms","inputsFromPlugins","components","inputs","addAttribute","editAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","changeDynamicZoneComponents","contentTypes","createSchema","createComponentSchema","deleteComponent","deleteContentType","editCustomFieldAttribute","updateSchema","nestedComponents","sortedContentTypesList","updateComponentSchema","updateComponentUid","reservedNames","useDataManager","componentToCreate","formErrors","initialData","isCreatingComponentWhileAddingAField","modifiedData","type","React","useEffect","collectionTypesForRelation","filter","isAllowedContentTypesForRelations","foundDynamicZoneTarget","findAttribute","actions","setDataToEdit","data","draftAndPublish","displayName","info","options","pluginOptions","pluralName","singularName","category","icon","attributeToEdit","name","createComponent","setDynamicZoneDataSchema","attributeToEditNotFormatted","repeatable","set","setCustomFieldDataSchema","isEditing","modifiedDataToSetForEditing","uid","pick","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingContentType","isCreatingComponent","isCreatingAttribute","isCreatingCustomFieldAttribute","isComponentAttribute","isCreating","isCreatingComponentFromAView","isInFirstComponentStep","isPickingAttribute","createUid","attributes","checkFormValidity","schema","dataToValidate","contentType","Object","keys","component","schemaAttributes","schemaData","customFieldValidator","validator","computedAttrbiuteType","alreadyTakenTargetContentTypeAttributes","targetContentTypeUID","targetContentTypeAttributes","attrName","targetAttribute","attribute","validate","abortEarly","handleChange","useCallback","target","value","rest","namesThatCanResetToNullValue","val","includes","clonedErrors","assign","min","minLength","setErrors","errors","onChange","split","handleSubmit","e","shouldContinue","preventDefault","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","canEditContentType","message","id","componentUid","createComponentUid","componentCategory","componentUID","status","newComponentUID","customFieldAttributeUpdate","attributeToSet","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","resetPropsAndSaveCurrentData","componentsToAdd","newComponents","console","error","err","yup","ValidationError","isError","getYupInnerErrors","handleConfirmClose","confirm","window","defaultMessage","handleClosed","isEqual","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","getAttributesToDisplay","formToDisplay","advanced","sections","base","isAddingAComponentToAnotherComponent","genericInputProps","customInputs","AllowedTypesSelect","BooleanRadioGroup","CheckboxWithNumberField","IconPicker","ContentTypeRadioGroup","CustomRadioGroup","relation","Relation","SelectCategory","SelectComponent","SelectComponents","BooleanDefaultValueSelect","SelectNumber","SelectDateType","DraftAndPublishToggle","PluralName","SingularName","TextareaEnum","mainBoxHeader","naturePickerType","advancedForm","extensions","contentTypeSchema","baseForm","baseFormInputNames","getFormInputNames","advancedFormInputNames","doesBaseFormHasError","some","key","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","every","handleClickFinish","_jsx","Modal","Root","open","onOpenChange","_jsxs","Content","FormModalHeader","contentTypeKind","AttributeOptions","onSubmit","Body","Tabs","variant","onValueChange","hasError","undefined","Flex","justifyContent","FormModalSubHeader","List","Trigger","getTrad","disabled","Divider","marginBottom","direction","alignItems","gap","TabForm","Footer","Button","onClick","FormModalEndActions","isAttributeModal","isCustomFieldModal","isComponentToDzModal","isComponentModal","isContentTypeModal","isCreatingDz","isCreatingComponentAttribute","isCreatingComponentInDz","isEditingAttribute","isDzAttribute","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateComponent","onSubmitCreateContentType","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish"],"mappings":"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"}
|