@strapi/content-type-builder 5.49.0 → 5.50.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/AIChat/Chat.js +2 -4
- package/dist/admin/components/AIChat/Chat.js.map +1 -1
- package/dist/admin/components/AIChat/Chat.mjs +2 -4
- package/dist/admin/components/AIChat/Chat.mjs.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs +1 -1
- package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js +8 -3
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/Messages/Message.mjs +8 -3
- package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.js +8 -2
- package/dist/admin/components/AIChat/lib/aiClient.js.map +1 -1
- package/dist/admin/components/AIChat/lib/aiClient.mjs +8 -2
- package/dist/admin/components/AIChat/lib/aiClient.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js +0 -3
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs +0 -3
- package/dist/admin/components/AIChat/lib/transforms/schemas/fromCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +9 -7
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +9 -7
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +1 -1
- package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -1
- package/dist/admin/components/AttributeIcon.js +1 -1
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -1
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.js +3 -2
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -1
- package/dist/admin/components/BooleanDefaultValueSelect.mjs +3 -2
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -1
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.js +3 -3
- package/dist/admin/components/CTBSession/useCTBTracking.js.map +1 -1
- package/dist/admin/components/CTBSession/useCTBTracking.mjs +3 -3
- package/dist/admin/components/CTBSession/useCTBTracking.mjs.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.js +3 -2
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -1
- package/dist/admin/components/CheckboxWithNumberField.mjs +3 -2
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +160 -162
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +160 -162
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -1
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +6 -5
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +6 -5
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -1
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +16 -4
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +16 -4
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
- package/dist/admin/components/DataManager/reducer.js +2 -2
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.mjs +2 -2
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -1
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -1
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js +91 -71
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +91 -70
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js +20 -17
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +20 -17
- package/dist/admin/components/FormModal/attributes/ConditionForm.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 +1 -1
- 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 +4 -6
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs +4 -6
- 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 +9 -6
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs +9 -6
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +3 -3
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -1
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +3 -3
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +1 -1
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.js +2 -2
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -1
- package/dist/admin/components/FormModal/utils/relations.mjs +2 -2
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js +13 -13
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs +13 -13
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +24 -12
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +24 -12
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -1
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/PluralName.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js +3 -3
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs +3 -3
- 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/SelectCategory.js +6 -0
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs +6 -0
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js +1 -1
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs +1 -1
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SingularName.js.map +1 -1
- package/dist/admin/components/SingularName.mjs.map +1 -1
- package/dist/admin/components/TabForm.js +50 -51
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs +51 -52
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +4 -5
- package/dist/admin/src/components/AIChat/components/Attachments/AttachmentPreview.d.ts +1 -1
- package/dist/admin/src/components/AIChat/components/Dropzone.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/FloatingPanel.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/Input.d.ts +2 -3
- package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +1 -2
- package/dist/admin/src/components/AIChat/components/ResizableTextArea.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/SimpleMenu.d.ts +9 -9
- package/dist/admin/src/components/AIChat/components/icons/FigmaIcon.d.ts +0 -1
- package/dist/admin/src/components/AIChat/components/icons/StopIcon.d.ts +0 -1
- package/dist/admin/src/components/AIChat/hooks/useAIFetch.d.ts +5 -5
- package/dist/admin/src/components/AIChat/lib/aiClient.d.ts +1 -1
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/fromCTB.d.ts +6 -2
- package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +1 -1
- package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +5 -5
- package/dist/admin/src/components/AllowedTypesSelect.d.ts +3 -3
- package/dist/admin/src/components/AttributeOptions/OptionBoxWrapper.d.ts +2 -3
- package/dist/admin/src/components/AttributeRow.d.ts +7 -8
- package/dist/admin/src/components/BooleanDefaultValueSelect.d.ts +3 -3
- package/dist/admin/src/components/BooleanRadioGroup.d.ts +2 -2
- package/dist/admin/src/components/CTBSession/sessionContext.d.ts +0 -1
- package/dist/admin/src/components/CTBSession/useCTBTracking.d.ts +1 -1
- package/dist/admin/src/components/CheckboxWithNumberField.d.ts +6 -4
- package/dist/admin/src/components/ComponentRow.d.ts +6 -7
- package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +0 -1
- package/dist/admin/src/components/ContentTypeRadioGroup.d.ts +3 -2
- package/dist/admin/src/components/CustomRadioGroup/CustomRadioGroup.d.ts +3 -2
- package/dist/admin/src/components/CustomRadioGroup/Styles.d.ts +3 -4
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +13 -12
- package/dist/admin/src/components/DataManager/reducer.d.ts +16 -12
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +64 -64
- package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +9 -3
- package/dist/admin/src/components/DataManager/utils/retrieveSpecificInfoFromComponents.d.ts +2 -1
- package/dist/admin/src/components/DraftAndPublishToggle.d.ts +1 -6
- package/dist/admin/src/components/DynamicZoneList.d.ts +2 -2
- package/dist/admin/src/components/FormModal/attributes/ConditionForm.d.ts +3 -2
- package/dist/admin/src/components/FormModal/attributes/form.d.ts +3 -3
- package/dist/admin/src/components/FormModal/attributes/validation/common.d.ts +4 -2
- package/dist/admin/src/components/FormModal/forms/forms.d.ts +61 -28
- package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +12 -2
- package/dist/admin/src/components/FormModal/reducer.d.ts +104 -32
- package/dist/admin/src/components/FormModal/utils/customFieldDefaultOptionsReducer.d.ts +11 -1
- package/dist/admin/src/components/FormModal/utils/getFormInputNames.d.ts +8 -1
- package/dist/admin/src/components/FormModal/utils/relations.d.ts +2 -2
- package/dist/admin/src/components/FormModalHeader.d.ts +5 -8
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +2 -2
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +17 -2
- package/dist/admin/src/components/GenericInputs.d.ts +12 -7
- package/dist/admin/src/components/IconPicker/IconPicker.d.ts +2 -7
- package/dist/admin/src/components/List.d.ts +2 -3
- package/dist/admin/src/components/PluralName.d.ts +6 -14
- package/dist/admin/src/components/Relation/Relation.d.ts +12 -3
- package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +3 -2
- package/dist/admin/src/components/Relation/RelationNaturePicker/Components.d.ts +6 -7
- package/dist/admin/src/components/SelectCategory.d.ts +3 -12
- package/dist/admin/src/components/SelectComponent.d.ts +8 -7
- package/dist/admin/src/components/SingularName.d.ts +5 -8
- package/dist/admin/src/components/TabForm.d.ts +38 -7
- package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +0 -1
- package/dist/admin/src/types.d.ts +20 -12
- package/dist/admin/src/utils/conditions.d.ts +13 -4
- package/dist/admin/src/utils/formAPI.d.ts +38 -33
- package/dist/admin/src/utils/getRelationType.d.ts +1 -1
- package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
- package/dist/admin/src/utils/parseNumberInputValue.d.ts +1 -0
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/ja.json.js +109 -50
- package/dist/admin/translations/ja.json.js.map +1 -1
- package/dist/admin/translations/ja.json.mjs +109 -50
- package/dist/admin/translations/ja.json.mjs.map +1 -1
- package/dist/admin/utils/conditions.js +38 -28
- package/dist/admin/utils/conditions.js.map +1 -1
- package/dist/admin/utils/conditions.mjs +37 -28
- package/dist/admin/utils/conditions.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js +9 -6
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs +9 -6
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js +3 -0
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs +3 -0
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.js +6 -4
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -1
- package/dist/admin/utils/getYupInnerErrors.mjs +6 -4
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -1
- package/dist/admin/utils/parseNumberInputValue.js +15 -0
- package/dist/admin/utils/parseNumberInputValue.js.map +1 -0
- package/dist/admin/utils/parseNumberInputValue.mjs +13 -0
- package/dist/admin/utils/parseNumberInputValue.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +1 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +1 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/relations.js +1 -1
- package/dist/server/controllers/validation/relations.js.map +1 -1
- package/dist/server/controllers/validation/relations.mjs +1 -1
- package/dist/server/controllers/validation/relations.mjs.map +1 -1
- package/dist/server/controllers/validation/types.js +4 -3
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/controllers/validation/types.mjs +4 -3
- package/dist/server/controllers/validation/types.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/component-category.d.ts +1 -1
- package/dist/server/src/controllers/validation/component.d.ts +1 -1
- package/dist/server/src/controllers/validation/component.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/data-transform.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/model-schema.d.ts +1 -1
- package/dist/server/src/controllers/validation/model-schema.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +1 -1
- package/dist/server/src/controllers/validation/types.d.ts.map +1 -1
- package/dist/server/src/middlewares/is-development-mode.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/services/builder.d.ts.map +1 -1
- package/dist/server/src/services/component-categories.d.ts.map +1 -1
- package/dist/server/src/services/components.d.ts.map +1 -1
- package/dist/server/src/services/content-types.d.ts +1 -1
- package/dist/server/src/services/content-types.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/component-builder.d.ts +12 -12
- 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 +14 -14
- 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 +27 -27
- package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/schema-handler.d.ts +12 -12
- package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +66 -66
- package/dist/server/src/services/schema.d.ts.map +1 -1
- package/dist/server/src/utils/attributes.d.ts +2 -2
- package/dist/server/src/utils/attributes.d.ts.map +1 -1
- package/dist/server/src/utils/helpers.d.ts.map +1 -1
- package/dist/server/src/utils/typeguards.d.ts.map +1 -1
- package/package.json +13 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { ContentType } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport type SchemaParams = {\n schemaAttributes: any;\n attributeType: keyof typeof attributeTypes;\n customFieldValidator: any;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: any;\n ctbFormsAPI: any;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: any;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string;\n attributes: any;\n extensions: any;\n forTarget: string;\n};\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: any) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: any) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n });\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: any,\n attributeType: keyof typeof attributeTypes,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: any;\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data, step).sections;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n });\n\n let injected = false;\n\n const sections = baseForm.reduce((acc: Array<any>, current: any) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data, step, attributes);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: any;\n },\n extensions: any,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType: any) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: any) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: any) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: any;\n },\n isEditing = false,\n components: Record<string, any>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components).map((component: any) => {\n return component?.collectionName;\n });\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: any) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms.js","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { Component, ContentType } from '../../../types';\nimport type { FormAPI } from '../../../utils/formAPI';\nimport type { FormModalData } from '../reducer';\nimport type { Internal } from '@strapi/types';\n\ntype AttributeType = keyof typeof attributeTypes;\ntype CustomFieldFormOptions = Parameters<typeof addItemsToFormSection>[0];\ntype CustomFieldValidator = Parameters<FormAPI['makeCustomFieldValidator']>[1];\ntype FormSection = FormTypeOptions[number];\ntype FormItem = FormSection['items'][number];\n\ntype CustomField = {\n type: AttributeType;\n options?: {\n base?: CustomFieldFormOptions;\n advanced?: CustomFieldFormOptions;\n validator?: CustomFieldValidator;\n };\n};\n\nexport type SchemaParams = {\n schemaAttributes: Attribute[];\n attributeType: AttributeType;\n customFieldValidator: CustomFieldValidator;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: SchemaData;\n ctbFormsAPI: FormAPI;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: FormModalData;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string | null;\n attributes: Attribute[];\n extensions: FormAPI;\n forTarget: string;\n};\n\ntype CustomFieldFormParams = {\n customField: CustomField;\n data?: FormModalData;\n step?: string | null;\n extensions: FormAPI;\n} & Record<string, unknown>;\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: Pick<CustomFieldFormParams, 'customField'>) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: CustomFieldFormParams) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n }) as FormItem[] | undefined;\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs !== undefined) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: { attributes?: Attribute[] } | null | undefined,\n attributeType: AttributeType,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: FormAPI['makeValidator'];\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options as never\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data as never, step ?? '')\n .sections as FormTypeOptions;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n }) as FormItem[];\n\n let injected = false;\n\n const sections = baseForm.reduce<FormTypeOptions>((acc, current) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data as never, step ?? '', attributes as never);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: string[];\n },\n extensions: FormAPI,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: { actionType?: string }) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: { extensions: FormAPI }) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: string[];\n },\n isEditing = false,\n components: Record<Internal.UID.Component, Component>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components)\n .map((component) => component?.collectionName)\n .filter((collectionName): collectionName is string => collectionName !== undefined);\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: { data: FormModalData }) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","undefined","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":"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"}
|
|
@@ -86,7 +86,7 @@ const forms = {
|
|
|
86
86
|
if (customField.options?.advanced) {
|
|
87
87
|
addItemsToFormSection(customField.options.advanced, sections);
|
|
88
88
|
}
|
|
89
|
-
if (injectedInputs) {
|
|
89
|
+
if (injectedInputs !== undefined) {
|
|
90
90
|
const extendedSettings = {
|
|
91
91
|
sectionTitle: {
|
|
92
92
|
id: getTrad('modalForm.custom-fields.advanced.settings.extended'),
|
|
@@ -121,7 +121,7 @@ const forms = {
|
|
|
121
121
|
form: {
|
|
122
122
|
advanced ({ data, type, step, extensions, ...rest }) {
|
|
123
123
|
try {
|
|
124
|
-
const baseForm = attributesForm.advanced[type](data, step).sections;
|
|
124
|
+
const baseForm = attributesForm.advanced[type](data, step ?? '').sections;
|
|
125
125
|
const itemsToAdd = extensions.getAdvancedForm([
|
|
126
126
|
'attribute',
|
|
127
127
|
type
|
|
@@ -168,7 +168,7 @@ const forms = {
|
|
|
168
168
|
},
|
|
169
169
|
base ({ data, type, step, attributes }) {
|
|
170
170
|
try {
|
|
171
|
-
return attributesForm.base[type](data, step, attributes);
|
|
171
|
+
return attributesForm.base[type](data, step ?? '', attributes);
|
|
172
172
|
} catch (err) {
|
|
173
173
|
return commonBaseForm;
|
|
174
174
|
}
|
|
@@ -240,9 +240,7 @@ const forms = {
|
|
|
240
240
|
component: {
|
|
241
241
|
schema (alreadyTakenAttributes, componentCategory, reservedNames, isEditing = false, components, componentDisplayName, compoUid = null) {
|
|
242
242
|
const takenNames = isEditing ? alreadyTakenAttributes.filter((uid)=>uid !== compoUid) : alreadyTakenAttributes;
|
|
243
|
-
const collectionNames = Object.values(components).map((component)=>
|
|
244
|
-
return component?.collectionName;
|
|
245
|
-
});
|
|
243
|
+
const collectionNames = Object.values(components).map((component)=>component?.collectionName).filter((collectionName)=>collectionName !== undefined);
|
|
246
244
|
const currentCollectionName = createComponentCollectionName(componentDisplayName, componentCategory);
|
|
247
245
|
const takenCollectionNames = isEditing ? collectionNames.filter((collectionName)=>collectionName !== currentCollectionName) : collectionNames;
|
|
248
246
|
return createComponentSchema(takenNames, reservedNames.models, componentCategory, takenCollectionNames, currentCollectionName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.mjs","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { ContentType } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport type SchemaParams = {\n schemaAttributes: any;\n attributeType: keyof typeof attributeTypes;\n customFieldValidator: any;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: any;\n ctbFormsAPI: any;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: any;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string;\n attributes: any;\n extensions: any;\n forTarget: string;\n};\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: any) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: any) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n });\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: any,\n attributeType: keyof typeof attributeTypes,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: any;\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data, step).sections;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n });\n\n let injected = false;\n\n const sections = baseForm.reduce((acc: Array<any>, current: any) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data, step, attributes);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: any;\n },\n extensions: any,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType: any) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: any) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: any) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: any;\n },\n isEditing = false,\n components: Record<string, any>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components).map((component: any) => {\n return component?.collectionName;\n });\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: any) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forms.mjs","sources":["../../../../../admin/src/components/FormModal/forms/forms.ts"],"sourcesContent":["import { getTrad } from '../../../utils';\nimport { commonBaseForm } from '../attributes/commonBaseForm';\nimport { attributesForm } from '../attributes/form';\nimport { nameField } from '../attributes/nameField';\nimport { attributeTypes } from '../attributes/types';\nimport { componentForm } from '../component/componentForm';\nimport { createComponentSchema } from '../component/createComponentSchema';\nimport { contentTypeForm } from '../contentType/contentTypeForm';\nimport { createContentTypeSchema } from '../contentType/createContentTypeSchema';\nimport { dynamiczoneForm } from '../dynamiczoneForm';\n\nimport { addItemsToFormSection, FormTypeOptions } from './utils/addItemsToFormSection';\nimport { createComponentCollectionName } from './utils/createCollectionName';\nimport { Attribute, getUsedAttributeNames, SchemaData } from './utils/getUsedAttributeNames';\n\nimport type { Component, ContentType } from '../../../types';\nimport type { FormAPI } from '../../../utils/formAPI';\nimport type { FormModalData } from '../reducer';\nimport type { Internal } from '@strapi/types';\n\ntype AttributeType = keyof typeof attributeTypes;\ntype CustomFieldFormOptions = Parameters<typeof addItemsToFormSection>[0];\ntype CustomFieldValidator = Parameters<FormAPI['makeCustomFieldValidator']>[1];\ntype FormSection = FormTypeOptions[number];\ntype FormItem = FormSection['items'][number];\n\ntype CustomField = {\n type: AttributeType;\n options?: {\n base?: CustomFieldFormOptions;\n advanced?: CustomFieldFormOptions;\n validator?: CustomFieldValidator;\n };\n};\n\nexport type SchemaParams = {\n schemaAttributes: Attribute[];\n attributeType: AttributeType;\n customFieldValidator: CustomFieldValidator;\n reservedNames: {\n attributes: Array<string>;\n };\n schemaData: SchemaData;\n ctbFormsAPI: FormAPI;\n};\n\ntype Base<TAttributesFormType extends 'base' | 'advanced'> = {\n data: FormModalData;\n type: keyof (typeof attributesForm)[TAttributesFormType];\n step: string | null;\n attributes: Attribute[];\n extensions: FormAPI;\n forTarget: string;\n};\n\ntype CustomFieldFormParams = {\n customField: CustomField;\n data?: FormModalData;\n step?: string | null;\n extensions: FormAPI;\n} & Record<string, unknown>;\n\nexport const forms = {\n customField: {\n schema({\n schemaAttributes,\n attributeType,\n customFieldValidator,\n reservedNames,\n schemaData,\n ctbFormsAPI,\n }: SchemaParams) {\n const usedAttributeNames = getUsedAttributeNames(schemaAttributes, schemaData);\n\n let attributeShape;\n if (attributeType === 'relation') {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n [],\n { initialData: {}, modifiedData: {} }\n );\n } else {\n attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes\n );\n }\n\n return ctbFormsAPI.makeCustomFieldValidator(\n attributeShape,\n customFieldValidator,\n usedAttributeNames,\n reservedNames.attributes,\n schemaData\n );\n },\n form: {\n base({ customField }: Pick<CustomFieldFormParams, 'customField'>) {\n // Default section with required name field\n const sections: FormTypeOptions = [{ sectionTitle: null, items: [nameField] }];\n\n if (customField.options?.base) {\n addItemsToFormSection(customField.options.base, sections);\n }\n\n return { sections };\n },\n advanced({ customField, data, step, extensions, ...rest }: CustomFieldFormParams) {\n // Default section with no fields\n const sections: FormTypeOptions = [\n { sectionTitle: null, items: [] },\n {\n sectionTitle: { id: 'form.attribute.condition.section', defaultMessage: 'Conditions' },\n items: [\n {\n name: 'conditions',\n type: 'condition-form',\n intlLabel: {\n id: 'form.attribute.condition.label',\n defaultMessage: 'Visibility condition',\n },\n description: {\n id: 'form.attribute.condition.desc',\n defaultMessage: 'Show this field only when a boolean/enum condition matches.',\n },\n },\n ],\n },\n ];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\n customField,\n ...rest,\n }) as FormItem[] | undefined;\n\n if (customField.options?.advanced) {\n addItemsToFormSection(customField.options.advanced, sections);\n }\n\n if (injectedInputs !== undefined) {\n const extendedSettings = {\n sectionTitle: {\n id: getTrad('modalForm.custom-fields.advanced.settings.extended'),\n defaultMessage: 'Extended settings',\n },\n items: injectedInputs,\n };\n\n sections.push(extendedSettings);\n }\n\n return { sections };\n },\n },\n },\n attribute: {\n schema(\n currentSchema: { attributes?: Attribute[] } | null | undefined,\n attributeType: AttributeType,\n reservedNames: {\n attributes: Array<string>;\n },\n alreadyTakenTargetContentTypeAttributes: Array<Attribute>,\n options: SchemaData,\n extensions: {\n makeValidator: FormAPI['makeValidator'];\n }\n ) {\n // Get the attributes object on the schema\n const attributes: Array<Attribute> = currentSchema?.attributes ?? [];\n const usedAttributeNames = getUsedAttributeNames(attributes, options);\n\n try {\n const attributeShape = attributeTypes[attributeType](\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options as never\n );\n\n return extensions.makeValidator(\n ['attribute', attributeType],\n attributeShape,\n usedAttributeNames,\n reservedNames.attributes,\n alreadyTakenTargetContentTypeAttributes,\n options\n );\n } catch (err) {\n console.error('Error yup build schema', err);\n\n return attributeTypes.default(usedAttributeNames, reservedNames.attributes);\n }\n },\n form: {\n advanced({ data, type, step, extensions, ...rest }: Base<'advanced'>) {\n try {\n const baseForm = attributesForm.advanced[type](data as never, step ?? '')\n .sections as FormTypeOptions;\n const itemsToAdd = extensions.getAdvancedForm(['attribute', type], {\n data,\n type,\n step,\n customField: null,\n ...rest,\n }) as FormItem[];\n\n let injected = false;\n\n const sections = baseForm.reduce<FormTypeOptions>((acc, current) => {\n if (current.sectionTitle === null || injected) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\n injected = true;\n }\n\n return acc;\n }, []);\n // IF we want a dedicated section for the plugins\n // const sections = [\n // ...baseForm,\n // {\n // sectionTitle: { id: 'Zone pour plugins', defaultMessage: 'Zone pour plugins' },\n // items: itemsToAdd,\n // },\n // ];\n\n return { sections };\n } catch (err) {\n console.error(err);\n\n return { sections: [] };\n }\n },\n base({ data, type, step, attributes }: Base<'base'>) {\n try {\n return attributesForm.base[type](data as never, step ?? '', attributes as never);\n } catch (err) {\n return commonBaseForm;\n }\n },\n },\n },\n contentType: {\n schema(\n alreadyTakenNames: Array<string>,\n isEditing: boolean,\n ctUid: Internal.UID.ContentType,\n reservedNames: {\n models: string[];\n },\n extensions: FormAPI,\n contentTypes: Record<Internal.UID.ContentType, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.info.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.info?.pluralName ?? '';\n });\n\n const takenNames = isEditing\n ? alreadyTakenNames.filter((uid) => uid !== ctUid)\n : alreadyTakenNames;\n\n const takenSingularNames = isEditing\n ? singularNames.filter((singName) => {\n const { info } = contentTypes[ctUid];\n\n return info.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { info } = contentTypes[ctUid];\n\n return info.pluralName !== pluralName;\n })\n : pluralNames;\n\n // return the array of collection names not all normalized\n const collectionNames = Object.values(contentTypes).map((contentType) => {\n return contentType?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { collectionName: currentCollectionName } = contentTypes[ctUid];\n\n return collectionName !== currentCollectionName;\n })\n : collectionNames;\n\n const contentTypeShape = createContentTypeSchema({\n usedContentTypeNames: takenNames,\n reservedModels: reservedNames.models,\n singularNames: takenSingularNames,\n pluralNames: takenPluralNames,\n collectionNames: takenCollectionNames,\n });\n\n // FIXME\n return extensions.makeValidator(\n ['contentType'],\n contentTypeShape,\n takenNames,\n reservedNames.models,\n takenSingularNames,\n takenPluralNames\n );\n },\n form: {\n base({ actionType }: { actionType?: string }) {\n if (actionType === 'create') {\n return contentTypeForm.base.create();\n }\n\n return contentTypeForm.base.edit();\n },\n advanced({ extensions }: { extensions: FormAPI }) {\n const baseForm = contentTypeForm.advanced\n .default()\n .sections.map((section) => section.items)\n .flat();\n const itemsToAdd = extensions.getAdvancedForm(['contentType']);\n\n return {\n sections: [\n {\n items: [...baseForm, ...itemsToAdd],\n },\n ],\n };\n },\n },\n },\n component: {\n schema(\n alreadyTakenAttributes: Array<Internal.UID.Component>,\n componentCategory: string,\n reservedNames: {\n models: string[];\n },\n isEditing = false,\n components: Record<Internal.UID.Component, Component>,\n componentDisplayName: string,\n compoUid: Internal.UID.Component | null = null\n ) {\n const takenNames = isEditing\n ? alreadyTakenAttributes.filter((uid: Internal.UID.Component) => uid !== compoUid)\n : alreadyTakenAttributes;\n const collectionNames = Object.values(components)\n .map((component) => component?.collectionName)\n .filter((collectionName): collectionName is string => collectionName !== undefined);\n\n const currentCollectionName = createComponentCollectionName(\n componentDisplayName,\n componentCategory\n );\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => collectionName !== currentCollectionName)\n : collectionNames;\n\n return createComponentSchema(\n takenNames,\n reservedNames.models,\n componentCategory,\n takenCollectionNames,\n currentCollectionName\n );\n },\n form: {\n advanced() {\n return {\n sections: componentForm.advanced(),\n };\n },\n base() {\n return {\n sections: componentForm.base(),\n };\n },\n },\n },\n addComponentToDynamicZone: {\n form: {\n advanced() {\n return dynamiczoneForm.advanced.default();\n },\n base({ data }: { data: FormModalData }) {\n const isCreatingComponent = data?.createComponent ?? false;\n\n if (isCreatingComponent) {\n return dynamiczoneForm.base.createComponent();\n }\n\n return dynamiczoneForm.base.default();\n },\n },\n },\n};\n"],"names":["forms","customField","schema","schemaAttributes","attributeType","customFieldValidator","reservedNames","schemaData","ctbFormsAPI","usedAttributeNames","getUsedAttributeNames","attributeShape","attributeTypes","attributes","initialData","modifiedData","makeCustomFieldValidator","form","base","sections","sectionTitle","items","nameField","options","addItemsToFormSection","advanced","data","step","extensions","rest","id","defaultMessage","name","type","intlLabel","description","injectedInputs","getAdvancedForm","undefined","extendedSettings","getTrad","push","attribute","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","err","console","error","default","baseForm","attributesForm","itemsToAdd","injected","reduce","acc","current","commonBaseForm","contentType","alreadyTakenNames","isEditing","ctUid","contentTypes","singularNames","Object","values","map","info","singularName","pluralNames","pluralName","takenNames","filter","uid","takenSingularNames","singName","takenPluralNames","collectionNames","collectionName","takenCollectionNames","currentCollectionName","contentTypeShape","createContentTypeSchema","usedContentTypeNames","reservedModels","models","actionType","contentTypeForm","create","edit","section","flat","component","alreadyTakenAttributes","componentCategory","components","componentDisplayName","compoUid","createComponentCollectionName","createComponentSchema","componentForm","addComponentToDynamicZone","dynamiczoneForm","isCreatingComponent","createComponent"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUsedAttributeNames.js","sources":["../../../../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts"],"sourcesContent":["export type SchemaData = {\n initialData: {\n name?: string;\n targetAttribute?:
|
|
1
|
+
{"version":3,"file":"getUsedAttributeNames.js","sources":["../../../../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts"],"sourcesContent":["export type SchemaData = {\n initialData: {\n name?: string;\n targetAttribute?: string | null;\n [key: string]: unknown;\n };\n modifiedData: {\n createComponent?: boolean;\n enum?: string[];\n name?: string;\n relation?: string;\n repeatable?: boolean;\n targetAttribute?: string | null;\n targetField?: string;\n type?: string;\n [key: string]: unknown;\n };\n};\n\nexport type Attribute = {\n name: string;\n};\n\nexport const getUsedAttributeNames = (\n attributes: Array<Attribute>,\n schemaData: SchemaData\n): Array<string> => {\n return attributes\n .filter(({ name }) => {\n return name !== schemaData.initialData.name;\n })\n .map(({ name }) => name);\n};\n"],"names":["getUsedAttributeNames","attributes","schemaData","filter","name","initialData","map"],"mappings":";;AAuBO,MAAMA,qBAAAA,GAAwB,CACnCC,UAAAA,EACAC,UAAAA,GAAAA;AAEA,IAAA,OAAOD,WACJE,MAAM,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAA;AACf,QAAA,OAAOA,IAAAA,KAASF,UAAAA,CAAWG,WAAW,CAACD,IAAI;AAC7C,IAAA,CAAA,CAAA,CACCE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAKA,IAAAA,CAAAA;AACvB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUsedAttributeNames.mjs","sources":["../../../../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts"],"sourcesContent":["export type SchemaData = {\n initialData: {\n name?: string;\n targetAttribute?:
|
|
1
|
+
{"version":3,"file":"getUsedAttributeNames.mjs","sources":["../../../../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts"],"sourcesContent":["export type SchemaData = {\n initialData: {\n name?: string;\n targetAttribute?: string | null;\n [key: string]: unknown;\n };\n modifiedData: {\n createComponent?: boolean;\n enum?: string[];\n name?: string;\n relation?: string;\n repeatable?: boolean;\n targetAttribute?: string | null;\n targetField?: string;\n type?: string;\n [key: string]: unknown;\n };\n};\n\nexport type Attribute = {\n name: string;\n};\n\nexport const getUsedAttributeNames = (\n attributes: Array<Attribute>,\n schemaData: SchemaData\n): Array<string> => {\n return attributes\n .filter(({ name }) => {\n return name !== schemaData.initialData.name;\n })\n .map(({ name }) => name);\n};\n"],"names":["getUsedAttributeNames","attributes","schemaData","filter","name","initialData","map"],"mappings":"AAuBO,MAAMA,qBAAAA,GAAwB,CACnCC,UAAAA,EACAC,UAAAA,GAAAA;AAEA,IAAA,OAAOD,WACJE,MAAM,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAA;AACf,QAAA,OAAOA,IAAAA,KAASF,UAAAA,CAAWG,WAAW,CAACD,IAAI;AAC7C,IAAA,CAAA,CAAA,CACCE,GAAG,CAAC,CAAC,EAAEF,IAAI,EAAE,GAAKA,IAAAA,CAAAA;AACvB;;;;"}
|
|
@@ -30,11 +30,11 @@ const slice = toolkit.createSlice({
|
|
|
30
30
|
onChange: (state, action)=>{
|
|
31
31
|
const { keys, value } = action.payload;
|
|
32
32
|
const obj = state.modifiedData;
|
|
33
|
-
const hasDefaultValue =
|
|
33
|
+
const hasDefaultValue = obj.default !== undefined;
|
|
34
34
|
// There is no need to remove the default key if the default value isn't defined
|
|
35
35
|
if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {
|
|
36
36
|
const previousType = obj.type;
|
|
37
|
-
if (previousType && [
|
|
37
|
+
if (previousType !== undefined && [
|
|
38
38
|
'date',
|
|
39
39
|
'datetime',
|
|
40
40
|
'time'
|
|
@@ -85,7 +85,7 @@ const slice = toolkit.createSlice({
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
let nameToSet;
|
|
88
|
-
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {
|
|
88
|
+
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType !== null) {
|
|
89
89
|
nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(changedRelationType));
|
|
90
90
|
} else {
|
|
91
91
|
nameToSet = pluralize__default.default(snakeCase__default.default(nameToSlug.nameToSlug(selectedContentTypeFriendlyName)), relations.shouldPluralizeName(modifiedData.relation));
|
|
@@ -100,7 +100,7 @@ const slice = toolkit.createSlice({
|
|
|
100
100
|
}
|
|
101
101
|
// Changing the target and the relation is either oneWay or manyWay
|
|
102
102
|
// Case when we need to change the relation to oneWay (ex: admin user)
|
|
103
|
-
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType && [
|
|
103
|
+
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType !== null && [
|
|
104
104
|
'oneWay',
|
|
105
105
|
'manyWay'
|
|
106
106
|
].includes(changedRelationType)) {
|
|
@@ -118,7 +118,7 @@ const slice = toolkit.createSlice({
|
|
|
118
118
|
},
|
|
119
119
|
onChangeRelationType: (state, action)=>{
|
|
120
120
|
const { target: { oneThatIsCreatingARelationWithAnother, value } } = action.payload;
|
|
121
|
-
const currentName = state.modifiedData.name;
|
|
121
|
+
const currentName = state.modifiedData.name ?? '';
|
|
122
122
|
// Switching from oneWay
|
|
123
123
|
if (![
|
|
124
124
|
'oneWay',
|
|
@@ -186,6 +186,9 @@ const slice = toolkit.createSlice({
|
|
|
186
186
|
const { options = {} } = action.payload;
|
|
187
187
|
// This is run when the user has created a new component
|
|
188
188
|
const componentToCreate = state.modifiedData.componentToCreate;
|
|
189
|
+
if (componentToCreate?.displayName === undefined || componentToCreate.category === undefined) {
|
|
190
|
+
return initialState;
|
|
191
|
+
}
|
|
189
192
|
const modifiedData = {
|
|
190
193
|
displayName: componentToCreate.displayName,
|
|
191
194
|
type: 'component',
|
|
@@ -197,7 +200,7 @@ const slice = toolkit.createSlice({
|
|
|
197
200
|
...initialState,
|
|
198
201
|
componentToCreate,
|
|
199
202
|
modifiedData,
|
|
200
|
-
isCreatingComponentWhileAddingAField: state.modifiedData.createComponent
|
|
203
|
+
isCreatingComponentWhileAddingAField: state.modifiedData.createComponent === true
|
|
201
204
|
};
|
|
202
205
|
},
|
|
203
206
|
resetPropsAndSetTheFormForAddingACompoToADz: (state)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/FormModal/reducer.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport set from 'lodash/set';\nimport snakeCase from 'lodash/snakeCase';\nimport pluralize from 'pluralize';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { nameToSlug } from '../../utils/nameToSlug';\n\nimport { createComponentUid } from './utils/createUid';\nimport { customFieldDefaultOptionsReducer } from './utils/customFieldDefaultOptionsReducer';\nimport { shouldPluralizeName, shouldPluralizeTargetAttribute } from './utils/relations';\n\nimport type { Schema, UID } from '@strapi/types';\n\nexport type State = {\n formErrors: Record<string, any>;\n modifiedData: Record<string, any>;\n initialData: Record<string, any>;\n componentToCreate: Record<string, any>;\n isCreatingComponentWhileAddingAField: boolean;\n};\n\nconst initialState: State = {\n formErrors: {},\n modifiedData: {},\n initialData: {},\n componentToCreate: {},\n isCreatingComponentWhileAddingAField: false,\n};\n\ntype OnChangePayload = {\n keys: string[];\n value: any;\n};\n\ntype OnChangeRelationTargetPayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n selectedContentTypeFriendlyName: string;\n targetContentTypeAllowedRelations: Schema.Attribute.RelationKind.Any[] | null;\n value: string;\n };\n};\n\ntype OnChangeRelationTypePayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n value: Schema.Attribute.RelationKind.Any;\n };\n};\n\ntype ResetPropsAndSetFormForAddingAnExistingCompoPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype ResetPropsAndSaveCurrentDataPayload = {\n uid: UID.Schema;\n options?: Record<string, any>;\n};\n\ntype SetDataToEditPayload = {\n data: Record<string, any>;\n};\n\ntype SetAttributeDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n attributeType: string;\n nameToSetForRelation: string;\n targetUid: string;\n step: string | null;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetCustomFieldDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: Record<string, any>;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: Record<string, any>;\n customField: Record<string, any>;\n options?: Record<string, any>;\n uid: UID.Schema;\n };\n\ntype SetDynamicZoneDataSchemaPayload = {\n attributeToEdit: Record<string, any>;\n};\n\ntype SetErrorsPayload = {\n errors: Record<string, any>;\n};\n\nconst slice = createSlice({\n name: 'formModal',\n initialState,\n reducers: {\n onChange: (state, action: PayloadAction<OnChangePayload>) => {\n const { keys, value } = action.payload;\n const obj = state.modifiedData;\n const hasDefaultValue = Boolean(obj.default);\n\n // There is no need to remove the default key if the default value isn't defined\n if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {\n const previousType = obj.type;\n\n if (previousType && ['date', 'datetime', 'time'].includes(previousType)) {\n // return obj.updateIn(keys, () => value).remove('default');\n delete state.modifiedData.default;\n }\n }\n\n set(state, ['modifiedData', ...keys], value);\n },\n onChangeRelationTarget: (state, action: PayloadAction<OnChangeRelationTargetPayload>) => {\n const {\n target: {\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations,\n value,\n },\n } = action.payload;\n // Special case for the admin user...\n let didChangeRelationTypeBecauseOfRestrictedRelation = false;\n let changedRelationType: Schema.Attribute.RelationKind.Any | null = null;\n\n set(state, ['modifiedData', 'target'], value);\n\n const modifiedData = state.modifiedData;\n\n // Don't change the relation type if the allowed relations are not restricted\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false } when BE ready\n if (Array.isArray(targetContentTypeAllowedRelations)) {\n const currentRelationType = getRelationType(\n modifiedData.relation,\n modifiedData.targetAttribute\n );\n\n if (\n currentRelationType &&\n !targetContentTypeAllowedRelations.includes(currentRelationType)\n ) {\n const relationToSet = targetContentTypeAllowedRelations[0];\n didChangeRelationTypeBecauseOfRestrictedRelation = true;\n changedRelationType = relationToSet;\n\n if (relationToSet === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n } else if (relationToSet === 'manyWay') {\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n } else {\n set(state, ['modifiedData', 'relation'], relationToSet);\n }\n }\n }\n\n let nameToSet: string;\n\n if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n shouldPluralizeName(changedRelationType)\n );\n } else {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n\n shouldPluralizeName(modifiedData.relation)\n );\n }\n\n set(state, ['modifiedData', 'name'], nameToSet);\n\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n if (currentTargetAttribute === null) {\n return;\n }\n\n // Changing the target and the relation is either oneWay or manyWay\n // Case when we need to change the relation to oneWay (ex: admin user)\n if (\n didChangeRelationTypeBecauseOfRestrictedRelation &&\n changedRelationType &&\n ['oneWay', 'manyWay'].includes(changedRelationType)\n ) {\n set(state, ['modifiedData', 'targetAttribute'], null);\n\n return;\n }\n\n const targetAttributeToSet = pluralize(\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(modifiedData.relation)\n );\n\n set(state, ['modifiedData', 'targetAttribute'], targetAttributeToSet);\n },\n onChangeRelationType: (state, action: PayloadAction<OnChangeRelationTypePayload>) => {\n const {\n target: { oneThatIsCreatingARelationWithAnother, value },\n } = action.payload;\n\n const currentName = state.modifiedData.name;\n\n // Switching from oneWay\n if (!['oneWay', 'manyWay'].includes(value)) {\n set(state, ['modifiedData', 'relation'], value);\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n set(\n state,\n ['modifiedData', 'name'],\n pluralize(snakeCase(nameToSlug(currentName)), shouldPluralizeName(value))\n );\n\n set(\n state,\n ['modifiedData', 'targetAttribute'],\n pluralize(\n currentTargetAttribute || snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(value)\n )\n );\n\n return;\n }\n\n if (value === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 1));\n\n return;\n }\n\n // manyWay\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 2));\n },\n resetProps: () => {\n return initialState;\n },\n resetPropsAndSetFormForAddingAnExistingCompo: (\n state,\n action: PayloadAction<ResetPropsAndSetFormForAddingAnExistingCompoPayload>\n ) => {\n const { options = {} } = action.payload;\n\n return {\n ...initialState,\n modifiedData: {\n type: 'component',\n repeatable: true,\n ...options,\n },\n };\n },\n resetPropsAndSaveCurrentData: (\n state,\n action: PayloadAction<ResetPropsAndSaveCurrentDataPayload>\n ) => {\n const { options = {} } = action.payload;\n // This is run when the user has created a new component\n const componentToCreate = state.modifiedData.componentToCreate;\n const modifiedData = {\n displayName: componentToCreate.displayName,\n type: 'component',\n repeatable: false,\n ...options,\n component: createComponentUid(componentToCreate.displayName, componentToCreate.category),\n };\n\n return {\n ...initialState,\n componentToCreate,\n modifiedData,\n isCreatingComponentWhileAddingAField: state.modifiedData.createComponent,\n };\n },\n resetPropsAndSetTheFormForAddingACompoToADz: (state) => {\n const createdDZ = state.modifiedData;\n const dataToSet = {\n ...createdDZ,\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n\n return { ...initialState, modifiedData: dataToSet };\n },\n setDataToEdit: (state, action: PayloadAction<SetDataToEditPayload>) => {\n const { data } = action.payload;\n state.modifiedData = data;\n state.initialData = data;\n },\n setAttributeDataSchema: (state, action: PayloadAction<SetAttributeDataSchemaPayload>) => {\n const { isEditing } = action.payload;\n\n if (isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { attributeType, nameToSetForRelation, targetUid, step, options = {} } = action.payload;\n\n let dataToSet;\n\n if (attributeType === 'component') {\n if (step === '1') {\n dataToSet = {\n type: 'component',\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n } else {\n dataToSet = {\n ...options,\n type: 'component',\n repeatable: true,\n };\n }\n } else if (attributeType === 'dynamiczone') {\n dataToSet = {\n ...options,\n type: 'dynamiczone',\n components: [],\n };\n } else if (attributeType === 'text') {\n dataToSet = { ...options, type: 'string' };\n } else if (attributeType === 'number' || attributeType === 'date') {\n dataToSet = options;\n } else if (attributeType === 'media') {\n dataToSet = {\n allowedTypes: ['images', 'files', 'videos', 'audios'],\n type: 'media',\n multiple: true,\n ...options,\n };\n } else if (attributeType === 'enumeration') {\n dataToSet = { ...options, type: 'enumeration', enum: [] };\n } else if (attributeType === 'relation') {\n dataToSet = {\n name: snakeCase(nameToSetForRelation),\n relation: 'oneToOne',\n targetAttribute: null,\n target: targetUid,\n type: 'relation',\n };\n } else {\n dataToSet = { ...options, type: attributeType, default: null };\n }\n\n state.modifiedData = dataToSet;\n },\n setCustomFieldDataSchema: (state, action: PayloadAction<SetCustomFieldDataSchemaPayload>) => {\n const { payload } = action;\n\n if (payload.isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { customField, options = {} } = payload;\n\n state.modifiedData = { ...options, type: customField.type };\n\n const allOptions = [\n ...(customField?.options?.base || []),\n ...(customField?.options?.advanced || []),\n ];\n\n const optionDefaults = allOptions.reduce(customFieldDefaultOptionsReducer, []);\n\n if (optionDefaults.length) {\n optionDefaults.forEach(({ name, defaultValue }: { name: string; defaultValue: string }) =>\n set(state.modifiedData, name, defaultValue)\n );\n }\n },\n setDynamicZoneDataSchema: (state, action: PayloadAction<SetDynamicZoneDataSchemaPayload>) => {\n const { attributeToEdit } = action.payload;\n state.modifiedData = attributeToEdit;\n state.initialData = attributeToEdit;\n },\n setErrors: (state, action: PayloadAction<SetErrorsPayload>) => {\n state.formErrors = action.payload.errors;\n },\n },\n});\n\nexport { initialState };\nexport const { actions, reducer } = slice;\n"],"names":["initialState","formErrors","modifiedData","initialData","componentToCreate","isCreatingComponentWhileAddingAField","slice","createSlice","name","reducers","onChange","state","action","keys","value","payload","obj","hasDefaultValue","Boolean","default","length","includes","previousType","type","set","onChangeRelationTarget","target","oneThatIsCreatingARelationWithAnother","selectedContentTypeFriendlyName","targetContentTypeAllowedRelations","didChangeRelationTypeBecauseOfRestrictedRelation","changedRelationType","Array","isArray","currentRelationType","getRelationType","relation","targetAttribute","relationToSet","nameToSet","pluralize","snakeCase","nameToSlug","shouldPluralizeName","currentTargetAttribute","targetAttributeToSet","shouldPluralizeTargetAttribute","onChangeRelationType","currentName","resetProps","resetPropsAndSetFormForAddingAnExistingCompo","options","repeatable","resetPropsAndSaveCurrentData","displayName","component","createComponentUid","category","createComponent","resetPropsAndSetTheFormForAddingACompoToADz","createdDZ","dataToSet","setDataToEdit","data","setAttributeDataSchema","isEditing","modifiedDataToSetForEditing","attributeType","nameToSetForRelation","targetUid","step","components","allowedTypes","multiple","enum","setCustomFieldDataSchema","customField","allOptions","base","advanced","optionDefaults","reduce","customFieldDefaultOptionsReducer","forEach","defaultValue","setDynamicZoneDataSchema","attributeToEdit","setErrors","errors","actions","reducer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/FormModal/reducer.ts"],"sourcesContent":["import { createSlice, type PayloadAction } from '@reduxjs/toolkit';\nimport set from 'lodash/set';\nimport snakeCase from 'lodash/snakeCase';\nimport pluralize from 'pluralize';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { nameToSlug } from '../../utils/nameToSlug';\n\nimport { createComponentUid } from './utils/createUid';\nimport { customFieldDefaultOptionsReducer } from './utils/customFieldDefaultOptionsReducer';\nimport { shouldPluralizeName, shouldPluralizeTargetAttribute } from './utils/relations';\n\nimport type { Schema, Struct, UID } from '@strapi/types';\nimport type { MessageDescriptor, PrimitiveType } from 'react-intl';\n\ntype FormModalError = MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n};\n\nexport type ComponentToCreateData = Record<string, unknown> & {\n type?: 'component';\n displayName?: string;\n icon?: string;\n category?: string;\n};\n\nexport type FormModalData = Record<string, unknown> & {\n allowedTypes?: string[];\n category?: string;\n component?: UID.Component;\n components?: UID.Component[];\n componentToCreate?: ComponentToCreateData;\n conditions?: unknown;\n createComponent?: boolean;\n default?: unknown;\n displayName?: string;\n draftAndPublish?: boolean;\n enum?: string[];\n icon?: string;\n kind?: Struct.ContentTypeKind;\n multiple?: boolean;\n name?: string;\n options?: object;\n pluralName?: string;\n pluginOptions?: object;\n relation?: Schema.Attribute.RelationKind.Any;\n repeatable?: boolean;\n required?: boolean;\n singularName?: string;\n target?: string | null;\n targetAttribute?: string | null;\n type?: string;\n};\n\ntype CustomFieldOption = {\n items?: CustomFieldOption[];\n name?: string;\n defaultValue?: unknown;\n};\n\ntype CustomField = {\n type: string;\n options?: {\n base?: CustomFieldOption[];\n advanced?: CustomFieldOption[];\n };\n};\n\nexport type State = {\n formErrors: Record<string, FormModalError>;\n modifiedData: FormModalData;\n initialData: FormModalData;\n componentToCreate: ComponentToCreateData;\n isCreatingComponentWhileAddingAField: boolean;\n};\n\nconst initialState: State = {\n formErrors: {},\n modifiedData: {},\n initialData: {},\n componentToCreate: {},\n isCreatingComponentWhileAddingAField: false,\n};\n\ntype OnChangePayload = {\n keys: string[];\n value: unknown;\n};\n\ntype OnChangeRelationTargetPayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n selectedContentTypeFriendlyName: string;\n targetContentTypeAllowedRelations: Schema.Attribute.RelationKind.Any[] | null;\n value: string;\n };\n};\n\ntype OnChangeRelationTypePayload = {\n target: {\n oneThatIsCreatingARelationWithAnother: string;\n value: Schema.Attribute.RelationKind.Any;\n };\n};\n\ntype ResetPropsAndSetFormForAddingAnExistingCompoPayload = {\n uid: UID.Schema;\n options?: Record<string, unknown>;\n};\n\ntype ResetPropsAndSaveCurrentDataPayload = {\n uid: UID.Schema;\n options?: Record<string, unknown>;\n};\n\ntype SetDataToEditPayload = {\n data: FormModalData;\n};\n\ntype SetAttributeDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: FormModalData;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: FormModalData;\n attributeType: string;\n nameToSetForRelation: string;\n targetUid: string;\n step: string | null;\n options?: Record<string, unknown>;\n uid: UID.Schema;\n };\n\ntype SetCustomFieldDataSchemaPayload =\n | {\n isEditing: true;\n modifiedDataToSetForEditing: FormModalData;\n uid: UID.Schema;\n }\n | {\n isEditing: false;\n modifiedDataToSetForEditing: FormModalData;\n customField: CustomField;\n options?: Record<string, unknown>;\n uid: UID.Schema;\n };\n\ntype SetDynamicZoneDataSchemaPayload = {\n attributeToEdit: FormModalData;\n};\n\ntype SetErrorsPayload = {\n errors: Record<string, FormModalError>;\n};\n\nconst slice = createSlice({\n name: 'formModal',\n initialState,\n reducers: {\n onChange: (state, action: PayloadAction<OnChangePayload>) => {\n const { keys, value } = action.payload;\n const obj = state.modifiedData;\n const hasDefaultValue = obj.default !== undefined;\n\n // There is no need to remove the default key if the default value isn't defined\n if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {\n const previousType = obj.type;\n\n if (previousType !== undefined && ['date', 'datetime', 'time'].includes(previousType)) {\n // return obj.updateIn(keys, () => value).remove('default');\n delete state.modifiedData.default;\n }\n }\n\n set(state, ['modifiedData', ...keys], value);\n },\n onChangeRelationTarget: (state, action: PayloadAction<OnChangeRelationTargetPayload>) => {\n const {\n target: {\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations,\n value,\n },\n } = action.payload;\n // Special case for the admin user...\n let didChangeRelationTypeBecauseOfRestrictedRelation = false;\n let changedRelationType: Schema.Attribute.RelationKind.Any | null = null;\n\n set(state, ['modifiedData', 'target'], value);\n\n const modifiedData = state.modifiedData;\n\n // Don't change the relation type if the allowed relations are not restricted\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false } when BE ready\n if (Array.isArray(targetContentTypeAllowedRelations)) {\n const currentRelationType = getRelationType(\n modifiedData.relation,\n modifiedData.targetAttribute\n );\n\n if (\n currentRelationType &&\n !targetContentTypeAllowedRelations.includes(currentRelationType)\n ) {\n const relationToSet = targetContentTypeAllowedRelations[0];\n didChangeRelationTypeBecauseOfRestrictedRelation = true;\n changedRelationType = relationToSet;\n\n if (relationToSet === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n } else if (relationToSet === 'manyWay') {\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n } else {\n set(state, ['modifiedData', 'relation'], relationToSet);\n }\n }\n }\n\n let nameToSet: string;\n\n if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType !== null) {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n shouldPluralizeName(changedRelationType)\n );\n } else {\n nameToSet = pluralize(\n snakeCase(nameToSlug(selectedContentTypeFriendlyName)),\n\n shouldPluralizeName(modifiedData.relation)\n );\n }\n\n set(state, ['modifiedData', 'name'], nameToSet);\n\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n if (currentTargetAttribute === null) {\n return;\n }\n\n // Changing the target and the relation is either oneWay or manyWay\n // Case when we need to change the relation to oneWay (ex: admin user)\n if (\n didChangeRelationTypeBecauseOfRestrictedRelation &&\n changedRelationType !== null &&\n ['oneWay', 'manyWay'].includes(changedRelationType)\n ) {\n set(state, ['modifiedData', 'targetAttribute'], null);\n\n return;\n }\n\n const targetAttributeToSet = pluralize(\n snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(modifiedData.relation)\n );\n\n set(state, ['modifiedData', 'targetAttribute'], targetAttributeToSet);\n },\n onChangeRelationType: (state, action: PayloadAction<OnChangeRelationTypePayload>) => {\n const {\n target: { oneThatIsCreatingARelationWithAnother, value },\n } = action.payload;\n\n const currentName = state.modifiedData.name ?? '';\n\n // Switching from oneWay\n if (!['oneWay', 'manyWay'].includes(value)) {\n set(state, ['modifiedData', 'relation'], value);\n const currentTargetAttribute = state.modifiedData.targetAttribute;\n\n set(\n state,\n ['modifiedData', 'name'],\n pluralize(snakeCase(nameToSlug(currentName)), shouldPluralizeName(value))\n );\n\n set(\n state,\n ['modifiedData', 'targetAttribute'],\n pluralize(\n currentTargetAttribute || snakeCase(nameToSlug(oneThatIsCreatingARelationWithAnother)),\n shouldPluralizeTargetAttribute(value)\n )\n );\n\n return;\n }\n\n if (value === 'oneWay') {\n set(state, ['modifiedData', 'relation'], 'oneToOne');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 1));\n\n return;\n }\n\n // manyWay\n set(state, ['modifiedData', 'relation'], 'oneToMany');\n set(state, ['modifiedData', 'targetAttribute'], null);\n set(state, ['modifiedData', 'name'], pluralize(snakeCase(currentName), 2));\n },\n resetProps: () => {\n return initialState;\n },\n resetPropsAndSetFormForAddingAnExistingCompo: (\n state,\n action: PayloadAction<ResetPropsAndSetFormForAddingAnExistingCompoPayload>\n ) => {\n const { options = {} } = action.payload;\n\n return {\n ...initialState,\n modifiedData: {\n type: 'component',\n repeatable: true,\n ...options,\n },\n };\n },\n resetPropsAndSaveCurrentData: (\n state,\n action: PayloadAction<ResetPropsAndSaveCurrentDataPayload>\n ) => {\n const { options = {} } = action.payload;\n // This is run when the user has created a new component\n const componentToCreate = state.modifiedData.componentToCreate;\n\n if (\n componentToCreate?.displayName === undefined ||\n componentToCreate.category === undefined\n ) {\n return initialState;\n }\n\n const modifiedData = {\n displayName: componentToCreate.displayName,\n type: 'component',\n repeatable: false,\n ...options,\n component: createComponentUid(componentToCreate.displayName, componentToCreate.category),\n };\n\n return {\n ...initialState,\n componentToCreate,\n modifiedData,\n isCreatingComponentWhileAddingAField: state.modifiedData.createComponent === true,\n };\n },\n resetPropsAndSetTheFormForAddingACompoToADz: (state) => {\n const createdDZ = state.modifiedData;\n const dataToSet = {\n ...createdDZ,\n createComponent: true,\n componentToCreate: { type: 'component' as const },\n };\n\n return { ...initialState, modifiedData: dataToSet };\n },\n setDataToEdit: (state, action: PayloadAction<SetDataToEditPayload>) => {\n const { data } = action.payload;\n state.modifiedData = data;\n state.initialData = data;\n },\n setAttributeDataSchema: (state, action: PayloadAction<SetAttributeDataSchemaPayload>) => {\n const { isEditing } = action.payload;\n\n if (isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { attributeType, nameToSetForRelation, targetUid, step, options = {} } = action.payload;\n\n let dataToSet;\n\n if (attributeType === 'component') {\n if (step === '1') {\n dataToSet = {\n type: 'component',\n createComponent: true,\n componentToCreate: { type: 'component' },\n };\n } else {\n dataToSet = {\n ...options,\n type: 'component',\n repeatable: true,\n };\n }\n } else if (attributeType === 'dynamiczone') {\n dataToSet = {\n ...options,\n type: 'dynamiczone',\n components: [],\n };\n } else if (attributeType === 'text') {\n dataToSet = { ...options, type: 'string' };\n } else if (attributeType === 'number' || attributeType === 'date') {\n dataToSet = options;\n } else if (attributeType === 'media') {\n dataToSet = {\n allowedTypes: ['images', 'files', 'videos', 'audios'],\n type: 'media',\n multiple: true,\n ...options,\n };\n } else if (attributeType === 'enumeration') {\n dataToSet = { ...options, type: 'enumeration', enum: [] };\n } else if (attributeType === 'relation') {\n dataToSet = {\n name: snakeCase(nameToSetForRelation),\n relation: 'oneToOne',\n targetAttribute: null,\n target: targetUid,\n type: 'relation',\n };\n } else {\n dataToSet = { ...options, type: attributeType, default: null };\n }\n\n state.modifiedData = dataToSet;\n },\n setCustomFieldDataSchema: (state, action: PayloadAction<SetCustomFieldDataSchemaPayload>) => {\n const { payload } = action;\n\n if (payload.isEditing === true) {\n const { modifiedDataToSetForEditing } = action.payload;\n state.modifiedData = modifiedDataToSetForEditing;\n state.initialData = modifiedDataToSetForEditing;\n\n return;\n }\n\n const { customField, options = {} } = payload;\n\n state.modifiedData = { ...options, type: customField.type };\n\n const allOptions = [\n ...(customField?.options?.base || []),\n ...(customField?.options?.advanced || []),\n ];\n\n const optionDefaults = allOptions.reduce(customFieldDefaultOptionsReducer, []);\n\n if (optionDefaults.length) {\n optionDefaults.forEach(({ name, defaultValue }) =>\n set(state.modifiedData, name, defaultValue)\n );\n }\n },\n setDynamicZoneDataSchema: (state, action: PayloadAction<SetDynamicZoneDataSchemaPayload>) => {\n const { attributeToEdit } = action.payload;\n state.modifiedData = attributeToEdit;\n state.initialData = attributeToEdit;\n },\n setErrors: (state, action: PayloadAction<SetErrorsPayload>) => {\n state.formErrors = action.payload.errors;\n },\n },\n});\n\nexport { initialState };\nexport const { actions, reducer } = slice;\n"],"names":["initialState","formErrors","modifiedData","initialData","componentToCreate","isCreatingComponentWhileAddingAField","slice","createSlice","name","reducers","onChange","state","action","keys","value","payload","obj","hasDefaultValue","default","undefined","length","includes","previousType","type","set","onChangeRelationTarget","target","oneThatIsCreatingARelationWithAnother","selectedContentTypeFriendlyName","targetContentTypeAllowedRelations","didChangeRelationTypeBecauseOfRestrictedRelation","changedRelationType","Array","isArray","currentRelationType","getRelationType","relation","targetAttribute","relationToSet","nameToSet","pluralize","snakeCase","nameToSlug","shouldPluralizeName","currentTargetAttribute","targetAttributeToSet","shouldPluralizeTargetAttribute","onChangeRelationType","currentName","resetProps","resetPropsAndSetFormForAddingAnExistingCompo","options","repeatable","resetPropsAndSaveCurrentData","displayName","category","component","createComponentUid","createComponent","resetPropsAndSetTheFormForAddingACompoToADz","createdDZ","dataToSet","setDataToEdit","data","setAttributeDataSchema","isEditing","modifiedDataToSetForEditing","attributeType","nameToSetForRelation","targetUid","step","components","allowedTypes","multiple","enum","setCustomFieldDataSchema","customField","allOptions","base","advanced","optionDefaults","reduce","customFieldDefaultOptionsReducer","forEach","defaultValue","setDynamicZoneDataSchema","attributeToEdit","setErrors","errors","actions","reducer"],"mappings":"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"}
|
|
@@ -22,11 +22,11 @@ const slice = createSlice({
|
|
|
22
22
|
onChange: (state, action)=>{
|
|
23
23
|
const { keys, value } = action.payload;
|
|
24
24
|
const obj = state.modifiedData;
|
|
25
|
-
const hasDefaultValue =
|
|
25
|
+
const hasDefaultValue = obj.default !== undefined;
|
|
26
26
|
// There is no need to remove the default key if the default value isn't defined
|
|
27
27
|
if (hasDefaultValue && keys.length === 1 && keys.includes('type')) {
|
|
28
28
|
const previousType = obj.type;
|
|
29
|
-
if (previousType && [
|
|
29
|
+
if (previousType !== undefined && [
|
|
30
30
|
'date',
|
|
31
31
|
'datetime',
|
|
32
32
|
'time'
|
|
@@ -77,7 +77,7 @@ const slice = createSlice({
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
let nameToSet;
|
|
80
|
-
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType) {
|
|
80
|
+
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType !== null) {
|
|
81
81
|
nameToSet = pluralize(snakeCase(nameToSlug(selectedContentTypeFriendlyName)), shouldPluralizeName(changedRelationType));
|
|
82
82
|
} else {
|
|
83
83
|
nameToSet = pluralize(snakeCase(nameToSlug(selectedContentTypeFriendlyName)), shouldPluralizeName(modifiedData.relation));
|
|
@@ -92,7 +92,7 @@ const slice = createSlice({
|
|
|
92
92
|
}
|
|
93
93
|
// Changing the target and the relation is either oneWay or manyWay
|
|
94
94
|
// Case when we need to change the relation to oneWay (ex: admin user)
|
|
95
|
-
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType && [
|
|
95
|
+
if (didChangeRelationTypeBecauseOfRestrictedRelation && changedRelationType !== null && [
|
|
96
96
|
'oneWay',
|
|
97
97
|
'manyWay'
|
|
98
98
|
].includes(changedRelationType)) {
|
|
@@ -110,7 +110,7 @@ const slice = createSlice({
|
|
|
110
110
|
},
|
|
111
111
|
onChangeRelationType: (state, action)=>{
|
|
112
112
|
const { target: { oneThatIsCreatingARelationWithAnother, value } } = action.payload;
|
|
113
|
-
const currentName = state.modifiedData.name;
|
|
113
|
+
const currentName = state.modifiedData.name ?? '';
|
|
114
114
|
// Switching from oneWay
|
|
115
115
|
if (![
|
|
116
116
|
'oneWay',
|
|
@@ -178,6 +178,9 @@ const slice = createSlice({
|
|
|
178
178
|
const { options = {} } = action.payload;
|
|
179
179
|
// This is run when the user has created a new component
|
|
180
180
|
const componentToCreate = state.modifiedData.componentToCreate;
|
|
181
|
+
if (componentToCreate?.displayName === undefined || componentToCreate.category === undefined) {
|
|
182
|
+
return initialState;
|
|
183
|
+
}
|
|
181
184
|
const modifiedData = {
|
|
182
185
|
displayName: componentToCreate.displayName,
|
|
183
186
|
type: 'component',
|
|
@@ -189,7 +192,7 @@ const slice = createSlice({
|
|
|
189
192
|
...initialState,
|
|
190
193
|
componentToCreate,
|
|
191
194
|
modifiedData,
|
|
192
|
-
isCreatingComponentWhileAddingAField: state.modifiedData.createComponent
|
|
195
|
+
isCreatingComponentWhileAddingAField: state.modifiedData.createComponent === true
|
|
193
196
|
};
|
|
194
197
|
},
|
|
195
198
|
resetPropsAndSetTheFormForAddingACompoToADz: (state)=>{
|