@strapi/content-type-builder 5.12.1 → 5.12.2
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/AllowedTypesSelect.js +78 -0
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -0
- package/dist/admin/components/AllowedTypesSelect.mjs +76 -0
- package/dist/admin/components/AllowedTypesSelect.mjs.map +1 -0
- package/dist/admin/components/AttributeIcon.js +72 -0
- package/dist/admin/components/AttributeIcon.js.map +1 -0
- package/dist/admin/components/AttributeIcon.mjs +70 -0
- package/dist/admin/components/AttributeIcon.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js +31 -0
- package/dist/admin/components/AttributeOptions/AttributeList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs +29 -0
- package/dist/admin/components/AttributeOptions/AttributeList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js +92 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs +90 -0
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js +71 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.js.map +1 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs +69 -0
- package/dist/admin/components/AttributeOptions/AttributeOptions.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js +58 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +56 -0
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js +54 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.js.map +1 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs +52 -0
- package/dist/admin/components/AttributeOptions/CustomFieldsList.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js +123 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs +101 -0
- package/dist/admin/components/AttributeOptions/EmptyAttributes.mjs.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js +19 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.js.map +1 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs +17 -0
- package/dist/admin/components/AttributeOptions/OptionBoxWrapper.mjs.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js +212 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs +190 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js +54 -0
- package/dist/admin/components/BooleanDefaultValueSelect.js.map +1 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs +52 -0
- package/dist/admin/components/BooleanDefaultValueSelect.mjs.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.js +27 -0
- package/dist/admin/components/BooleanRadioGroup.js.map +1 -0
- package/dist/admin/components/BooleanRadioGroup.mjs +25 -0
- package/dist/admin/components/BooleanRadioGroup.mjs.map +1 -0
- package/dist/admin/components/BoxWrapper.js +44 -0
- package/dist/admin/components/BoxWrapper.js.map +1 -0
- package/dist/admin/components/BoxWrapper.mjs +42 -0
- package/dist/admin/components/BoxWrapper.mjs.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.js +86 -0
- package/dist/admin/components/CheckboxWithNumberField.js.map +1 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs +84 -0
- package/dist/admin/components/CheckboxWithNumberField.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js +112 -0
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +110 -0
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js +24 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.js.map +1 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs +22 -0
- package/dist/admin/components/ComponentCard/ComponentIcon/ComponentIcon.mjs.map +1 -0
- package/dist/admin/components/ComponentList.js +40 -0
- package/dist/admin/components/ComponentList.js.map +1 -0
- package/dist/admin/components/ComponentList.mjs +38 -0
- package/dist/admin/components/ComponentList.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +108 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +106 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +179 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +177 -0
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.js +29 -0
- package/dist/admin/components/ContentTypeRadioGroup.js.map +1 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs +27 -0
- package/dist/admin/components/ContentTypeRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +79 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +77 -0
- package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js +77 -0
- package/dist/admin/components/CustomRadioGroup/Styles.js.map +1 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs +75 -0
- package/dist/admin/components/CustomRadioGroup/Styles.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +520 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +518 -0
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/reducer.js +583 -0
- package/dist/admin/components/DataManagerProvider/reducer.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/reducer.mjs +579 -0
- package/dist/admin/components/DataManagerProvider/reducer.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/selectors.js +20 -0
- package/dist/admin/components/DataManagerProvider/selectors.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/selectors.mjs +17 -0
- package/dist/admin/components/DataManagerProvider/selectors.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js +126 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +120 -0
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +9 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +7 -0
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +20 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +18 -0
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +30 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +27 -0
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +46 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +44 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js +38 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs +35 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js +45 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs +43 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js +17 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs +15 -0
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +37 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +35 -0
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +9 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +1 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +7 -0
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +1 -0
- package/dist/admin/components/DisplayedType.js +48 -0
- package/dist/admin/components/DisplayedType.js.map +1 -0
- package/dist/admin/components/DisplayedType.mjs +46 -0
- package/dist/admin/components/DisplayedType.mjs.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.js +86 -0
- package/dist/admin/components/DraftAndPublishToggle.js.map +1 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs +84 -0
- package/dist/admin/components/DraftAndPublishToggle.mjs.map +1 -0
- package/dist/admin/components/DynamicZoneList.js +139 -0
- package/dist/admin/components/DynamicZoneList.js.map +1 -0
- package/dist/admin/components/DynamicZoneList.mjs +137 -0
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -0
- package/dist/admin/components/FormModal/FormModal.js +931 -0
- package/dist/admin/components/FormModal/FormModal.js.map +1 -0
- package/dist/admin/components/FormModal/FormModal.mjs +910 -0
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js +471 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs +469 -0
- package/dist/admin/components/FormModal/attributes/advancedForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js +97 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs +95 -0
- package/dist/admin/components/FormModal/attributes/attributeOptions.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js +482 -0
- package/dist/admin/components/FormModal/attributes/baseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs +480 -0
- package/dist/admin/components/FormModal/attributes/baseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js +17 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs +15 -0
- package/dist/admin/components/FormModal/attributes/commonBaseForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.js +12 -0
- package/dist/admin/components/FormModal/attributes/form.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/form.mjs +10 -0
- package/dist/admin/components/FormModal/attributes/form.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.js +19 -0
- package/dist/admin/components/FormModal/attributes/nameField.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs +17 -0
- package/dist/admin/components/FormModal/attributes/nameField.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.js +305 -0
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/types.mjs +284 -0
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js +129 -0
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs +103 -0
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.js +43 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.js.map +1 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs +22 -0
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/form.js +34 -0
- package/dist/admin/components/FormModal/category/form.js.map +1 -0
- package/dist/admin/components/FormModal/category/form.mjs +32 -0
- package/dist/admin/components/FormModal/category/form.mjs.map +1 -0
- package/dist/admin/components/FormModal/category/regex.js +6 -0
- package/dist/admin/components/FormModal/category/regex.js.map +1 -0
- package/dist/admin/components/FormModal/category/regex.mjs +4 -0
- package/dist/admin/components/FormModal/category/regex.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.js +40 -0
- package/dist/admin/components/FormModal/component/componentField.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentField.mjs +38 -0
- package/dist/admin/components/FormModal/component/componentField.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.js +53 -0
- package/dist/admin/components/FormModal/component/componentForm.js.map +1 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs +51 -0
- package/dist/admin/components/FormModal/component/componentForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js +65 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +44 -0
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js +169 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs +167 -0
- package/dist/admin/components/FormModal/contentType/contentTypeForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +170 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +149 -0
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js +68 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.js.map +1 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs +66 -0
- package/dist/admin/components/FormModal/dynamiczoneForm.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.js +275 -0
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -0
- package/dist/admin/components/FormModal/forms/forms.mjs +273 -0
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js +21 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs +19 -0
- package/dist/admin/components/FormModal/forms/utils/addItemsToFormSection.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +13 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +11 -0
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js +10 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs +8 -0
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/reducer.js +327 -0
- package/dist/admin/components/FormModal/reducer.js.map +1 -0
- package/dist/admin/components/FormModal/reducer.mjs +323 -0
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/selectors.js +20 -0
- package/dist/admin/components/FormModal/selectors.js.map +1 -0
- package/dist/admin/components/FormModal/selectors.mjs +17 -0
- package/dist/admin/components/FormModal/selectors.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js +32 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs +30 -0
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.js +16 -0
- package/dist/admin/components/FormModal/utils/createUid.js.map +1 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs +13 -0
- package/dist/admin/components/FormModal/utils/createUid.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js +18 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.js.map +1 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs +16 -0
- package/dist/admin/components/FormModal/utils/customFieldDefaultOptionsReducer.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js +56 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs +54 -0
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js +17 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.js.map +1 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs +15 -0
- package/dist/admin/components/FormModal/utils/getFormInputNames.mjs.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.js +15 -0
- package/dist/admin/components/FormModal/utils/relations.js.map +1 -0
- package/dist/admin/components/FormModal/utils/relations.mjs +12 -0
- package/dist/admin/components/FormModal/utils/relations.mjs.map +1 -0
- package/dist/admin/components/FormModalEndActions.js +322 -0
- package/dist/admin/components/FormModalEndActions.js.map +1 -0
- package/dist/admin/components/FormModalEndActions.mjs +320 -0
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -0
- package/dist/admin/components/FormModalHeader.js +150 -0
- package/dist/admin/components/FormModalHeader.js.map +1 -0
- package/dist/admin/components/FormModalHeader.mjs +148 -0
- package/dist/admin/components/FormModalHeader.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js +228 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs +207 -0
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.js +21 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.js.map +1 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs +19 -0
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +1 -0
- package/dist/admin/components/FormModalSubHeader.js +70 -0
- package/dist/admin/components/FormModalSubHeader.js.map +1 -0
- package/dist/admin/components/FormModalSubHeader.mjs +67 -0
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -0
- package/dist/admin/components/GenericInputs.js +529 -0
- package/dist/admin/components/GenericInputs.js.map +1 -0
- package/dist/admin/components/GenericInputs.mjs +508 -0
- package/dist/admin/components/GenericInputs.mjs.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.js +196 -0
- package/dist/admin/components/IconPicker/IconPicker.js.map +1 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs +194 -0
- package/dist/admin/components/IconPicker/IconPicker.mjs.map +1 -0
- package/dist/admin/components/IconPicker/constants.js +155 -0
- package/dist/admin/components/IconPicker/constants.js.map +1 -0
- package/dist/admin/components/IconPicker/constants.mjs +133 -0
- package/dist/admin/components/IconPicker/constants.mjs.map +1 -0
- package/dist/admin/components/List.js +243 -0
- package/dist/admin/components/List.js.map +1 -0
- package/dist/admin/components/List.mjs +241 -0
- package/dist/admin/components/List.mjs.map +1 -0
- package/dist/admin/components/ListRow.js +164 -0
- package/dist/admin/components/ListRow.js.map +1 -0
- package/dist/admin/components/ListRow.mjs +161 -0
- package/dist/admin/components/ListRow.mjs.map +1 -0
- package/dist/admin/components/NestedFooter.js +62 -0
- package/dist/admin/components/NestedFooter.js.map +1 -0
- package/dist/admin/components/NestedFooter.mjs +60 -0
- package/dist/admin/components/NestedFooter.mjs.map +1 -0
- package/dist/admin/components/PluralName.js +74 -0
- package/dist/admin/components/PluralName.js.map +1 -0
- package/dist/admin/components/PluralName.mjs +72 -0
- package/dist/admin/components/PluralName.mjs.map +1 -0
- package/dist/admin/components/Relation/Relation.js +47 -0
- package/dist/admin/components/Relation/Relation.js.map +1 -0
- package/dist/admin/components/Relation/Relation.mjs +45 -0
- package/dist/admin/components/Relation/Relation.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js +52 -0
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +50 -0
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +74 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +72 -0
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js +49 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs +45 -0
- package/dist/admin/components/Relation/RelationNaturePicker/Components.mjs.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +149 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +147 -0
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -0
- package/dist/admin/components/SelectCategory.js +60 -0
- package/dist/admin/components/SelectCategory.js.map +1 -0
- package/dist/admin/components/SelectCategory.mjs +58 -0
- package/dist/admin/components/SelectCategory.mjs.map +1 -0
- package/dist/admin/components/SelectComponent.js +90 -0
- package/dist/admin/components/SelectComponent.js.map +1 -0
- package/dist/admin/components/SelectComponent.mjs +88 -0
- package/dist/admin/components/SelectComponent.mjs.map +1 -0
- package/dist/admin/components/SelectComponents.js +70 -0
- package/dist/admin/components/SelectComponents.js.map +1 -0
- package/dist/admin/components/SelectComponents.mjs +68 -0
- package/dist/admin/components/SelectComponents.mjs.map +1 -0
- package/dist/admin/components/SelectDateType.js +62 -0
- package/dist/admin/components/SelectDateType.js.map +1 -0
- package/dist/admin/components/SelectDateType.mjs +60 -0
- package/dist/admin/components/SelectDateType.mjs.map +1 -0
- package/dist/admin/components/SelectNumber.js +111 -0
- package/dist/admin/components/SelectNumber.js.map +1 -0
- package/dist/admin/components/SelectNumber.mjs +109 -0
- package/dist/admin/components/SelectNumber.mjs.map +1 -0
- package/dist/admin/components/SingularName.js +63 -0
- package/dist/admin/components/SingularName.js.map +1 -0
- package/dist/admin/components/SingularName.mjs +61 -0
- package/dist/admin/components/SingularName.mjs.map +1 -0
- package/dist/admin/components/TabForm.js +81 -0
- package/dist/admin/components/TabForm.js.map +1 -0
- package/dist/admin/components/TabForm.mjs +79 -0
- package/dist/admin/components/TabForm.mjs.map +1 -0
- package/dist/admin/components/TextareaEnum.js +58 -0
- package/dist/admin/components/TextareaEnum.js.map +1 -0
- package/dist/admin/components/TextareaEnum.mjs +56 -0
- package/dist/admin/components/TextareaEnum.mjs.map +1 -0
- package/dist/admin/components/Tr.js +48 -0
- package/dist/admin/components/Tr.js.map +1 -0
- package/dist/admin/components/Tr.mjs +46 -0
- package/dist/admin/components/Tr.mjs.map +1 -0
- package/dist/admin/components/UpperFirst.js +11 -0
- package/dist/admin/components/UpperFirst.js.map +1 -0
- package/dist/admin/components/UpperFirst.mjs +9 -0
- package/dist/admin/components/UpperFirst.mjs.map +1 -0
- package/dist/admin/constants.js +19 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +16 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/contexts/DataManagerContext.js +9 -0
- package/dist/admin/contexts/DataManagerContext.js.map +1 -0
- package/dist/admin/contexts/DataManagerContext.mjs +7 -0
- package/dist/admin/contexts/DataManagerContext.mjs.map +1 -0
- package/dist/admin/contexts/FormModalNavigationContext.js +28 -0
- package/dist/admin/contexts/FormModalNavigationContext.js.map +1 -0
- package/dist/admin/contexts/FormModalNavigationContext.mjs +7 -0
- package/dist/admin/contexts/FormModalNavigationContext.mjs.map +1 -0
- package/dist/admin/hooks/useDataManager.js +9 -0
- package/dist/admin/hooks/useDataManager.js.map +1 -0
- package/dist/admin/hooks/useDataManager.mjs +7 -0
- package/dist/admin/hooks/useDataManager.mjs.map +1 -0
- package/dist/admin/hooks/useFormModalNavigation.js +9 -0
- package/dist/admin/hooks/useFormModalNavigation.js.map +1 -0
- package/dist/admin/hooks/useFormModalNavigation.mjs +7 -0
- package/dist/admin/hooks/useFormModalNavigation.mjs.map +1 -0
- package/dist/admin/icons/Curve.js +46 -0
- package/dist/admin/icons/Curve.js.map +1 -0
- package/dist/admin/icons/Curve.mjs +44 -0
- package/dist/admin/icons/Curve.mjs.map +1 -0
- package/dist/admin/index.js +86 -20
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +85 -17
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +66 -0
- package/dist/admin/pages/App/index.js.map +1 -0
- package/dist/admin/pages/App/index.mjs +62 -0
- package/dist/admin/pages/App/index.mjs.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js +81 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +79 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -0
- package/dist/admin/pages/ListView/ListView.js +218 -0
- package/dist/admin/pages/ListView/ListView.js.map +1 -0
- package/dist/admin/pages/ListView/ListView.mjs +216 -0
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/reducers.js +13 -0
- package/dist/admin/reducers.js.map +1 -0
- package/dist/admin/reducers.mjs +11 -0
- package/dist/admin/reducers.mjs.map +1 -0
- package/dist/admin/{chunks/ar-Df0f0-PT.js → translations/ar.json.js} +3 -1
- package/dist/admin/translations/ar.json.js.map +1 -0
- package/dist/admin/{chunks/ar-sRW9VFC-.mjs → translations/ar.json.mjs} +1 -1
- package/dist/admin/translations/ar.json.mjs.map +1 -0
- package/dist/admin/{chunks/cs-DeTwqc7p.js → translations/cs.json.js} +3 -1
- package/dist/admin/translations/cs.json.js.map +1 -0
- package/dist/admin/{chunks/cs-BpQ26jiq.mjs → translations/cs.json.mjs} +1 -1
- package/dist/admin/translations/cs.json.mjs.map +1 -0
- package/dist/admin/{chunks/de-BJkS06jF.js → translations/de.json.js} +3 -1
- package/dist/admin/translations/de.json.js.map +1 -0
- package/dist/admin/{chunks/de-DSxx5_x-.mjs → translations/de.json.mjs} +1 -1
- package/dist/admin/translations/de.json.mjs.map +1 -0
- package/dist/admin/{chunks/dk-CGm-qVH7.js → translations/dk.json.js} +3 -1
- package/dist/admin/translations/dk.json.js.map +1 -0
- package/dist/admin/{chunks/dk-BnjVZ7A_.mjs → translations/dk.json.mjs} +1 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -0
- package/dist/admin/{chunks/en-BJUu34b0.js → translations/en.json.js} +3 -1
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-Bhut8Yay.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/es-J8kvHlNy.js → translations/es.json.js} +3 -1
- package/dist/admin/translations/es.json.js.map +1 -0
- package/dist/admin/{chunks/es-DG8g9igJ.mjs → translations/es.json.mjs} +1 -1
- package/dist/admin/translations/es.json.mjs.map +1 -0
- package/dist/admin/{chunks/fr-C6y35iY7.js → translations/fr.json.js} +3 -1
- package/dist/admin/translations/fr.json.js.map +1 -0
- package/dist/admin/{chunks/fr-UpV34MHY.mjs → translations/fr.json.mjs} +1 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -0
- package/dist/admin/{chunks/id-BvxV6wLP.js → translations/id.json.js} +3 -1
- package/dist/admin/translations/id.json.js.map +1 -0
- package/dist/admin/{chunks/id-BWM18ljw.mjs → translations/id.json.mjs} +1 -1
- package/dist/admin/translations/id.json.mjs.map +1 -0
- package/dist/admin/{chunks/it-C_IgFU-G.js → translations/it.json.js} +3 -1
- package/dist/admin/translations/it.json.js.map +1 -0
- package/dist/admin/{chunks/it-1_vd9gV4.mjs → translations/it.json.mjs} +1 -1
- package/dist/admin/{chunks/ms-C3s4kxq6.mjs.map → translations/it.json.mjs.map} +1 -1
- package/dist/admin/{chunks/ja-CWo4Qqq6.js → translations/ja.json.js} +3 -1
- package/dist/admin/translations/ja.json.js.map +1 -0
- package/dist/admin/{chunks/ja-Cx23a2Ui.mjs → translations/ja.json.mjs} +1 -1
- package/dist/admin/translations/ja.json.mjs.map +1 -0
- package/dist/admin/{chunks/ko-BsByJNEl.js → translations/ko.json.js} +3 -1
- package/dist/admin/translations/ko.json.js.map +1 -0
- package/dist/admin/{chunks/ko-DC7paEx5.mjs → translations/ko.json.mjs} +1 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -0
- package/dist/admin/{chunks/ms-DPTzS7SH.js → translations/ms.json.js} +3 -1
- package/dist/admin/translations/ms.json.js.map +1 -0
- package/dist/admin/{chunks/ms-C3s4kxq6.mjs → translations/ms.json.mjs} +1 -1
- package/dist/admin/translations/ms.json.mjs.map +1 -0
- package/dist/admin/{chunks/nl-db29QMOx.js → translations/nl.json.js} +3 -1
- package/dist/admin/translations/nl.json.js.map +1 -0
- package/dist/admin/{chunks/nl-TzvfktV_.mjs → translations/nl.json.mjs} +1 -1
- package/dist/admin/translations/nl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pl-pYy1djj3.js → translations/pl.json.js} +3 -1
- package/dist/admin/translations/pl.json.js.map +1 -0
- package/dist/admin/{chunks/pl-BdvupIN_.mjs → translations/pl.json.mjs} +1 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -0
- package/dist/admin/{chunks/pt-BR-CTPuXGWF.js → translations/pt-BR.json.js} +3 -1
- package/dist/admin/translations/pt-BR.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BR-DPrVmKeZ.mjs → translations/pt-BR.json.mjs} +1 -1
- package/dist/admin/{chunks/dk-CGm-qVH7.js.map → translations/pt-BR.json.mjs.map} +1 -1
- package/dist/admin/{chunks/pt-BQmWcdeG.js → translations/pt.json.js} +3 -1
- package/dist/admin/translations/pt.json.js.map +1 -0
- package/dist/admin/{chunks/pt-BTLIwmCv.mjs → translations/pt.json.mjs} +1 -1
- package/dist/admin/translations/pt.json.mjs.map +1 -0
- package/dist/admin/{chunks/ru-DQiDXgUV.js → translations/ru.json.js} +3 -1
- package/dist/admin/translations/ru.json.js.map +1 -0
- package/dist/admin/{chunks/ru-D46no502.mjs → translations/ru.json.mjs} +1 -1
- package/dist/admin/translations/ru.json.mjs.map +1 -0
- package/dist/admin/{chunks/sk-DrnebmXb.js → translations/sk.json.js} +3 -1
- package/dist/admin/translations/sk.json.js.map +1 -0
- package/dist/admin/{chunks/sk-Byr_l4Jc.mjs → translations/sk.json.mjs} +1 -1
- package/dist/admin/translations/sk.json.mjs.map +1 -0
- package/dist/admin/{chunks/sv-CrWlNosi.js → translations/sv.json.js} +3 -1
- package/dist/admin/translations/sv.json.js.map +1 -0
- package/dist/admin/{chunks/sv-Bbam7IDm.mjs → translations/sv.json.mjs} +1 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -0
- package/dist/admin/{chunks/th-BbrCkfgX.js → translations/th.json.js} +3 -1
- package/dist/admin/translations/th.json.js.map +1 -0
- package/dist/admin/{chunks/th-hfS0Wmk_.mjs → translations/th.json.mjs} +1 -1
- package/dist/admin/translations/th.json.mjs.map +1 -0
- package/dist/admin/{chunks/tr-CHdMj8m6.js → translations/tr.json.js} +3 -1
- package/dist/admin/translations/tr.json.js.map +1 -0
- package/dist/admin/{chunks/tr-DS7DBOhC.mjs → translations/tr.json.mjs} +1 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-felSA_eV.js → translations/uk.json.js} +3 -1
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-CjzmJyt1.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-Hans-lXbNiMp9.js → translations/zh-Hans.json.js} +3 -1
- package/dist/admin/{chunks/cs-BpQ26jiq.mjs.map → translations/zh-Hans.json.js.map} +1 -1
- package/dist/admin/{chunks/zh-Hans-BElOnuRb.mjs → translations/zh-Hans.json.mjs} +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
- package/dist/admin/{chunks/zh-CWj4avQA.js → translations/zh.json.js} +3 -1
- package/dist/admin/translations/zh.json.js.map +1 -0
- package/dist/admin/{chunks/zh-BUVXH75-.mjs → translations/zh.json.mjs} +1 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -0
- package/dist/admin/utils/findAttribute.js +8 -0
- package/dist/admin/utils/findAttribute.js.map +1 -0
- package/dist/admin/utils/findAttribute.mjs +6 -0
- package/dist/admin/utils/findAttribute.mjs.map +1 -0
- package/dist/admin/utils/formAPI.js +134 -0
- package/dist/admin/utils/formAPI.js.map +1 -0
- package/dist/admin/utils/formAPI.mjs +113 -0
- package/dist/admin/utils/formAPI.mjs.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.js +32 -0
- package/dist/admin/utils/getAttributeDisplayedType.js.map +1 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs +30 -0
- package/dist/admin/utils/getAttributeDisplayedType.mjs.map +1 -0
- package/dist/admin/utils/getMaxDepth.js +74 -0
- package/dist/admin/utils/getMaxDepth.js.map +1 -0
- package/dist/admin/utils/getMaxDepth.mjs +71 -0
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -0
- package/dist/admin/utils/getRelationType.js +18 -0
- package/dist/admin/utils/getRelationType.js.map +1 -0
- package/dist/admin/utils/getRelationType.mjs +16 -0
- package/dist/admin/utils/getRelationType.mjs.map +1 -0
- package/dist/admin/utils/getTrad.js +8 -0
- package/dist/admin/utils/getTrad.js.map +1 -0
- package/dist/admin/utils/getTrad.mjs +6 -0
- package/dist/admin/utils/getTrad.mjs.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.js +23 -0
- package/dist/admin/utils/getYupInnerErrors.js.map +1 -0
- package/dist/admin/utils/getYupInnerErrors.mjs +21 -0
- package/dist/admin/utils/getYupInnerErrors.mjs.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js +8 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs +6 -0
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -0
- package/dist/admin/utils/makeUnique.js +8 -0
- package/dist/admin/utils/makeUnique.js.map +1 -0
- package/dist/admin/utils/makeUnique.mjs +6 -0
- package/dist/admin/utils/makeUnique.mjs.map +1 -0
- package/dist/admin/utils/nameToSlug.js +10 -0
- package/dist/admin/utils/nameToSlug.js.map +1 -0
- package/dist/admin/utils/nameToSlug.mjs +8 -0
- package/dist/admin/utils/nameToSlug.mjs.map +1 -0
- package/dist/admin/utils/parseDateValue.js +17 -0
- package/dist/admin/utils/parseDateValue.js.map +1 -0
- package/dist/admin/utils/parseDateValue.mjs +15 -0
- package/dist/admin/utils/parseDateValue.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/timeFormat.js +38 -0
- package/dist/admin/utils/timeFormat.js.map +1 -0
- package/dist/admin/utils/timeFormat.mjs +35 -0
- package/dist/admin/utils/timeFormat.mjs.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.js +17 -0
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs +15 -0
- package/dist/admin/utils/toRegressedEnumValue.mjs.map +1 -0
- package/dist/server/bootstrap.js +16 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +14 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/config.js +9 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/config.mjs +7 -0
- package/dist/server/config.mjs.map +1 -0
- package/dist/server/controllers/builder.js +12 -0
- package/dist/server/controllers/builder.js.map +1 -0
- package/dist/server/controllers/builder.mjs +10 -0
- package/dist/server/controllers/builder.mjs.map +1 -0
- package/dist/server/controllers/component-categories.js +38 -0
- package/dist/server/controllers/component-categories.js.map +1 -0
- package/dist/server/controllers/component-categories.mjs +36 -0
- package/dist/server/controllers/component-categories.mjs.map +1 -0
- package/dist/server/controllers/components.js +144 -0
- package/dist/server/controllers/components.js.map +1 -0
- package/dist/server/controllers/components.mjs +142 -0
- package/dist/server/controllers/components.mjs.map +1 -0
- package/dist/server/controllers/content-types.js +142 -0
- package/dist/server/controllers/content-types.js.map +1 -0
- package/dist/server/controllers/content-types.mjs +140 -0
- package/dist/server/controllers/content-types.mjs.map +1 -0
- package/dist/server/controllers/index.js +16 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +14 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +102 -0
- package/dist/server/controllers/validation/common.js.map +1 -0
- package/dist/server/controllers/validation/common.mjs +85 -0
- package/dist/server/controllers/validation/common.mjs.map +1 -0
- package/dist/server/controllers/validation/component-category.js +12 -0
- package/dist/server/controllers/validation/component-category.js.map +1 -0
- package/dist/server/controllers/validation/component-category.mjs +10 -0
- package/dist/server/controllers/validation/component-category.mjs.map +1 -0
- package/dist/server/controllers/validation/component.js +68 -0
- package/dist/server/controllers/validation/component.js.map +1 -0
- package/dist/server/controllers/validation/component.mjs +60 -0
- package/dist/server/controllers/validation/component.mjs.map +1 -0
- package/dist/server/controllers/validation/content-type.js +153 -0
- package/dist/server/controllers/validation/content-type.js.map +1 -0
- package/dist/server/controllers/validation/content-type.mjs +149 -0
- package/dist/server/controllers/validation/content-type.mjs.map +1 -0
- package/dist/server/controllers/validation/data-transform.js +27 -0
- package/dist/server/controllers/validation/data-transform.js.map +1 -0
- package/dist/server/controllers/validation/data-transform.mjs +24 -0
- package/dist/server/controllers/validation/data-transform.mjs.map +1 -0
- package/dist/server/controllers/validation/model-schema.js +90 -0
- package/dist/server/controllers/validation/model-schema.js.map +1 -0
- package/dist/server/controllers/validation/model-schema.mjs +88 -0
- package/dist/server/controllers/validation/model-schema.mjs.map +1 -0
- package/dist/server/controllers/validation/relations.js +70 -0
- package/dist/server/controllers/validation/relations.js.map +1 -0
- package/dist/server/controllers/validation/relations.mjs +68 -0
- package/dist/server/controllers/validation/relations.mjs.map +1 -0
- package/dist/server/controllers/validation/types.js +215 -0
- package/dist/server/controllers/validation/types.js.map +1 -0
- package/dist/server/controllers/validation/types.mjs +213 -0
- package/dist/server/controllers/validation/types.mjs.map +1 -0
- package/dist/server/index.js +8 -2654
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +5 -2633
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/routes/admin.js +231 -0
- package/dist/server/routes/admin.js.map +1 -0
- package/dist/server/routes/admin.mjs +229 -0
- package/dist/server/routes/admin.mjs.map +1 -0
- package/dist/server/routes/content-api.js +30 -0
- package/dist/server/routes/content-api.js.map +1 -0
- package/dist/server/routes/content-api.mjs +28 -0
- package/dist/server/routes/content-api.mjs.map +1 -0
- package/dist/server/routes/index.js +12 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +10 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/services/api-handler.js +109 -0
- package/dist/server/services/api-handler.js.map +1 -0
- package/dist/server/services/api-handler.mjs +85 -0
- package/dist/server/services/api-handler.mjs.map +1 -0
- package/dist/server/services/builder.js +81 -0
- package/dist/server/services/builder.js.map +1 -0
- package/dist/server/services/builder.mjs +75 -0
- package/dist/server/services/builder.mjs.map +1 -0
- package/dist/server/services/component-categories.js +59 -0
- package/dist/server/services/component-categories.js.map +1 -0
- package/dist/server/services/component-categories.mjs +56 -0
- package/dist/server/services/component-categories.mjs.map +1 -0
- package/dist/server/services/components.js +79 -0
- package/dist/server/services/components.js.map +1 -0
- package/dist/server/services/components.mjs +74 -0
- package/dist/server/services/components.mjs.map +1 -0
- package/dist/server/services/constants.js +52 -0
- package/dist/server/services/constants.js.map +1 -0
- package/dist/server/services/constants.mjs +45 -0
- package/dist/server/services/constants.mjs.map +1 -0
- package/dist/server/services/content-types.js +223 -0
- package/dist/server/services/content-types.js.map +1 -0
- package/dist/server/services/content-types.mjs +213 -0
- package/dist/server/services/content-types.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/component-builder.js +114 -0
- package/dist/server/services/schema-builder/component-builder.js.map +1 -0
- package/dist/server/services/schema-builder/component-builder.mjs +112 -0
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.js +276 -0
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs +274 -0
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -0
- package/dist/server/services/schema-builder/index.js +145 -0
- package/dist/server/services/schema-builder/index.js.map +1 -0
- package/dist/server/services/schema-builder/index.mjs +143 -0
- package/dist/server/services/schema-builder/index.mjs.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.js +250 -0
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -0
- package/dist/server/services/schema-builder/schema-handler.mjs +248 -0
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -0
- package/dist/server/utils/attributes.js +91 -0
- package/dist/server/utils/attributes.js.map +1 -0
- package/dist/server/utils/attributes.mjs +85 -0
- package/dist/server/utils/attributes.mjs.map +1 -0
- package/dist/server/utils/index.js +8 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +6 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/dist/server/utils/typeguards.js +8 -0
- package/dist/server/utils/typeguards.js.map +1 -0
- package/dist/server/utils/typeguards.mjs +6 -0
- package/dist/server/utils/typeguards.mjs.map +1 -0
- package/package.json +5 -5
- package/dist/admin/chunks/ListView-Cl-pbcxP.mjs +0 -1184
- package/dist/admin/chunks/ListView-Cl-pbcxP.mjs.map +0 -1
- package/dist/admin/chunks/ListView-DMZvleUI.js +0 -1186
- package/dist/admin/chunks/ListView-DMZvleUI.js.map +0 -1
- package/dist/admin/chunks/ar-Df0f0-PT.js.map +0 -1
- package/dist/admin/chunks/ar-sRW9VFC-.mjs.map +0 -1
- package/dist/admin/chunks/cs-DeTwqc7p.js.map +0 -1
- package/dist/admin/chunks/de-BJkS06jF.js.map +0 -1
- package/dist/admin/chunks/de-DSxx5_x-.mjs.map +0 -1
- package/dist/admin/chunks/dk-BnjVZ7A_.mjs.map +0 -1
- package/dist/admin/chunks/en-BJUu34b0.js.map +0 -1
- package/dist/admin/chunks/en-Bhut8Yay.mjs.map +0 -1
- package/dist/admin/chunks/es-DG8g9igJ.mjs.map +0 -1
- package/dist/admin/chunks/es-J8kvHlNy.js.map +0 -1
- package/dist/admin/chunks/fr-C6y35iY7.js.map +0 -1
- package/dist/admin/chunks/fr-UpV34MHY.mjs.map +0 -1
- package/dist/admin/chunks/id-BWM18ljw.mjs.map +0 -1
- package/dist/admin/chunks/id-BvxV6wLP.js.map +0 -1
- package/dist/admin/chunks/index-BG2mUcnk.js +0 -7788
- package/dist/admin/chunks/index-BG2mUcnk.js.map +0 -1
- package/dist/admin/chunks/index-DAXXa6S8.mjs +0 -1384
- package/dist/admin/chunks/index-DAXXa6S8.mjs.map +0 -1
- package/dist/admin/chunks/index-DWAINlnG.js +0 -1421
- package/dist/admin/chunks/index-DWAINlnG.js.map +0 -1
- package/dist/admin/chunks/index-Knq4Ti8R.mjs +0 -7761
- package/dist/admin/chunks/index-Knq4Ti8R.mjs.map +0 -1
- package/dist/admin/chunks/it-1_vd9gV4.mjs.map +0 -1
- package/dist/admin/chunks/it-C_IgFU-G.js.map +0 -1
- package/dist/admin/chunks/ja-CWo4Qqq6.js.map +0 -1
- package/dist/admin/chunks/ja-Cx23a2Ui.mjs.map +0 -1
- package/dist/admin/chunks/ko-BsByJNEl.js.map +0 -1
- package/dist/admin/chunks/ko-DC7paEx5.mjs.map +0 -1
- package/dist/admin/chunks/ms-DPTzS7SH.js.map +0 -1
- package/dist/admin/chunks/nl-TzvfktV_.mjs.map +0 -1
- package/dist/admin/chunks/nl-db29QMOx.js.map +0 -1
- package/dist/admin/chunks/pl-BdvupIN_.mjs.map +0 -1
- package/dist/admin/chunks/pl-pYy1djj3.js.map +0 -1
- package/dist/admin/chunks/pt-BQmWcdeG.js.map +0 -1
- package/dist/admin/chunks/pt-BR-CTPuXGWF.js.map +0 -1
- package/dist/admin/chunks/pt-BR-DPrVmKeZ.mjs.map +0 -1
- package/dist/admin/chunks/pt-BTLIwmCv.mjs.map +0 -1
- package/dist/admin/chunks/ru-D46no502.mjs.map +0 -1
- package/dist/admin/chunks/ru-DQiDXgUV.js.map +0 -1
- package/dist/admin/chunks/sk-Byr_l4Jc.mjs.map +0 -1
- package/dist/admin/chunks/sk-DrnebmXb.js.map +0 -1
- package/dist/admin/chunks/sv-Bbam7IDm.mjs.map +0 -1
- package/dist/admin/chunks/sv-CrWlNosi.js.map +0 -1
- package/dist/admin/chunks/th-BbrCkfgX.js.map +0 -1
- package/dist/admin/chunks/th-hfS0Wmk_.mjs.map +0 -1
- package/dist/admin/chunks/tr-CHdMj8m6.js.map +0 -1
- package/dist/admin/chunks/tr-DS7DBOhC.mjs.map +0 -1
- package/dist/admin/chunks/uk-CjzmJyt1.mjs.map +0 -1
- package/dist/admin/chunks/uk-felSA_eV.js.map +0 -1
- package/dist/admin/chunks/zh-BUVXH75-.mjs.map +0 -1
- package/dist/admin/chunks/zh-CWj4avQA.js.map +0 -1
- package/dist/admin/chunks/zh-Hans-BElOnuRb.mjs.map +0 -1
- package/dist/admin/chunks/zh-Hans-lXbNiMp9.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BG2mUcnk.js","sources":["../../../admin/src/utils/getTrad.ts","../../../admin/src/contexts/DataManagerContext.ts","../../../admin/src/hooks/useDataManager.ts","../../../admin/src/contexts/FormModalNavigationContext.ts","../../../admin/src/hooks/useFormModalNavigation.ts","../../../admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.ts","../../../admin/src/components/ContentTypeBuilderNav/ContentTypeBuilderNav.tsx","../../../admin/src/utils/isAllowedContentTypesForRelations.ts","../../../admin/src/utils/findAttribute.ts","../../../admin/src/utils/getYupInnerErrors.ts","../../../admin/src/components/AllowedTypesSelect.tsx","../../../admin/src/components/AttributeIcon.tsx","../../../admin/src/components/AttributeOptions/OptionBoxWrapper.tsx","../../../admin/src/components/AttributeOptions/AttributeOption.tsx","../../../admin/src/components/AttributeOptions/AttributeList.tsx","../../../admin/src/components/AttributeOptions/CustomFieldOption.tsx","../../../admin/src/components/AttributeOptions/EmptyAttributes.tsx","../../../admin/src/components/AttributeOptions/CustomFieldsList.tsx","../../../admin/src/components/AttributeOptions/AttributeOptions.tsx","../../../admin/src/components/BooleanDefaultValueSelect.tsx","../../../admin/src/components/CustomRadioGroup/Styles.tsx","../../../admin/src/components/CustomRadioGroup/CustomRadioGroup.tsx","../../../admin/src/components/BooleanRadioGroup.tsx","../../../admin/src/components/CheckboxWithNumberField.tsx","../../../admin/src/components/ContentTypeRadioGroup.tsx","../../../admin/src/components/DraftAndPublishToggle.tsx","../../../admin/src/components/FormModalEndActions.tsx","../../../admin/src/components/FormModalHeader.tsx","../../../admin/src/components/FormModalSubHeader.tsx","../../../admin/src/components/IconPicker/constants.ts","../../../admin/src/components/IconPicker/IconPicker.tsx","../../../admin/src/components/PluralName.tsx","../../../admin/src/utils/parseDateValue.ts","../../../admin/src/utils/timeFormat.ts","../../../admin/src/components/GenericInputs.tsx","../../../admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.tsx","../../../admin/src/components/Relation/RelationField/RelationField.tsx","../../../admin/src/components/Relation/RelationNaturePicker/Components.tsx","../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx","../../../admin/src/components/Relation/Relation.tsx","../../../admin/src/components/SelectCategory.tsx","../../../admin/src/utils/getMaxDepth.ts","../../../admin/src/components/SelectComponent.tsx","../../../admin/src/components/SelectComponents.tsx","../../../admin/src/components/SelectDateType.tsx","../../../admin/src/components/SelectNumber.tsx","../../../admin/src/components/SingularName.tsx","../../../admin/src/components/TabForm.tsx","../../../admin/src/components/TextareaEnum.tsx","../../../admin/src/components/FormModal/attributes/nameField.ts","../../../admin/src/components/FormModal/attributes/commonBaseForm.ts","../../../admin/src/components/FormModal/component/componentForm.ts","../../../admin/src/components/FormModal/attributes/attributeOptions.ts","../../../admin/src/components/FormModal/attributes/advancedForm.ts","../../../admin/src/components/FormModal/component/componentField.ts","../../../admin/src/components/FormModal/attributes/baseForm.ts","../../../admin/src/components/FormModal/attributes/form.ts","../../../admin/src/utils/toRegressedEnumValue.ts","../../../admin/src/components/FormModal/attributes/validation/common.ts","../../../admin/src/components/FormModal/attributes/types.ts","../../../admin/src/components/FormModal/category/regex.ts","../../../admin/src/components/FormModal/category/createCategorySchema.ts","../../../admin/src/components/FormModal/category/form.ts","../../../admin/src/components/FormModal/component/createComponentSchema.ts","../../../admin/src/components/FormModal/contentType/contentTypeForm.ts","../../../admin/src/components/FormModal/contentType/createContentTypeSchema.ts","../../../admin/src/components/FormModal/dynamiczoneForm.ts","../../../admin/src/components/FormModal/forms/utils/addItemsToFormSection.ts","../../../admin/src/components/FormModal/forms/utils/createCollectionName.ts","../../../admin/src/components/FormModal/forms/utils/getUsedAttributeNames.ts","../../../admin/src/components/FormModal/forms/forms.ts","../../../admin/src/components/FormModal/selectors.ts","../../../admin/src/components/FormModal/utils/canEditContentType.ts","../../../admin/src/components/FormModal/utils/getAttributesToDisplay.ts","../../../admin/src/components/FormModal/utils/getFormInputNames.ts","../../../admin/src/components/FormModal/FormModal.tsx","../../../admin/src/components/DataManagerProvider/selectors.ts","../../../admin/src/components/DataManagerProvider/utils/cleanData.ts","../../../admin/src/components/DataManagerProvider/utils/createDataObject.ts","../../../admin/src/components/DataManagerProvider/utils/createModifiedDataSchema.ts","../../../admin/src/components/DataManagerProvider/utils/formatSchemas.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveNestedComponents.ts","../../../admin/src/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.ts","../../../admin/src/components/DataManagerProvider/utils/serverRestartWatcher.ts","../../../admin/src/components/DataManagerProvider/utils/validateSchema.ts","../../../admin/src/components/DataManagerProvider/DataManagerProvider.tsx","../../../admin/src/components/FormModalNavigationProvider/constants.ts","../../../admin/src/components/FormModalNavigationProvider/FormModalNavigationProvider.tsx","../../../admin/src/pages/App/index.tsx"],"sourcesContent":["import { pluginId } from '../pluginId';\n\nexport const getTrad = (id: string) => `${pluginId}.${id}`;\n","/* eslint-disable check-file/filename-naming-convention */\nimport { createContext } from 'react';\n\nimport type { SchemaType, Component } from '../types';\nimport type { Internal } from '@strapi/types';\n\n// TODO V5 Convert this any types to real types\nexport interface CustomFieldAttributeParams {\n attributeToSet: Record<string, any>;\n forTarget: SchemaType;\n targetUid: Internal.UID.Schema;\n initialAttribute: Record<string, any>;\n}\nexport interface DataManagerContextValue {\n addAttribute: (\n attributeToSet: Record<string, any>,\n forTarget: SchemaType,\n targetUid: Internal.UID.Schema,\n isEditing?: boolean,\n initialAttribute?: Record<string, any>,\n shouldAddComponentToData?: boolean\n ) => void;\n addCustomFieldAttribute: (params: CustomFieldAttributeParams) => void;\n editCustomFieldAttribute: (params: CustomFieldAttributeParams) => void;\n addCreatedComponentToDynamicZone: (\n dynamicZoneTarget: string,\n componentsToAdd: Internal.UID.Component[]\n ) => void;\n createSchema: (\n data: Record<string, any>,\n schemaType: SchemaType,\n uid: Internal.UID.Schema,\n componentCategory?: string,\n shouldAddComponentToData?: boolean\n ) => void;\n changeDynamicZoneComponents: (\n dynamicZoneTarget: string,\n newComponents: Internal.UID.Component[]\n ) => void;\n removeAttribute: (\n mainDataKey: 'contentType' | 'component' | 'contentTypes' | 'components',\n attributeToRemoveName: string,\n componentUid?: string\n ) => void;\n deleteCategory: (categoryUid: string) => void;\n deleteData: () => void;\n editCategory: (categoryUid: string, body: any) => void;\n removeComponentFromDynamicZone: (dzName: string, componentToRemoveIndex: number) => void;\n setModifiedData: () => void;\n sortedContentTypesList: any[]; // Define the actual type\n submitData: (additionalContentTypeData?: Record<string, any>) => Promise<void>;\n updateSchema: (\n data: Record<string, any>,\n schemaType: 'contentType' | 'component',\n componentUID: Internal.UID.Component\n ) => void;\n components: Record<Internal.UID.Component, Component>;\n componentsGroupedByCategory: Record<string, Component[]>;\n componentsThatHaveOtherComponentInTheirAttributes: any[]; // Define the actual type\n contentTypes: Record<string, any>;\n initialData: Record<string, any>;\n isInContentTypeView: boolean;\n isInDevelopmentMode?: boolean;\n modifiedData: Record<string, any>;\n nestedComponents: any[]; // Define the actual type\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n allComponentsCategories: any[];\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const DataManagerContext = createContext<DataManagerContextValue>();\n","import { useContext } from 'react';\n\nimport { DataManagerContext } from '../contexts/DataManagerContext';\n\nexport const useDataManager = () => useContext(DataManagerContext);\n","/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport { INITIAL_STATE_DATA } from '../components/FormModalNavigationProvider/constants';\n\nimport type {\n ModalEventProps,\n State,\n} from '../components/FormModalNavigationProvider/FormModalNavigationProvider';\nimport type { SchemaType } from '../types';\nimport type { Internal } from '@strapi/types';\n\nexport interface FormModalNavigationContextValue {\n onCloseModal: () => void;\n onOpenModalAddField: (options: {\n forTarget: SchemaType;\n targetUid?: Internal.UID.Schema;\n }) => void;\n onClickSelectField: (option: ModalEventProps) => void;\n onClickSelectCustomField: (option: ModalEventProps) => void;\n onNavigateToChooseAttributeModal: (options: ModalEventProps) => void;\n onNavigateToAddCompoToDZModal: (options: ModalEventProps) => void;\n onOpenModalAddComponentsToDZ: (options: ModalEventProps) => void;\n onNavigateToCreateComponentStep2: () => void;\n onOpenModalCreateSchema: (options: State) => void;\n onOpenModalEditCategory: (categoryName: string) => void;\n onOpenModalEditField: (options: ModalEventProps) => void;\n onOpenModalEditCustomField: (options: ModalEventProps) => void;\n onOpenModalEditSchema: (options: ModalEventProps) => void;\n setFormModalNavigationState: (value: React.SetStateAction<typeof INITIAL_STATE_DATA>) => void;\n actionType: string;\n attributeName: string;\n attributeType: string;\n customFieldUid: string;\n categoryName: string;\n dynamicZoneTarget: string;\n forTarget: SchemaType;\n modalType: string;\n isOpen: boolean;\n showBackLink: boolean;\n kind: string;\n step: string;\n targetUid: Internal.UID.Schema;\n activeTab: string;\n setActiveTab: (value: React.SetStateAction<string>) => void;\n}\n\n// @ts-expect-error need to pass initial value to params\nexport const FormModalNavigationContext = React.createContext<FormModalNavigationContextValue>();\n","import { useContext } from 'react';\n\nimport { FormModalNavigationContext } from '../contexts/FormModalNavigationContext';\n\nexport const useFormModalNavigation = () => useContext(FormModalNavigationContext);\n","import { useState, MouseEvent } from 'react';\n\nimport { useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { useCollator, useFilter } from '@strapi/design-system';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../../hooks/useDataManager';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad } from '../../utils/getTrad';\n\nimport type { Internal } from '@strapi/types';\n\nexport const useContentTypeBuilderMenu = () => {\n const {\n components,\n componentsGroupedByCategory,\n contentTypes,\n isInDevelopmentMode,\n sortedContentTypesList,\n modifiedData,\n initialData,\n } = useDataManager();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [searchValue, setSearchValue] = useState('');\n const { onOpenModalCreateSchema, onOpenModalEditCategory } = useFormModalNavigation();\n const { locale } = useIntl();\n\n const { startsWith } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n // TODO: Allow creating mutliple schemas in parallel\n const canOpenModalCreateCTorComponent =\n !Object.keys(contentTypes).some((ct) => contentTypes[ct].isTemporary === true) &&\n !Object.keys(components).some(\n (component) => components[component as Internal.UID.Component].isTemporary === true\n ) &&\n isEqual(modifiedData, initialData);\n\n const handleClickOpenModalCreateCollectionType = () => {\n if (canOpenModalCreateCTorComponent) {\n // TODO: Review tracking with product\n trackUsage(`willCreateContentType`);\n\n const nextState = {\n modalType: 'contentType',\n kind: 'collectionType',\n actionType: 'create',\n forTarget: 'contentType',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const handleClickOpenModalCreateSingleType = () => {\n if (canOpenModalCreateCTorComponent) {\n trackUsage(`willCreateSingleType`);\n\n const nextState = {\n modalType: 'contentType',\n kind: 'singleType',\n actionType: 'create',\n forTarget: 'contentType',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const handleClickOpenModalCreateComponent = () => {\n if (canOpenModalCreateCTorComponent) {\n trackUsage('willCreateComponent');\n\n const nextState = {\n modalType: 'component',\n kind: null,\n actionType: 'create',\n forTarget: 'component',\n };\n\n onOpenModalCreateSchema(nextState);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n };\n\n const toggleNotificationCannotCreateSchema = () => {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTrad('notification.info.creating.notSaved'),\n defaultMessage: 'Please save your work before creating a new collection type or component',\n }),\n });\n };\n\n const componentsData = Object.entries(componentsGroupedByCategory)\n .map(([category, components]) => ({\n name: category,\n title: category,\n isEditable: isInDevelopmentMode,\n // TODO: re-add functionality to edit category name\n onClickEdit(e: MouseEvent, data: any) {\n e.stopPropagation();\n\n if (canOpenModalCreateCTorComponent) {\n onOpenModalEditCategory(data.name);\n } else {\n toggleNotificationCannotCreateSchema();\n }\n },\n links: components\n .map((component) => ({\n name: component.uid,\n to: `/plugins/${pluginId}/component-categories/${category}/${component.uid}`,\n title: component.schema.displayName,\n }))\n .sort((a, b) => formatter.compare(a.title, b.title)),\n }))\n .sort((a, b) => formatter.compare(a.title, b.title));\n\n const displayedContentTypes = sortedContentTypesList.filter((obj) => obj.visible);\n\n const data = [\n {\n name: 'models',\n title: {\n id: `${getTrad('menu.section.models.name')}`,\n defaultMessage: 'Collection Types',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.model.create')}`,\n defaultMessage: 'Create new collection type',\n onClick: handleClickOpenModalCreateCollectionType,\n },\n links: displayedContentTypes.filter((contentType) => contentType.kind === 'collectionType'),\n },\n {\n name: 'singleTypes',\n title: {\n id: `${getTrad('menu.section.single-types.name')}`,\n defaultMessage: 'Single Types',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.single-types.create')}`,\n defaultMessage: 'Create new single type',\n onClick: handleClickOpenModalCreateSingleType,\n },\n links: displayedContentTypes.filter((singleType) => singleType.kind === 'singleType'),\n },\n {\n name: 'components',\n title: {\n id: `${getTrad('menu.section.components.name')}`,\n defaultMessage: 'Components',\n },\n customLink: isInDevelopmentMode && {\n id: `${getTrad('button.component.create')}`,\n defaultMessage: 'Create a new component',\n onClick: handleClickOpenModalCreateComponent,\n },\n links: componentsData,\n },\n ].map((section) => {\n const hasChild = section.links.some((l) => Array.isArray(l.links));\n\n if (hasChild) {\n let filteredLinksCount = 0;\n\n return {\n ...section,\n links: section.links\n .map((link) => {\n const filteredLinks = link.links.filter((link: any) =>\n startsWith(link.title, searchValue)\n );\n\n if (filteredLinks.length === 0) {\n return null;\n }\n\n filteredLinksCount += filteredLinks.length;\n\n return {\n ...link,\n links: filteredLinks.sort((a: any, b: any) => formatter.compare(a.title, b.title)),\n };\n })\n .filter(Boolean),\n linksCount: filteredLinksCount,\n };\n }\n\n const filteredLinks = section.links\n .filter((link) => startsWith(link.title, searchValue))\n .sort((a, b) => formatter.compare(a.title, b.title));\n\n return {\n ...section,\n links: filteredLinks,\n linksCount: filteredLinks.length,\n };\n });\n\n return {\n menu: data,\n search: {\n value: searchValue,\n onChange: setSearchValue,\n clear: () => setSearchValue(''),\n },\n };\n};\n","import { Fragment } from 'react';\n\nimport {\n Box,\n TextButton,\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavLinkSection,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils/getTrad';\n\nimport { useContentTypeBuilderMenu } from './useContentTypeBuilderMenu';\n\nconst SubNavLinkCustom = styled(SubNavLink)`\n div {\n width: inherit;\n span:nth-child(2) {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: inherit;\n }\n }\n`;\n\nexport const ContentTypeBuilderNav = () => {\n const { menu, search } = useContentTypeBuilderMenu();\n const { formatMessage } = useIntl();\n\n const pluginName = formatMessage({\n id: getTrad('plugin.name'),\n defaultMessage: 'Content-Type Builder',\n });\n\n return (\n <SubNav aria-label={pluginName}>\n <SubNavHeader\n searchable\n value={search.value}\n onClear={() => search.clear()}\n onChange={(e) => search.onChange(e.target.value)}\n label={pluginName}\n searchLabel={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n />\n <SubNavSections>\n {menu.map((section) => (\n <Fragment key={section.name}>\n <SubNavSection\n label={formatMessage({\n id: section.title.id,\n defaultMessage: section.title.defaultMessage,\n })}\n collapsable\n badgeLabel={section.linksCount.toString()}\n >\n {section.links.map((link) => {\n if (link.links) {\n return (\n <SubNavLinkSection key={link.name} label={upperFirst(link.title)}>\n {link.links.map((subLink: any) => (\n <SubNavLink\n tag={NavLink}\n to={subLink.to}\n active={subLink.active}\n key={subLink.name}\n isSubSectionChild\n >\n {upperFirst(\n formatMessage({ id: subLink.name, defaultMessage: subLink.title })\n )}\n </SubNavLink>\n ))}\n </SubNavLinkSection>\n );\n }\n\n return (\n <SubNavLinkCustom\n tag={NavLink}\n to={link.to}\n active={link.active}\n key={link.name}\n width=\"100%\"\n >\n {upperFirst(formatMessage({ id: link.name, defaultMessage: link.title }))}\n </SubNavLinkCustom>\n );\n })}\n </SubNavSection>\n {section.customLink && (\n <Box paddingLeft={7}>\n <TextButton\n onClick={section.customLink.onClick}\n startIcon={<Plus width=\"0.8rem\" height=\"0.8rem\" />}\n marginTop={2}\n cursor=\"pointer\"\n >\n {formatMessage({\n id: section.customLink.id,\n defaultMessage: section.customLink.defaultMessage,\n })}\n </TextButton>\n </Box>\n )}\n </Fragment>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n","import type { ContentType } from '../types';\n\nexport const isAllowedContentTypesForRelations = (contentType: ContentType) => {\n return (\n contentType.kind === 'collectionType' &&\n (contentType.restrictRelationsTo === null ||\n (Array.isArray(contentType.restrictRelationsTo) &&\n contentType.restrictRelationsTo.length > 0))\n );\n};\n","import { AttributeType } from '../types';\n\nexport const findAttribute = (attributes: AttributeType[], attributeToFind: string) => {\n return attributes.find(({ name }) => name === attributeToFind);\n};\n","import type { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport type { ValidationError } from 'yup';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\nconst extractValuesFromYupError = (\n errorType?: string | undefined,\n errorParams?: Record<string, any> | undefined\n) => {\n if (!errorType || !errorParams) {\n return {};\n }\n\n return {\n [errorType]: errorParams[errorType],\n };\n};\n\nconst getYupInnerErrors = (error: ValidationError) =>\n (error?.inner || []).reduce<Record<string, TranslationMessage>>((acc, currentError) => {\n if (currentError.path) {\n acc[currentError.path.split('[').join('.').split(']').join('')] = {\n id: currentError.message,\n defaultMessage: currentError.message,\n values: extractValuesFromYupError(currentError?.type, currentError?.params),\n };\n }\n\n return acc;\n }, {});\n\nexport { getYupInnerErrors };\n","import { Field, MultiSelectNested } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface AllowedTypesSelectProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n value?: any;\n}\n\nconst options = [\n {\n label: 'All',\n children: [\n { label: 'images (JPEG, PNG, GIF, SVG, TIFF, ICO, DVU)', value: 'images' },\n { label: 'videos (MPEG, MP4, Quicktime, WMV, AVI, FLV)', value: 'videos' },\n { label: 'audios (MP3, WAV, OGG)', value: 'audios' },\n { label: 'files (CSV, ZIP, PDF, Excel, JSON, ...)', value: 'files' },\n ],\n },\n];\n\nexport const AllowedTypesSelect = ({\n intlLabel,\n name,\n onChange,\n value = null,\n}: AllowedTypesSelectProps) => {\n const { formatMessage } = useIntl();\n\n /* eslint-disable indent */\n const displayedValue =\n value === null || value?.length === 0\n ? formatMessage({ id: 'global.none', defaultMessage: 'None' })\n : [...value]\n .sort()\n .map((v) => upperFirst(v))\n .join(', ');\n\n /* eslint-enable indent */\n\n const label = intlLabel.id\n ? formatMessage({ id: intlLabel.id, defaultMessage: intlLabel.defaultMessage })\n : name;\n\n return (\n <Field.Root name={name}>\n <Field.Label>{label}</Field.Label>\n <MultiSelectNested\n customizeContent={() => displayedValue}\n onChange={(values: any[]) => {\n if (values.length > 0) {\n onChange({ target: { name, value: values, type: 'allowed-types-select' } });\n } else {\n onChange({ target: { name, value: null, type: 'allowed-types-select' } });\n }\n }}\n options={options}\n value={value || []}\n />\n </Field.Root>\n );\n};\n","import { ComponentType, SVGProps } from 'react';\n\nimport { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Box } from '@strapi/design-system';\nimport {\n BooleanField,\n CollectionType,\n ComponentField,\n DateField,\n DynamicZoneField,\n EmailField,\n EnumerationField,\n JsonField,\n MediaField,\n NumberField,\n PasswordField,\n RelationField,\n MarkdownField,\n SingleType,\n TextField,\n UidField,\n BlocksField,\n} from '@strapi/icons/symbols';\nimport { styled } from 'styled-components';\n\nconst iconByTypes: Record<string, ComponentType<SVGProps<SVGSVGElement>>> = {\n biginteger: NumberField,\n blocks: BlocksField,\n boolean: BooleanField,\n collectionType: CollectionType,\n component: ComponentField,\n contentType: CollectionType,\n date: DateField,\n datetime: DateField,\n decimal: NumberField,\n dynamiczone: DynamicZoneField,\n email: EmailField,\n enum: EnumerationField,\n enumeration: EnumerationField,\n file: MediaField,\n files: MediaField,\n float: NumberField,\n integer: NumberField,\n json: JsonField,\n JSON: JsonField,\n media: MediaField,\n number: NumberField,\n password: PasswordField,\n relation: RelationField,\n richtext: MarkdownField,\n singleType: SingleType,\n string: TextField,\n text: TextField,\n time: DateField,\n timestamp: DateField,\n uid: UidField,\n};\n\nconst IconBox = styled(Box)`\n svg {\n height: 100%;\n width: 100%;\n }\n`;\n\nexport type IconByType = keyof typeof iconByTypes;\n\ntype AttributeIconProps = {\n type: IconByType;\n customField?: string | null;\n};\n\nexport const AttributeIcon = ({ type, customField = null, ...rest }: AttributeIconProps) => {\n const getCustomField = useStrapiApp('AttributeIcon', (state) => state.customFields.get);\n\n let Compo: any = iconByTypes[type];\n\n if (customField) {\n const customFieldObject = getCustomField(customField);\n const icon = customFieldObject?.icon;\n if (icon) {\n Compo = icon;\n }\n }\n\n if (!iconByTypes[type]) {\n return null;\n }\n\n return (\n <IconBox width=\"3.2rem\" shrink={0} {...rest} aria-hidden>\n <Box tag={Compo} />\n </IconBox>\n );\n};\n","import { Box } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nexport const OptionBoxWrapper = styled(Box)`\n width: 100%;\n height: 100%;\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n text-align: left;\n &:hover {\n cursor: pointer;\n background: ${({ theme }) => theme.colors.primary100};\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n }\n`;\n","/**\n *\n * AttributeOption\n *\n */\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Sparkle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { getTrad } from '../../utils/getTrad';\nimport { AttributeIcon, IconByType } from '../AttributeIcon';\n\nimport { OptionBoxWrapper } from './OptionBoxWrapper';\n\nconst newAttributes: string[] = [];\n\nconst NewBadge = () => (\n <Flex grow={1} justifyContent=\"flex-end\">\n <Flex gap={1} hasRadius background=\"alternative100\" padding={`0.2rem 0.4rem`}>\n <Sparkle width={`1rem`} height={`1rem`} fill=\"alternative600\" />\n <Typography textColor=\"alternative600\" variant=\"sigma\">\n New\n </Typography>\n </Flex>\n </Flex>\n);\n\ntype AttributeOptionProps = {\n type: IconByType;\n};\n\nexport const AttributeOption = ({ type = 'text' }: AttributeOptionProps) => {\n const { formatMessage } = useIntl();\n\n const { onClickSelectField } = useFormModalNavigation();\n\n const handleClick = () => {\n const step = type === 'component' ? '1' : null;\n\n onClickSelectField({\n attributeType: type,\n step,\n });\n };\n\n return (\n <OptionBoxWrapper padding={4} tag=\"button\" hasRadius type=\"button\" onClick={handleClick}>\n <Flex>\n <AttributeIcon type={type} />\n <Box paddingLeft={4} width=\"100%\">\n <Flex justifyContent=\"space-between\">\n <Typography fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage({ id: getTrad(`attribute.${type}`), defaultMessage: type })}\n </Typography>\n {newAttributes.includes(type) && <NewBadge />}\n </Flex>\n <Flex>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${type}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n </Box>\n </Flex>\n </OptionBoxWrapper>\n );\n};\n","import { Flex, Grid, KeyboardNavigable } from '@strapi/design-system';\n\nimport { IconByType } from '../AttributeIcon';\n\nimport { AttributeOption } from './AttributeOption';\n\ntype AttributeListProps = {\n attributes: IconByType[][];\n};\n\nexport const AttributeList = ({ attributes }: AttributeListProps) => (\n <KeyboardNavigable tagName=\"button\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8}>\n {attributes.map((attributeRow, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <Grid.Root key={index} gap={3}>\n {attributeRow.map((attribute) => (\n <Grid.Item key={attribute} col={6} direction=\"column\" alignItems=\"stretch\">\n <AttributeOption type={attribute} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n);\n","import * as React from 'react';\n\nimport { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { AttributeIcon, IconByType } from '../AttributeIcon';\n\nimport { OptionBoxWrapper } from './OptionBoxWrapper';\n\nexport type CustomFieldOption = {\n name: string;\n type: IconByType;\n icon: React.ComponentType;\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n intlDescription: {\n id: string;\n defaultMessage: string;\n };\n};\n\ntype CustomFieldOptionProps = {\n customFieldUid: string;\n customField: NonNullable<ReturnType<StrapiAppContextValue['customFields']['get']>>;\n};\n\nexport const CustomFieldOption = ({ customFieldUid, customField }: CustomFieldOptionProps) => {\n const { type, intlLabel, intlDescription } = customField;\n const { formatMessage } = useIntl();\n\n const { onClickSelectCustomField } = useFormModalNavigation();\n\n const handleClick = () => {\n onClickSelectCustomField({\n attributeType: type,\n customFieldUid,\n });\n };\n\n return (\n <OptionBoxWrapper padding={4} tag=\"button\" hasRadius type=\"button\" onClick={handleClick}>\n <Flex>\n <AttributeIcon type={type} customField={customFieldUid} />\n <Box paddingLeft={4}>\n <Flex>\n <Typography fontWeight=\"bold\" textColor=\"neutral800\">\n {formatMessage(intlLabel)}\n </Typography>\n </Flex>\n <Flex>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(intlDescription)}\n </Typography>\n </Flex>\n </Box>\n </Flex>\n </OptionBoxWrapper>\n );\n};\n","import { Box, Flex, Typography, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst EmptyCard = styled(Box)`\n background: ${({ theme }) =>\n `linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${theme.colors.neutral150} 100%)`};\n opacity: 0.33;\n`;\n\nexport const EmptyCardGrid = () => {\n return (\n <Flex wrap=\"wrap\" gap={4}>\n {[...Array(4)].map((_, idx) => {\n return (\n <EmptyCard\n // eslint-disable-next-line react/no-array-index-key\n key={`empty-card-${idx}`}\n height=\"138px\"\n width=\"375px\"\n hasRadius\n />\n );\n })}\n </Flex>\n );\n};\n\nexport const EmptyAttributes = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Box position=\"relative\">\n <EmptyCardGrid />\n <Box position=\"absolute\" top={6} width=\"100%\">\n <Flex alignItems=\"center\" justifyContent=\"center\" direction=\"column\">\n <EmptyDocuments width=\"160px\" height=\"88px\" />\n <Box paddingTop={6} paddingBottom={4}>\n <Box textAlign=\"center\">\n <Typography variant=\"delta\" tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modalForm.empty.heading'),\n defaultMessage: 'Nothing in here yet.',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Typography variant=\"delta\" tag=\"p\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad('modalForm.empty.sub-heading'),\n defaultMessage:\n 'Find what you are looking for through a wide range of extensions.',\n })}\n </Typography>\n </Box>\n </Box>\n </Box>\n <LinkButton\n tag={Link}\n to={`/marketplace?${qs.stringify({ categories: ['Custom fields'] })}`}\n variant=\"secondary\"\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('modalForm.empty.button'),\n defaultMessage: 'Add custom fields',\n })}\n </LinkButton>\n </Flex>\n </Box>\n </Box>\n );\n};\n","import { useStrapiApp } from '@strapi/admin/strapi-admin';\nimport { Flex, Grid, KeyboardNavigable, Link } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\n\nimport { CustomFieldOption } from './CustomFieldOption';\nimport { EmptyAttributes } from './EmptyAttributes';\n\nexport const CustomFieldsList = () => {\n const { formatMessage } = useIntl();\n const getAllCustomFields = useStrapiApp('CustomFieldsList', (state) => state.customFields.getAll);\n // TODO change this once useCustomFields is typed (helper-plugin types are solved)\n const registeredCustomFields = Object.entries(getAllCustomFields());\n\n if (!registeredCustomFields.length) {\n return <EmptyAttributes />;\n }\n\n // Sort the array alphabetically by customField name\n const sortedCustomFields = registeredCustomFields.sort((a, b) =>\n a[1].name > b[1].name ? 1 : -1\n );\n\n return (\n <KeyboardNavigable tagName=\"button\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3}>\n <Grid.Root gap={3}>\n {sortedCustomFields.map(([uid, customField]) => (\n <Grid.Item key={uid} col={6} direction=\"column\" alignItems=\"stretch\">\n <CustomFieldOption key={uid} customFieldUid={uid} customField={customField} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <Link\n href=\"https://docs.strapi.io/developer-docs/latest/development/custom-fields.html\"\n isExternal\n >\n {formatMessage({\n id: getTrad('modalForm.tabs.custom.howToLink'),\n defaultMessage: 'How to add custom fields',\n })}\n </Link>\n </Flex>\n </KeyboardNavigable>\n );\n};\n","/**\n *\n * AttributeOptions\n *\n */\n\nimport { Divider, Flex, Modal, Tabs, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../../utils';\nimport { IconByType } from '../AttributeIcon';\n\nimport { AttributeList } from './AttributeList';\nimport { CustomFieldsList } from './CustomFieldsList';\n\ntype AttributeOptionsProps = {\n attributes: IconByType[][];\n forTarget: string;\n kind: string;\n};\n\nexport const AttributeOptions = ({ attributes, forTarget, kind }: AttributeOptionsProps) => {\n const { formatMessage } = useIntl();\n\n const defaultTabId = getTrad('modalForm.tabs.default');\n const customTabId = getTrad('modalForm.tabs.custom');\n\n const titleIdSuffix = forTarget.includes('component') ? 'component' : kind;\n const titleId = getTrad(`modalForm.sub-header.chooseAttribute.${titleIdSuffix}`);\n\n return (\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"default\">\n <Flex justifyContent=\"space-between\">\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({ id: titleId, defaultMessage: 'Select a field' })}\n </Typography>\n <Tabs.List>\n <Tabs.Trigger value=\"default\">\n {formatMessage({ id: defaultTabId, defaultMessage: 'Default' })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"custom\">\n {formatMessage({ id: customTabId, defaultMessage: 'Custom' })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"default\">\n <AttributeList attributes={attributes} />\n </Tabs.Content>\n <Tabs.Content value=\"custom\">\n <CustomFieldsList />\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n );\n};\n","import { Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface Metadata {\n intlLabel: IntlLabel;\n disabled?: boolean;\n hidden?: boolean;\n}\n\ninterface Option {\n metadatas: Metadata;\n key: string | number;\n value: string | number;\n}\n\ninterface BooleanDefaultValueSelectProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n options: Option[];\n value?: any;\n}\n\nexport const BooleanDefaultValueSelect = ({\n intlLabel,\n name,\n options,\n onChange,\n value = null,\n}: BooleanDefaultValueSelectProps) => {\n const { formatMessage } = useIntl();\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const handleChange = (value: any) => {\n let nextValue: boolean | string = '';\n\n if (value === 'true') {\n nextValue = true;\n }\n\n if (value === 'false') {\n nextValue = false;\n }\n\n onChange({ target: { name, value: nextValue, type: 'select-default-boolean' } });\n };\n\n return (\n <Field.Root name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={(value === null ? '' : value).toString()}>\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {/* No need to translate the options */}\n {intlLabel.defaultMessage}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Field.Root>\n );\n};\n","import { Flex, inputFocusStyle } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled(Flex)`\n position: relative;\n align-items: stretch;\n\n label {\n border-radius: 4px;\n max-width: 50%;\n cursor: pointer;\n user-select: none;\n flex: 1;\n border-radius: 4px;\n border: 1px solid ${({ theme }) => theme.colors.neutral200};\n\n ${inputFocusStyle()}\n }\n\n input {\n position: absolute;\n opacity: 0;\n }\n\n .option {\n height: 100%;\n border-radius: 4px;\n will-change: transform, opacity;\n background: ${({ theme }) => theme.colors.neutral0};\n\n .checkmark {\n position: relative;\n display: block;\n will-change: transform;\n background: ${({ theme }) => theme.colors.neutral0};\n width: ${({ theme }) => theme.spaces[5]};\n height: ${({ theme }) => theme.spaces[5]};\n border: solid 1px ${({ theme }) => theme.colors.neutral300};\n border-radius: 50%;\n\n &:before,\n &:after {\n content: '';\n display: block;\n border-radius: 50%;\n width: ${({ theme }) => theme.spaces[3]};\n height: ${({ theme }) => theme.spaces[3]};\n position: absolute;\n top: 3px;\n left: 3px;\n }\n\n &:after {\n transform: scale(0);\n transition: inherit;\n will-change: transform;\n }\n }\n }\n\n .container input:checked ~ div {\n background: ${({ theme }) => theme.colors.primary100};\n color: ${({ theme }) => theme.colors.primary600};\n .checkmark {\n border: solid 1px ${({ theme }) => theme.colors.primary600};\n &::after {\n background: ${({ theme }) => theme.colors.primary600};\n transform: scale(1);\n }\n }\n }\n`;\n\nexport { Wrapper };\n","import { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Wrapper } from './Styles';\n\nimport type { IntlLabel } from '../../types';\n\ninterface Radio {\n title: IntlLabel;\n description: IntlLabel;\n value: any;\n}\n\ninterface CustomRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n radios?: Radio[];\n value?: string | boolean;\n}\n\nexport const CustomRadioGroup = ({\n intlLabel,\n name,\n onChange,\n radios = [],\n value,\n}: CustomRadioGroupProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\" htmlFor={name} tag=\"label\">\n {formatMessage(intlLabel)}\n </Typography>\n <Wrapper gap={4} alignItems=\"stretch\">\n {radios.map((radio) => {\n return (\n <label htmlFor={radio.value.toString()} key={radio.value} className=\"container\">\n <input\n id={radio.value.toString()}\n name={name}\n className=\"option-input\"\n checked={radio.value === value}\n value={radio.value}\n key={radio.value}\n onChange={onChange}\n type=\"radio\"\n />\n <Box className=\"option\" padding={4}>\n <Flex>\n <Box paddingRight={4}>\n <span className=\"checkmark\" />\n </Box>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Typography fontWeight=\"bold\">{formatMessage(radio.title)}</Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(radio.description)}\n </Typography>\n </Flex>\n </Flex>\n </Box>\n </label>\n );\n })}\n </Wrapper>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { IntlLabel } from '../types';\n\nimport { CustomRadioGroup } from './CustomRadioGroup';\n\ninterface BooleanRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n}\n\nexport const BooleanRadioGroup = ({\n onChange,\n name,\n intlLabel,\n ...rest\n}: BooleanRadioGroupProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const checked = e.target.value !== 'false';\n\n onChange({ target: { name, value: checked, type: 'boolean-radio-group' } });\n };\n\n return <CustomRadioGroup {...rest} name={name} onChange={handleChange} intlLabel={intlLabel} />;\n};\n","import { Box, Checkbox, Field, Flex, NumberInput, TextInput } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { IntlLabel } from '../types';\n\ninterface CheckboxWithNumberFieldProps {\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: any) => void;\n value?: any;\n}\n\nexport const CheckboxWithNumberField = ({\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value = null,\n}: CheckboxWithNumberFieldProps) => {\n const { formatMessage } = useIntl();\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const type = modifiedData.type === 'biginteger' ? 'text' : 'number';\n\n const disabled = !modifiedData.type;\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Checkbox\n id={name}\n name={name}\n onCheckedChange={(value) => {\n const initValue = type === 'text' ? '0' : 0;\n const nextValue = value ? initValue : null;\n\n onChange({ target: { name, value: nextValue } });\n }}\n checked={value !== null}\n >\n {label}\n </Checkbox>\n {value !== null && (\n <Box paddingLeft={6} style={{ maxWidth: '200px' }}>\n {type === 'text' ? (\n <Field.Root error={errorMessage} name={name}>\n <TextInput\n aria-label={label}\n disabled={disabled}\n onChange={onChange}\n value={value === null ? '' : value}\n />\n <Field.Error />\n </Field.Root>\n ) : (\n <Field.Root error={errorMessage} name={name}>\n <NumberInput\n aria-label={label}\n disabled={disabled}\n onValueChange={(value: any) => {\n onChange({ target: { name, value: value ?? 0, type } });\n }}\n value={value || 0}\n />\n <Field.Error />\n </Field.Root>\n )}\n </Box>\n )}\n </Flex>\n );\n};\n","import { useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport { CustomRadioGroup } from './CustomRadioGroup';\n\nimport type { IntlLabel } from '../types';\n\ninterface Radio {\n title: IntlLabel;\n description: IntlLabel;\n value: any;\n}\n\ninterface ContentTypeRadioGroupProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: any) => void;\n radios?: Radio[];\n value?: string | boolean;\n}\n\nexport const ContentTypeRadioGroup = ({ onChange, ...rest }: ContentTypeRadioGroupProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const handleChange = (e: any) => {\n toggleNotification({\n type: 'info',\n message: formatMessage({\n id: getTrad('contentType.kind.change.warning'),\n defaultMessage:\n 'You just changed the kind of a content type: API will be reset (routes, controllers, and services will be overwritten).',\n }),\n });\n\n onChange(e);\n };\n\n return <CustomRadioGroup {...rest} onChange={handleChange} />;\n};\n","/**\n *\n * DraftAndPublishToggle\n *\n */\n\nimport { useState } from 'react';\n\nimport { ConfirmDialog } from '@strapi/admin/strapi-admin';\nimport { Button, Checkbox, CheckboxProps, Dialog, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface DraftAndPublishToggleProps {\n description?: Description;\n disabled?: boolean;\n intlLabel: IntlLabel;\n isCreating: boolean;\n name: string;\n onChange: (value: { target: { name: string; value: boolean } }) => void;\n value?: boolean;\n}\n\nexport const DraftAndPublishToggle = ({\n description,\n disabled = false,\n intlLabel,\n isCreating,\n name,\n onChange,\n value = false,\n}: DraftAndPublishToggleProps) => {\n const { formatMessage } = useIntl();\n const [showWarning, setShowWarning] = useState(false);\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const handleConfirm = () => {\n onChange({ target: { name, value: false } });\n\n setShowWarning(false);\n };\n\n const handleChange: CheckboxProps['onCheckedChange'] = (checked) => {\n if (!checked && !isCreating) {\n setShowWarning(true);\n\n return;\n }\n\n onChange({ target: { name, value: !!checked } });\n };\n\n return (\n <>\n <Field.Root hint={hint} name={name}>\n <Checkbox checked={value} disabled={disabled} onCheckedChange={handleChange}>\n {label}\n </Checkbox>\n <Field.Hint />\n </Field.Root>\n\n <Dialog.Root open={showWarning} onOpenChange={(isOpen) => setShowWarning(isOpen)}>\n <ConfirmDialog\n endAction={\n <Button onClick={handleConfirm} variant=\"danger\" width=\"100%\" justifyContent=\"center\">\n {formatMessage({\n id: getTrad('popUpWarning.draft-publish.button.confirm'),\n defaultMessage: 'Yes, disable',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: getTrad('popUpWarning.draft-publish.message'),\n defaultMessage: 'If you disable the draft & publish, your drafts will be deleted.',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </>\n );\n};\n","/**\n *\n * FormModalEndActions\n *\n */\n\nimport { SyntheticEvent } from 'react';\n\nimport { Button, Flex } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\ntype FormModalEndActionsProps = {\n categoryName?: string;\n deleteCategory: (categoryName: string) => void;\n deleteComponent: () => void;\n deleteContentType: () => void;\n isAttributeModal: boolean;\n isCustomFieldModal: boolean;\n isComponentAttribute: boolean;\n isComponentModal: boolean;\n isComponentToDzModal: boolean;\n isContentTypeModal: boolean;\n isCreatingComponent: boolean;\n isCreatingComponentAttribute: boolean;\n isCreatingComponentInDz: boolean;\n isCreatingComponentWhileAddingAField: boolean;\n isCreatingContentType: boolean;\n isCreatingDz: boolean;\n isDzAttribute: boolean;\n isEditingAttribute: boolean;\n isEditingCategory: boolean;\n isInFirstComponentStep: boolean;\n onSubmitAddComponentAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitAddComponentToDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateContentType: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateComponent: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitCreateDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditCategory: (e: SyntheticEvent) => void;\n onSubmitEditComponent: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditContentType: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditCustomFieldAttribute: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onSubmitEditDz: (e: SyntheticEvent, shouldContinue: boolean) => void;\n onClickFinish: () => void;\n};\n\nexport const FormModalEndActions = ({\n categoryName,\n deleteCategory,\n deleteComponent,\n deleteContentType,\n isAttributeModal,\n isCustomFieldModal,\n isComponentAttribute,\n isComponentToDzModal,\n isContentTypeModal,\n isCreatingComponent,\n isCreatingComponentAttribute,\n isCreatingComponentInDz,\n isCreatingComponentWhileAddingAField,\n isCreatingContentType,\n isCreatingDz,\n isComponentModal,\n isDzAttribute,\n isEditingAttribute,\n isEditingCategory,\n isInFirstComponentStep,\n onSubmitAddComponentAttribute,\n onSubmitAddComponentToDz,\n onSubmitCreateContentType,\n onSubmitCreateComponent,\n onSubmitCreateDz,\n onSubmitEditAttribute,\n onSubmitEditCategory,\n onSubmitEditComponent,\n onSubmitEditContentType,\n onSubmitEditCustomFieldAttribute,\n onSubmitEditDz,\n onClickFinish,\n}: FormModalEndActionsProps) => {\n const { formatMessage } = useIntl();\n\n if (isComponentToDzModal) {\n if (isCreatingComponentInDz) {\n return (\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentToDz(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-first-field-to-created-component'),\n defaultMessage: 'Add first field to the component',\n })}\n </Button>\n );\n }\n\n return (\n <Button\n variant=\"default\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentToDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n );\n }\n\n if (isAttributeModal && isDzAttribute && !isCreatingDz) {\n return (\n <Button\n variant=\"default\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n );\n }\n\n if (isAttributeModal && isDzAttribute && isCreatingDz) {\n return (\n <>\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateDz(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-components-to-dynamiczone'),\n defaultMessage: 'Add components to the zone',\n })}\n </Button>\n {/* // TO FIX fix doesnt close the modal */}\n {/* <Button\n variant=\"default\"\n type=\"button\"\n onClick={e => {\n e.preventDefault();\n\n onSubmitCreateDz(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button> */}\n </>\n );\n }\n\n if (isAttributeModal && isComponentAttribute) {\n if (isInFirstComponentStep) {\n return (\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentAttribute(e, true);\n }}\n >\n {isCreatingComponentAttribute\n ? formatMessage({\n id: getTrad('form.button.configure-component'),\n defaultMessage: 'Configure the component',\n })\n : formatMessage({\n id: getTrad('form.button.select-component'),\n defaultMessage: 'Configure the component',\n })}\n </Button>\n );\n }\n\n return (\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n type=\"submit\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitAddComponentAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {isCreatingComponentWhileAddingAField\n ? formatMessage({\n id: getTrad('form.button.add-first-field-to-created-component'),\n defaultMessage: 'Add first field to the component',\n })\n : formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n variant=\"default\"\n type=\"button\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitAddComponentAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isAttributeModal && !isComponentAttribute && !isDzAttribute) {\n return (\n <Flex gap={2}>\n <Button\n type={isEditingAttribute ? 'button' : 'submit'}\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n type={isEditingAttribute ? 'submit' : 'button'}\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isContentTypeModal) {\n return (\n <Flex gap={2}>\n {!isCreatingContentType && (\n <>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n deleteContentType();\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditContentType(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </>\n )}\n {isCreatingContentType && (\n <Button\n type=\"submit\"\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateContentType(e, true);\n }}\n >\n {formatMessage({\n id: 'global.continue',\n defaultMessage: 'Continue',\n })}\n </Button>\n )}\n </Flex>\n );\n }\n\n if (isComponentModal) {\n return (\n <Flex gap={2}>\n {!isCreatingComponent && (\n <>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n deleteComponent();\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditComponent(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </>\n )}\n {isCreatingComponent && (\n <Button\n type=\"submit\"\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitCreateComponent(e, true);\n }}\n >\n {formatMessage({\n id: 'global.continue',\n defaultMessage: 'Continue',\n })}\n </Button>\n )}\n </Flex>\n );\n }\n\n if (isEditingCategory) {\n return (\n <Flex gap={2}>\n <Button\n type=\"button\"\n variant=\"danger\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n if (categoryName) {\n deleteCategory(categoryName);\n }\n }}\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n <Button\n type=\"submit\"\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditCategory(e);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n if (isCustomFieldModal) {\n return (\n <Flex gap={2}>\n <Button\n type={isEditingAttribute ? 'button' : 'submit'}\n variant=\"secondary\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onSubmitEditCustomFieldAttribute(e, true);\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: getTrad('form.button.add-field'),\n defaultMessage: 'Add another field',\n })}\n </Button>\n <Button\n type={isEditingAttribute ? 'submit' : 'button'}\n variant=\"default\"\n onClick={(e: SyntheticEvent) => {\n e.preventDefault();\n\n onClickFinish();\n onSubmitEditCustomFieldAttribute(e, false);\n }}\n >\n {formatMessage({\n id: 'global.finish',\n defaultMessage: 'Finish',\n })}\n </Button>\n </Flex>\n );\n }\n\n return null;\n};\n","/**\n *\n * FormModalHeader\n *\n */\nimport { Box, Flex, Breadcrumbs, Crumb, Link, Modal } from '@strapi/design-system';\nimport { ArrowLeft } from '@strapi/icons';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\nimport { useFormModalNavigation } from '../hooks/useFormModalNavigation';\nimport { getTrad } from '../utils';\n\nimport { AttributeIcon, IconByType } from './AttributeIcon';\n\nimport type { SchemaType } from '../types';\nimport type { Internal } from '@strapi/types';\n\ninterface Header {\n label: string;\n info?: { category: string; name: string };\n}\n\ninterface FormModalHeaderProps {\n actionType?: string | null;\n attributeName: string;\n attributeType: IconByType;\n categoryName: string;\n contentTypeKind: IconByType;\n dynamicZoneTarget: string;\n forTarget: SchemaType;\n modalType: string | null;\n targetUid: Internal.UID.Schema;\n customFieldUid?: string | null;\n showBackLink?: boolean;\n}\n\nexport const FormModalHeader = ({\n actionType = null,\n attributeName,\n attributeType,\n categoryName,\n contentTypeKind,\n dynamicZoneTarget,\n forTarget,\n modalType = null,\n targetUid,\n customFieldUid = null,\n showBackLink = false,\n}: FormModalHeaderProps) => {\n const { formatMessage } = useIntl();\n const { modifiedData } = useDataManager();\n const { onOpenModalAddField } = useFormModalNavigation();\n\n let icon: IconByType = 'component';\n let headers: Header[] = [];\n\n const schema = modifiedData?.[forTarget]?.[targetUid] || modifiedData?.[forTarget] || null;\n const displayName = schema?.schema.displayName;\n\n if (modalType === 'contentType') {\n icon = contentTypeKind;\n }\n\n if (['component', 'editCategory'].includes(modalType || '')) {\n icon = 'component';\n }\n\n const isCreatingMainSchema = ['component', 'contentType'].includes(modalType || '');\n\n if (isCreatingMainSchema) {\n let headerId = getTrad(`modalForm.component.header-${actionType}`);\n\n if (modalType === 'contentType') {\n headerId = getTrad(`modalForm.${contentTypeKind}.header-create`);\n }\n\n if (actionType === 'edit') {\n headerId = getTrad(`modalForm.header-edit`);\n }\n\n return (\n <Modal.Header>\n <Flex>\n <Box>\n <AttributeIcon type={icon} />\n </Box>\n <Box paddingLeft={3}>\n <Modal.Title>{formatMessage({ id: headerId }, { name: displayName })}</Modal.Title>\n </Box>\n </Flex>\n </Modal.Header>\n );\n }\n\n headers = [\n {\n label: displayName,\n info: { category: schema?.category || null, name: schema?.schema.displayName },\n },\n ];\n\n if (modalType === 'chooseAttribute') {\n icon = ['component', 'components'].includes(forTarget) ? 'component' : schema.schema.kind;\n }\n\n if (modalType === 'addComponentToDynamicZone') {\n icon = 'dynamiczone';\n headers.push({ label: dynamicZoneTarget });\n }\n\n if (modalType === 'attribute' || modalType === 'customField') {\n icon = attributeType;\n headers.push({ label: attributeName });\n }\n\n if (modalType === 'editCategory') {\n const label = formatMessage({\n id: getTrad('modalForm.header.categories'),\n defaultMessage: 'Categories',\n });\n\n headers = [{ label }, { label: categoryName }];\n }\n\n return (\n <Modal.Header>\n <Flex gap={3}>\n {showBackLink && (\n // This is a workaround and should use the LinkButton with a variant that currently doesn't exist\n <Link\n aria-label={formatMessage({\n id: getTrad('modalForm.header.back'),\n defaultMessage: 'Back',\n })}\n startIcon={<ArrowLeft />}\n onClick={() => onOpenModalAddField({ forTarget, targetUid })}\n href=\"#back\"\n isExternal={false}\n />\n )}\n <AttributeIcon type={icon} customField={customFieldUid} />\n\n <Breadcrumbs label={headers.map(({ label }) => label).join(',')}>\n {headers.map(({ label, info }, index, arr) => {\n label = upperFirst(label);\n\n if (!label) {\n return null;\n }\n\n const key = `${label}.${index}`;\n\n if (info?.category) {\n label = `${label} (${upperFirst(info.category)} - ${upperFirst(info.name)})`;\n }\n\n return (\n <Crumb isCurrent={index === arr.length - 1} key={key}>\n {label}\n </Crumb>\n );\n })}\n </Breadcrumbs>\n </Flex>\n </Modal.Header>\n );\n};\n","import { StrapiAppContextValue } from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport upperFirst from 'lodash/upperFirst';\nimport { useIntl } from 'react-intl';\n\nimport { getTrad } from '../utils';\n\nimport type { SchemaType } from '../types';\n\ntype ModalTitleProps = {\n forTarget?: SchemaType;\n step?: string;\n kind?: string;\n modalType?: string;\n actionType?: string;\n};\n\nexport const getModalTitleSubHeader = ({\n modalType,\n forTarget,\n kind,\n actionType,\n step,\n}: ModalTitleProps) => {\n switch (modalType) {\n case 'chooseAttribute':\n return getTrad(\n `modalForm.sub-header.chooseAttribute.${\n forTarget?.includes('component') ? 'component' : kind || 'collectionType'\n }`\n );\n case 'attribute': {\n return getTrad(\n `modalForm.sub-header.attribute.${actionType}${\n step !== 'null' && step !== null && actionType !== 'edit' ? '.step' : ''\n }`\n );\n }\n case 'customField': {\n return getTrad(`modalForm.sub-header.attribute.${actionType}`);\n }\n case 'addComponentToDynamicZone':\n return getTrad('modalForm.sub-header.addComponentToDynamicZone');\n default:\n return getTrad('configurations');\n }\n};\n\ntype FormModalSubHeaderProps = {\n actionType: string;\n modalType: string;\n forTarget: SchemaType;\n kind?: string;\n step?: string;\n attributeType: string;\n attributeName: string;\n customField?: ReturnType<StrapiAppContextValue['customFields']['get']>;\n};\n\nexport const FormModalSubHeader = ({\n actionType,\n modalType,\n forTarget,\n kind,\n step,\n attributeType,\n attributeName,\n customField,\n}: FormModalSubHeaderProps) => {\n const { formatMessage } = useIntl();\n const intlLabel =\n modalType === 'customField'\n ? customField?.intlLabel\n : { id: getTrad(`attribute.${attributeType}`) };\n\n return (\n <Flex direction=\"column\" alignItems=\"flex-start\" paddingBottom={1} gap={1}>\n <Typography tag=\"h2\" variant=\"beta\">\n {formatMessage(\n {\n id: getModalTitleSubHeader({\n actionType,\n forTarget,\n kind,\n step,\n modalType,\n }),\n defaultMessage: 'Add new field',\n },\n {\n type: intlLabel ? upperFirst(formatMessage(intlLabel)) : '',\n name: upperFirst(attributeName),\n step,\n }\n )}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: getTrad(`attribute.${attributeType}.description`),\n defaultMessage: 'A type for modeling data',\n })}\n </Typography>\n </Flex>\n );\n};\n","import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n","import { useEffect, useRef, useState } from 'react';\n\nimport {\n Box,\n Field,\n Flex,\n IconButton,\n inputFocusStyle,\n Searchbar,\n Tooltip,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Search, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nimport { COMPONENT_ICONS } from './constants';\n\nimport type { IntlLabel } from '../../types';\n\nconst IconPickerWrapper = styled(Flex)`\n label {\n ${inputFocusStyle()}\n border-radius: ${({ theme }) => theme.borderRadius};\n border: 1px solid ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\ntype Icons = keyof typeof COMPONENT_ICONS;\n\ninterface IconPickProps {\n iconKey: Icons;\n name: string;\n onChange: (value: any) => void;\n isSelected: boolean;\n ariaLabel: string;\n}\n\nconst IconPick = ({ iconKey, name, onChange, isSelected, ariaLabel }: IconPickProps) => {\n const Icon = COMPONENT_ICONS[iconKey];\n\n return (\n <Field.Root name={name} required={false}>\n <Field.Label>\n <VisuallyHidden>\n {ariaLabel}\n <Field.Input\n type=\"radio\"\n checked={isSelected}\n onChange={onChange}\n value={iconKey}\n aria-checked={isSelected}\n />\n </VisuallyHidden>\n <Flex\n padding={2}\n cursor=\"pointer\"\n hasRadius\n background={isSelected ? 'primary200' : undefined}\n >\n <Icon fill={isSelected ? 'primary600' : 'neutral300'} />\n </Flex>\n </Field.Label>\n </Field.Root>\n );\n};\n\nexport interface IconPickerProps {\n intlLabel: IntlLabel;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const IconPicker = ({ intlLabel, name, onChange, value = '' }: IconPickerProps) => {\n const { formatMessage } = useIntl();\n const [showSearch, setShowSearch] = useState(false);\n const [search, setSearch] = useState('');\n const allIcons = Object.keys(COMPONENT_ICONS) as Icons[];\n const [icons, setIcons] = useState(allIcons);\n const searchIconRef = useRef(null);\n const searchBarRef = useRef(null);\n\n const toggleSearch = () => {\n setShowSearch(!showSearch);\n };\n\n const onChangeSearch = ({ target: { value } }: { target: { value: string } }) => {\n setSearch(value);\n setIcons(() => allIcons.filter((icon) => icon.toLowerCase().includes(value.toLowerCase())));\n };\n\n const onClearSearch = () => {\n toggleSearch();\n setSearch('');\n setIcons(allIcons);\n };\n\n const removeIconSelected = () => {\n onChange({ target: { name, value: '' } });\n };\n\n useEffect(() => {\n if (showSearch) {\n (searchBarRef.current as unknown as HTMLInputElement)?.focus();\n }\n }, [showSearch]);\n\n return (\n <>\n <Flex justifyContent=\"space-between\" paddingBottom={2}>\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\" tag=\"label\">\n {formatMessage(intlLabel)}\n </Typography>\n <Flex gap={1}>\n {showSearch ? (\n <Searchbar\n ref={searchBarRef}\n name=\"searchbar\"\n placeholder={formatMessage({\n id: getTrad('ComponentIconPicker.search.placeholder'),\n defaultMessage: 'Search for an icon',\n })}\n onBlur={() => {\n if (!search) {\n toggleSearch();\n }\n }}\n onChange={onChangeSearch}\n value={search}\n onClear={onClearSearch}\n clearLabel={formatMessage({\n id: getTrad('IconPicker.search.clear.label'),\n defaultMessage: 'Clear the icon search',\n })}\n >\n {formatMessage({\n id: getTrad('IconPicker.search.placeholder.label'),\n defaultMessage: 'Search for an icon',\n })}\n </Searchbar>\n ) : (\n <IconButton\n ref={searchIconRef}\n onClick={toggleSearch}\n withTooltip={false}\n label={formatMessage({\n id: getTrad('IconPicker.search.button.label'),\n defaultMessage: 'Search icon button',\n })}\n variant=\"ghost\"\n >\n <Search />\n </IconButton>\n )}\n {value && (\n <Tooltip\n label={formatMessage({\n id: getTrad('IconPicker.remove.tooltip'),\n defaultMessage: 'Remove the selected icon',\n })}\n >\n <IconButton\n onClick={removeIconSelected}\n withTooltip={false}\n label={formatMessage({\n id: getTrad('IconPicker.remove.button'),\n defaultMessage: 'Remove the selected icon',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n </Tooltip>\n )}\n </Flex>\n </Flex>\n <IconPickerWrapper\n position=\"relative\"\n padding={1}\n background=\"neutral100\"\n hasRadius\n wrap=\"wrap\"\n gap={2}\n maxHeight=\"126px\"\n overflow=\"auto\"\n textAlign=\"center\"\n >\n {icons.length > 0 ? (\n icons.map((iconKey) => (\n <IconPick\n key={iconKey}\n iconKey={iconKey}\n name={name}\n onChange={onChange}\n isSelected={iconKey === value}\n ariaLabel={formatMessage(\n {\n id: getTrad('IconPicker.icon.label'),\n defaultMessage: 'Select {icon} icon',\n },\n { icon: iconKey }\n )}\n />\n ))\n ) : (\n <Box padding={4} grow={2}>\n <Typography variant=\"delta\" textColor=\"neutral600\" textAlign=\"center\">\n {formatMessage({\n id: getTrad('IconPicker.emptyState.label'),\n defaultMessage: 'No icon found',\n })}\n </Typography>\n </Box>\n )}\n </IconPickerWrapper>\n </>\n );\n};\n","import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n\n useEffect(() => {\n if (displayName) {\n const value = nameToSlug(displayName);\n\n try {\n const plural = pluralize(value, 2);\n onChangeRef.current({ target: { name, value: plural } });\n } catch (err) {\n onChangeRef.current({ target: { name, value } });\n }\n } else {\n onChangeRef.current({ target: { name, value: '' } });\n }\n }, [displayName, name]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} />\n <Field.Error />\n </Field.Root>\n );\n};\n","export const parseDateValue = (value: unknown): Date | undefined => {\n if (value instanceof Date && isValidDate(value)) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n const date = new Date(value);\n if (isValidDate(date)) {\n return date;\n }\n }\n};\n\nconst isValidDate = (date: Date): boolean => !isNaN(date.getTime());\n","type TimeChangeHandler = (params: {\n target: { name: string; value: string | undefined; type: string };\n}) => void;\n\ntype TimeChangeParams = {\n value?: string;\n onChange: TimeChangeHandler;\n name: string;\n type: string;\n};\n\n// The backend sends a value which has the following format: '00:45:00.000'\n// but the time picker only supports hours & minutes so we need to mutate the value\nconst removeSeconds = (time: string): string => {\n const [hours, minutes] = time.split(':');\n return `${hours}:${minutes}`;\n};\n\n// we need to send back the value with the same '00:45:00.000' format\nconst addSecondsAndMilliseconds = (time: string): string => {\n return time.split(':').length === 2 ? `${time}:00.000` : time;\n};\n\nconst formatTimeForInput = (value?: string): string | undefined => {\n if (!value) return;\n return value.split(':').length > 2 ? removeSeconds(value) : value;\n};\n\nconst formatTimeForOutput = (value?: string): string | undefined => {\n if (!value) return undefined;\n return addSecondsAndMilliseconds(value);\n};\n\nexport const handleTimeChange = ({ value }: TimeChangeParams): string | undefined => {\n const formattedInputTime = formatTimeForInput(value);\n\n return formattedInputTime;\n};\n\nexport const handleTimeChangeEvent = (\n onChange: TimeChangeHandler,\n name: string,\n type: string,\n time?: string\n): void => {\n const formattedOutputTime = formatTimeForOutput(time);\n\n onChange({\n target: {\n name,\n value: formattedOutputTime,\n type,\n },\n });\n};\n","/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ninterface CustomInputProps<TAttribute extends Schema.Attribute.AnyAttribute>\n extends Omit<GenericInputProps<TAttribute>, 'customInputs'> {\n ref?: React.Ref<HTMLElement>;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: Schema.Attribute.Value<TAttribute>;\n isNullable?: boolean;\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n attribute,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs ? customInputs[type] : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n const valueWithEmptyStringFallback = value ?? '';\n\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={value}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : defaultValue || false}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={value}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={value}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && ['biginteger', 'integer', 'number'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n","import { Menu } from '@strapi/design-system';\nimport { useDispatch } from 'react-redux';\nimport { styled } from 'styled-components';\n\nimport { useDataManager } from '../../../../hooks/useDataManager';\nimport { isAllowedContentTypesForRelations } from '../../../../utils';\nimport { actions } from '../../../FormModal/reducer';\n\ninterface RelationTargetPickerProps {\n oneThatIsCreatingARelationWithAnother: string;\n target: string;\n}\n\nexport const RelationTargetPicker = ({\n oneThatIsCreatingARelationWithAnother,\n target,\n}: RelationTargetPickerProps) => {\n const { contentTypes, sortedContentTypesList } = useDataManager();\n const dispatch = useDispatch();\n // TODO: replace with an obj { relation: 'x', bidirctional: true|false }\n const allowedContentTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n const { plugin = null, schema: { displayName } = { displayName: 'error' } } =\n contentTypes?.[target] ?? {};\n\n const handleSelect =\n ({\n uid,\n plugin,\n title,\n restrictRelationsTo,\n }: {\n uid: string;\n plugin: boolean;\n title: string;\n restrictRelationsTo: any;\n }) =>\n () => {\n const selectedContentTypeFriendlyName = plugin ? `${plugin}_${title}` : title;\n\n dispatch(\n actions.onChangeRelationTarget({\n target: {\n value: uid,\n oneThatIsCreatingARelationWithAnother,\n selectedContentTypeFriendlyName,\n targetContentTypeAllowedRelations: restrictRelationsTo,\n },\n })\n );\n };\n\n /**\n * TODO: This should be a Select but the design doesn't match the\n * styles of the select component and there isn't the ability to\n * change it correctly.\n */\n return (\n <Menu.Root>\n <MenuTrigger>{`${displayName} ${plugin ? `(from: ${plugin})` : ''}`}</MenuTrigger>\n <Menu.Content zIndex=\"popover\">\n {allowedContentTypesForRelation.map(({ uid, title, restrictRelationsTo, plugin }) => (\n <Menu.Item key={uid} onSelect={handleSelect({ uid, plugin, title, restrictRelationsTo })}>\n {title} \n {plugin && <>(from: {plugin})</>}\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst MenuTrigger = styled(Menu.Trigger)`\n max-width: 16.8rem;\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n","import { Box, Divider, Flex, Typography } from '@strapi/design-system';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { GenericInput } from '../../GenericInputs';\n\nimport { RelationTargetPicker } from './RelationTargetPicker/RelationTargetPicker';\n\ninterface RelationFormBoxProps {\n disabled?: boolean;\n error?: Record<string, any>;\n header?: string;\n isMain?: boolean;\n name: string;\n onChange: (value: any) => void;\n oneThatIsCreatingARelationWithAnother?: string;\n target?: string;\n value?: string;\n}\n\nexport const RelationFormBox = ({\n disabled = false,\n error,\n header,\n isMain = false,\n name,\n onChange,\n oneThatIsCreatingARelationWithAnother = '',\n target = '',\n value = '',\n}: RelationFormBoxProps) => {\n return (\n <Box background=\"neutral100\" hasRadius borderColor=\"neutral200\">\n <Flex paddingTop={isMain ? 4 : 1} paddingBottom={isMain ? 3 : 1} justifyContent=\"center\">\n {isMain ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"neutral800\">\n {header}\n </Typography>\n ) : (\n <RelationTargetPicker\n target={target}\n oneThatIsCreatingARelationWithAnother={oneThatIsCreatingARelationWithAnother}\n />\n )}\n </Flex>\n <Divider background=\"neutral200\" />\n <Box padding={4}>\n <GenericInput\n disabled={disabled}\n error={error?.id || null}\n intlLabel={{\n id: getTrad('form.attribute.item.defineRelation.fieldName'),\n defaultMessage: 'Field name',\n }}\n name={name}\n onChange={onChange}\n type=\"text\"\n value={value}\n />\n </Box>\n </Box>\n );\n};\n","import { Box, BoxComponent, Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst Wrapper = styled<BoxComponent>(Box)`\n position: relative;\n width: 100%;\n &::before {\n content: '';\n position: absolute;\n top: calc(50% - 0px);\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.primary600};\n z-index: 0;\n }\n`;\n\nconst IconWrapper = styled<BoxComponent<'button'>>(Box)<{ $isSelected: boolean }>`\n background: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary100' : 'neutral0']};\n border: 1px solid\n ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral200']};\n border-radius: ${({ theme }) => theme.borderRadius};\n z-index: 1;\n flex: 0 0 2.4rem;\n svg {\n width: 2.4rem;\n height: 2.4rem;\n max-width: unset;\n path {\n fill: ${({ theme, $isSelected }) => theme.colors[$isSelected ? 'primary700' : 'neutral500']};\n }\n }\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n`;\n\nconst InfosWrapper = styled<FlexComponent>(Flex)`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n`;\n\nexport { IconWrapper, InfosWrapper, Wrapper };\n","import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { useDataManager } from '../../../hooks/useDataManager';\nimport { getTrad } from '../../../utils/getTrad';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n}\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes, modifiedData } = useDataManager();\n const ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\n const componentRelations = ['oneWay', 'manyWay'];\n const dataType =\n naturePickerType === 'contentType'\n ? get(modifiedData, [naturePickerType, 'schema', 'kind'], '')\n : naturePickerType;\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'schema', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'schema', 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })} </Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })} \n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n","import { Flex } from '@strapi/design-system';\n\nimport { getRelationType } from '../../utils/getRelationType';\n\nimport { RelationFormBox } from './RelationField/RelationField';\nimport { RelationNaturePicker } from './RelationNaturePicker/RelationNaturePicker';\n\ninterface RelationProps {\n formErrors: Record<string, any>;\n mainBoxHeader: string;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n naturePickerType: string;\n}\n\nexport const Relation = ({\n formErrors,\n mainBoxHeader,\n modifiedData,\n naturePickerType,\n onChange,\n}: RelationProps) => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n return (\n <Flex style={{ position: 'relative' }}>\n <RelationFormBox\n isMain\n header={mainBoxHeader}\n error={formErrors?.name || null}\n name=\"name\"\n onChange={onChange}\n value={modifiedData?.name || ''}\n />\n <RelationNaturePicker\n naturePickerType={naturePickerType}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n relationType={relationType!}\n target={modifiedData.target}\n />\n <RelationFormBox\n disabled={['oneWay', 'manyWay'].includes(relationType!)}\n error={formErrors?.targetAttribute || null}\n name=\"targetAttribute\"\n onChange={onChange}\n oneThatIsCreatingARelationWithAnother={mainBoxHeader}\n target={modifiedData.target}\n value={modifiedData?.targetAttribute || ''}\n />\n </Flex>\n );\n};\n","import { useState } from 'react';\n\nimport { ComboboxOption, Combobox, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\n\ninterface SelectCategoryProps {\n error?: string | null;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n };\n name: string;\n onChange: (value: { target: { name: string; value: any; type: string } }) => void;\n value?: string;\n isCreating?: boolean;\n dynamicZoneTarget?: string | null;\n}\n\nexport const SelectCategory = ({\n error = null,\n intlLabel,\n name,\n onChange,\n value = undefined,\n isCreating,\n dynamicZoneTarget,\n}: SelectCategoryProps) => {\n const { formatMessage } = useIntl();\n const { allComponentsCategories } = useDataManager();\n const [categories, setCategories] = useState(allComponentsCategories);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage(intlLabel);\n\n const handleChange = (value: any) => {\n onChange({ target: { name, value, type: 'select-category' } });\n };\n\n const handleCreateOption = (value: any) => {\n setCategories((prev) => [...prev, value]);\n handleChange(value);\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <Combobox\n // TODO: re-enable category edits, renaming categories of already existing components currently breaks other functionality\n // See https://github.com/strapi/strapi/issues/20356\n disabled={!isCreating && !dynamicZoneTarget}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n value={value}\n creatable\n >\n {categories.map((category) => (\n <ComboboxOption key={category} value={category}>\n {category}\n </ComboboxOption>\n ))}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n","import type { ComponentWithChildren } from '../components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents';\nimport type { NestedComponent } from '../components/DataManagerProvider/utils/retrieveNestedComponents';\nimport type { Internal } from '@strapi/types';\n\nconst findComponent = <T extends { component: Internal.UID.Component }>(\n componentUid: Internal.UID.Schema,\n components: Array<T>\n) => {\n return components.find((c) => c.component === componentUid);\n};\n\n/**\n * Recursively calculates the maximum depth of nested child components\n * for a given component UID.\n *\n * @param componentUid - The UID of the component to start from.\n * @param components - The array of all components with their child components.\n * @param currentDepth - The current depth of the recursion. Defaults to 0.\n * @returns The maximum depth of the nested child components.\n */\nexport const getChildrenMaxDepth = (\n componentUid: Internal.UID.Component,\n components: Array<ComponentWithChildren>,\n currentDepth = 0\n) => {\n const component = findComponent(componentUid, components);\n\n // If the component doesn't exist or has no child components, return the current depth.\n if (!component || !component.childComponents || component.childComponents.length === 0) {\n return currentDepth;\n }\n\n let maxDepth = currentDepth;\n\n // Iterate through each child component to calculate their respective depths.\n component.childComponents.forEach((child) => {\n // Recursively calculate the depth of the child component.\n const depth = getChildrenMaxDepth(child.component, components, currentDepth + 1);\n // Update the maximum depth if the child's depth is greater.\n if (depth > maxDepth) {\n maxDepth = depth;\n }\n });\n\n return maxDepth;\n};\n\n/**\n * Calculates the depth of a component within a nested component tree.\n * Depth is defined as the level at which the component is nested.\n * For example, a component at Depth 3 is the third nested component.\n *\n * @param component - The UID of the component to find the depth for.\n * @param components - The array of all nested components.\n * @returns The depth level of the component within the nested tree.\n */\nexport const getComponentDepth = (\n component: Internal.UID.Schema,\n components: Array<NestedComponent>\n) => {\n /**\n * Helper function to recursively calculate the depth of a component.\n *\n * @param currentComponent - The current component being inspected.\n * @param currentLevel - The current level of depth in the tree.\n * @returns An array of depth levels found for the component.\n */\n const getDepth = (currentComponent: NestedComponent, currentLevel: number): Array<number> => {\n const levels = [];\n levels.push(currentLevel);\n\n // If the component has no parent UIDs, return the current levels\n if (!currentComponent.uidsOfAllParents) {\n return levels;\n }\n\n // Iterate over each parent UID to calculate their respective depths\n for (const parentUid of currentComponent.uidsOfAllParents) {\n const parentComponent = findComponent(parentUid, components);\n if (parentComponent) {\n levels.push(...getDepth(parentComponent, currentLevel + 1));\n }\n }\n\n return levels;\n };\n\n const nestedCompo = findComponent(component, components);\n // return depth 0 if component is not nested\n if (!nestedCompo) {\n return 0;\n }\n const compoDepth = Math.max(...getDepth(nestedCompo, 1));\n return compoDepth;\n};\n","import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { MAX_COMPONENT_DEPTH } from '../constants';\nimport { useDataManager } from '../hooks/useDataManager';\nimport { getChildrenMaxDepth, getComponentDepth } from '../utils/getMaxDepth';\n\nimport type { Internal } from '@strapi/types';\ninterface Option {\n uid: string;\n label: string;\n categoryName: string;\n}\n\ninterface SelectComponentProps {\n componentToCreate?: Record<string, any> | null;\n error?: string | null;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n };\n isAddingAComponentToAnotherComponent: boolean;\n isCreating: boolean;\n isCreatingComponentWhileAddingAField: boolean;\n name: string;\n onChange: (value: any) => void;\n targetUid: Internal.UID.Schema;\n value: string;\n forTarget: string;\n}\n\nexport const SelectComponent = ({\n error = null,\n intlLabel,\n isAddingAComponentToAnotherComponent,\n isCreating,\n isCreatingComponentWhileAddingAField,\n componentToCreate,\n name,\n onChange,\n targetUid,\n forTarget,\n value,\n}: SelectComponentProps) => {\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const label = formatMessage(intlLabel);\n\n const {\n componentsGroupedByCategory,\n componentsThatHaveOtherComponentInTheirAttributes,\n nestedComponents,\n } = useDataManager();\n\n const isTargetAComponent = ['component', 'components'].includes(forTarget);\n\n let options: Option[] = Object.entries(componentsGroupedByCategory).reduce(\n (acc: Option[], current) => {\n const [categoryName, components] = current;\n const compos = components.map((component) => {\n return {\n uid: component.uid,\n label: component.schema.displayName,\n categoryName,\n };\n });\n\n return [...acc, ...compos];\n },\n []\n );\n\n if (isAddingAComponentToAnotherComponent) {\n options = options.filter(({ uid }: any) => {\n const maxDepth = getChildrenMaxDepth(uid, componentsThatHaveOtherComponentInTheirAttributes);\n const componentDepth = getComponentDepth(targetUid, nestedComponents);\n const totalDepth = maxDepth + componentDepth;\n return totalDepth <= MAX_COMPONENT_DEPTH;\n });\n }\n\n if (isTargetAComponent) {\n options = options.filter((option) => {\n return option.uid !== targetUid;\n });\n }\n\n if (isCreatingComponentWhileAddingAField) {\n options = [\n {\n uid: value,\n label: componentToCreate?.displayName,\n categoryName: componentToCreate?.category,\n },\n ];\n }\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={isCreatingComponentWhileAddingAField || !isCreating}\n onChange={(value: any) => {\n onChange({ target: { name, value, type: 'select-category' } });\n }}\n value={value || ''}\n >\n {options.map((option) => {\n return (\n <SingleSelectOption key={option.uid} value={option.uid}>\n {`${option.categoryName} - ${option.label}`}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n","import { Field, MultiSelectNested } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useDataManager } from '../hooks/useDataManager';\nimport { getTrad } from '../utils';\nimport { findAttribute } from '../utils/findAttribute';\n\nimport type { Component } from '../types';\n\ntype SelectComponentsProps = {\n dynamicZoneTarget: string;\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string[];\n type?: string;\n };\n }) => void;\n value: string[];\n};\n\nexport const SelectComponents = ({\n dynamicZoneTarget,\n intlLabel,\n name,\n onChange,\n value,\n}: SelectComponentsProps) => {\n const { formatMessage } = useIntl();\n const { componentsGroupedByCategory, modifiedData } = useDataManager();\n const dzSchema = findAttribute(modifiedData.contentType.schema.attributes, dynamicZoneTarget);\n const alreadyUsedComponents = dzSchema?.components || [];\n const filteredComponentsGroupedByCategory = Object.keys(componentsGroupedByCategory).reduce(\n (acc, current) => {\n const filteredComponents = componentsGroupedByCategory[current].filter(({ uid }) => {\n return !alreadyUsedComponents.includes(uid);\n });\n\n if (filteredComponents.length > 0) {\n acc[current] = filteredComponents;\n }\n\n return acc;\n },\n {} as Record<string, Component[]>\n );\n const options = Object.entries(filteredComponentsGroupedByCategory).reduce(\n (acc, current) => {\n const [categoryName, components] = current;\n const section = {\n label: categoryName,\n children: components.map(({ uid, schema: { displayName } }) => {\n return { label: displayName, value: uid };\n }),\n };\n\n acc.push(section);\n\n return acc;\n },\n [] as Array<{ label: string; children: Array<{ label: string; value: string }> }>\n );\n\n const displayedValue = formatMessage(\n {\n id: getTrad('components.SelectComponents.displayed-value'),\n defaultMessage:\n '{number, plural, =0 {# components} one {# component} other {# components}} selected',\n },\n { number: value?.length ?? 0 }\n );\n\n return (\n <Field.Root name={name}>\n <Field.Label>{formatMessage(intlLabel)}</Field.Label>\n <MultiSelectNested\n id=\"select1\"\n customizeContent={() => displayedValue}\n onChange={(values) => {\n onChange({ target: { name, value: values, type: 'select-components' } });\n }}\n options={options}\n value={value || []}\n />\n </Field.Root>\n );\n};\n","import { Field, SingleSelect, SingleSelectOption } from '@strapi/design-system';\nimport { PrimitiveType, useIntl } from 'react-intl';\n\ntype SelectDateTypeProps = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n error?: string;\n modifiedData: {\n default: number;\n max: number;\n min: number;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string | number | null;\n type?: string;\n };\n }) => void;\n options: Array<{\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values: Record<string, PrimitiveType> | undefined;\n };\n disabled?: boolean;\n hidden?: boolean;\n };\n key: string | number;\n value: string | number;\n }>;\n value?: string;\n};\n\nexport const SelectDateType = ({\n intlLabel,\n error = undefined,\n modifiedData,\n name,\n onChange,\n options,\n value = '',\n}: SelectDateTypeProps) => {\n const { formatMessage } = useIntl();\n const label = formatMessage(intlLabel);\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n const handleChange = (nextValue: string | number) => {\n onChange({ target: { name, value: nextValue, type: 'select' } });\n\n if (!value) {\n return;\n }\n\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={value || ''}>\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n intlLabel.values\n )}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n","import { SingleSelectOption, SingleSelect, Field } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ntype SelectNumberProps = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n values?: object;\n };\n error?: string;\n modifiedData: {\n default: number;\n max: number;\n min: number;\n };\n name: string;\n onChange: (value: {\n target: {\n name: string;\n value: string | number | null;\n type?: string;\n };\n }) => void;\n options: Array<{\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n disabled?: boolean;\n hidden?: boolean;\n };\n key: string | number;\n value: string | number;\n }>;\n value?: string;\n};\n\nexport const SelectNumber = ({\n intlLabel,\n error = undefined,\n modifiedData,\n name,\n onChange,\n options,\n value = '',\n}: SelectNumberProps) => {\n const { formatMessage } = useIntl();\n const label = formatMessage(intlLabel);\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n\n const handleChange = (nextValue: string | number) => {\n onChange({ target: { name, value: nextValue, type: 'select' } });\n\n if (!value) {\n return;\n }\n\n if (nextValue === 'biginteger' && value !== 'biginteger') {\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n\n if (modifiedData.max !== undefined && modifiedData.max !== null) {\n onChange({ target: { name: 'max', value: null } });\n }\n\n if (modifiedData.min !== undefined && modifiedData.min !== null) {\n onChange({ target: { name: 'min', value: null } });\n }\n }\n\n if (\n typeof nextValue === 'string' &&\n ['decimal', 'float', 'integer'].includes(nextValue) &&\n value === 'biginteger'\n ) {\n if (modifiedData.default !== undefined && modifiedData.default !== null) {\n onChange({ target: { name: 'default', value: null } });\n }\n\n if (modifiedData.max !== undefined && modifiedData.max !== null) {\n onChange({ target: { name: 'max', value: null } });\n }\n\n if (modifiedData.min !== undefined && modifiedData.min !== null) {\n onChange({ target: { name: 'min', value: null } });\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect onChange={handleChange} value={value || ''}>\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n <Field.Error />\n </Field.Root>\n );\n};\n\nSelectNumber.defaultProps = {\n error: undefined,\n value: '',\n};\n","import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface SingularNameProps {\n description?: IntlLabel | null;\n error?: string | null;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string | null;\n}\n\nexport const SingularName = ({\n description = null,\n error = null,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value = null,\n}: SingularNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n\n useEffect(() => {\n if (displayName) {\n onChangeRef.current({ target: { name, value: nameToSlug(displayName) } });\n } else {\n onChangeRef.current({ target: { name, value: '' } });\n }\n }, [displayName, name]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n","import { Box, Grid, Typography } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { GenericInput } from './GenericInputs';\n\ninterface TabFormProps {\n form: Array<Record<string, any>>;\n formErrors: Record<string, any>;\n genericInputProps: Record<string, any>;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n}\n\n/* eslint-disable react/no-array-index-key */\nexport const TabForm = ({\n form,\n formErrors,\n genericInputProps,\n modifiedData,\n onChange,\n}: TabFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n {form.map((section, sectionIndex) => {\n // Don't display an empty section\n if (section.items.length === 0) {\n return null;\n }\n\n return (\n <Box key={sectionIndex}>\n {section.sectionTitle && (\n <Box paddingBottom={4}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.sectionTitle)}\n </Typography>\n </Box>\n )}\n <Grid.Root gap={4}>\n {section.items.map((input: any, i: number) => {\n const key = `${sectionIndex}.${i}`;\n\n /**\n * Use undefined as the default value because not every input wants a string e.g. Date pickers\n */\n const value = get(modifiedData, input.name, undefined);\n\n // When extending the yup schema of an existing field (like in https://github.com/strapi/strapi/blob/293ff3b8f9559236609d123a2774e3be05ce8274/packages/strapi-plugin-i18n/admin/src/index.js#L52)\n // and triggering a yup validation error in the UI (missing a required field for example)\n // We got an object that looks like: formErrors = { \"pluginOptions.i18n.localized\": {...} }\n // In order to deal with this error, we can't rely on lodash.get to resolve this key\n // - lodash will try to access {pluginOptions: {i18n: {localized: true}}})\n // - and we just want to access { \"pluginOptions.i18n.localized\": {...} }\n // NOTE: this is a hack\n const pluginOptionError = Object.keys(formErrors).find((key) => key === input.name);\n\n // Retrieve the error for a specific input\n const errorId = pluginOptionError\n ? formErrors[pluginOptionError].id\n : get(\n formErrors,\n [\n ...input.name\n .split('.')\n // The filter here is used when creating a component\n // in the component step 1 modal\n // Since the component info is stored in the\n // componentToCreate object we can access the error\n // By removing the key\n .filter((key: string) => key !== 'componentToCreate'),\n 'id',\n ],\n null\n );\n\n if (input.type === 'pushRight') {\n return (\n <Grid.Item\n col={input.size || 6}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <div />\n </Grid.Item>\n );\n }\n\n return (\n <Grid.Item\n col={input.size || 6}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </>\n );\n};\n","import { ReactNode, ChangeEvent } from 'react';\n\nimport { Field, Textarea } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { IntlLabel } from '../types';\n\ninterface TextareaEnumProps {\n description?: IntlLabel | null;\n disabled?: boolean;\n error?: string;\n intlLabel: IntlLabel;\n labelAction?: ReactNode;\n name: string;\n onChange: (value: { target: { name: string; value: string | string[] } }) => void;\n placeholder?: IntlLabel | null;\n value: string | string[] | undefined;\n}\n\nexport const TextareaEnum = ({\n description = null,\n disabled = false,\n error = '',\n intlLabel,\n labelAction,\n name,\n onChange,\n placeholder = null,\n value = '',\n}: TextareaEnumProps) => {\n const { formatMessage } = useIntl();\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const inputValue = Array.isArray(value) ? value.join('\\n') : '';\n\n const handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n const arrayValue = e.target.value.split('\\n');\n\n onChange({ target: { name, value: arrayValue } });\n };\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n disabled={disabled}\n onChange={handleChange}\n placeholder={formattedPlaceholder}\n value={inputValue}\n />\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const nameField = {\n name: 'name',\n type: 'text',\n intlLabel: {\n id: 'global.name',\n defaultMessage: 'Name',\n },\n description: {\n id: getTrad('modalForm.attribute.form.base.name.description'),\n defaultMessage: 'No space is allowed for the name of the attribute',\n },\n // validations: {\n // required: true,\n // },\n};\n","import { nameField } from './nameField';\n\nexport const commonBaseForm = {\n sections: [{ sectionTitle: null, items: [nameField] }],\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const componentForm = {\n base(prefix = '') {\n const sections = [\n {\n sectionTitle: null,\n items: [\n {\n name: `${prefix}displayName`,\n type: 'text',\n intlLabel: {\n id: getTrad('contentType.displayName.label'),\n defaultMessage: 'Display Name',\n },\n },\n {\n name: `${prefix}category`,\n type: 'select-category',\n intlLabel: {\n id: getTrad('modalForm.components.create-component.category.label'),\n defaultMessage: 'Select a category or enter a name to create a new one',\n },\n },\n ],\n },\n {\n sectionTitle: null,\n items: [\n {\n name: `${prefix}icon`,\n type: 'icon-picker',\n size: 12,\n intlLabel: {\n id: getTrad('modalForm.components.icon.label'),\n defaultMessage: 'Icon',\n },\n },\n ],\n },\n ];\n\n return sections;\n },\n advanced() {\n const sections: Array<unknown> = [];\n\n return sections;\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const attributeOptions = {\n default: {\n name: 'default',\n type: 'text',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n },\n max: {\n name: 'max',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.maximum'),\n defaultMessage: 'Maximum value',\n },\n },\n maxLength: {\n name: 'maxLength',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.maximumLength'),\n defaultMessage: 'Maximum length',\n },\n },\n min: {\n name: 'min',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.minimum'),\n defaultMessage: 'Minimum value',\n },\n },\n minLength: {\n name: 'minLength',\n type: 'checkbox-with-number-field',\n intlLabel: {\n id: getTrad('form.attribute.item.minimumLength'),\n defaultMessage: 'Minimum length',\n },\n },\n private: {\n name: 'private',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.privateField'),\n defaultMessage: 'Private field',\n },\n description: {\n id: getTrad('form.attribute.item.privateField.description'),\n defaultMessage: 'This field will not show up in the API response',\n },\n },\n regex: {\n intlLabel: {\n id: getTrad('form.attribute.item.text.regex'),\n defaultMessage: 'RegExp pattern',\n },\n name: 'regex',\n type: 'text',\n description: {\n id: getTrad('form.attribute.item.text.regex.description'),\n defaultMessage: 'The text of the regular expression',\n },\n },\n required: {\n name: 'required',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.requiredField'),\n defaultMessage: 'Required field',\n },\n description: {\n id: getTrad('form.attribute.item.requiredField.description'),\n defaultMessage: \"You won't be able to create an entry if this field is empty\",\n },\n },\n unique: {\n name: 'unique',\n type: 'checkbox',\n intlLabel: {\n id: getTrad('form.attribute.item.uniqueField'),\n defaultMessage: 'Unique field',\n },\n description: {\n id: getTrad('form.attribute.item.uniqueField.description'),\n defaultMessage:\n \"You won't be able to create an entry if there is an existing entry with identical content\",\n },\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\nimport { componentForm } from '../component/componentForm';\n\nimport { attributeOptions } from './attributeOptions';\n\ntype DataType = 'biginteger' | 'string' | 'integer' | 'float' | 'decimal';\n\nexport const advancedForm = {\n blocks() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n boolean() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n type: 'select-default-boolean',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n name: 'default',\n options: [\n {\n value: 'true',\n key: 'true',\n metadatas: { intlLabel: { id: 'true', defaultMessage: 'true' } },\n },\n {\n value: '',\n key: 'null',\n metadatas: { intlLabel: { id: 'null', defaultMessage: 'null' } },\n },\n {\n value: 'false',\n key: 'false',\n metadatas: { intlLabel: { id: 'false', defaultMessage: 'false' } },\n },\n ],\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n component({ repeatable }: { repeatable: boolean }, step: string) {\n if (step === '1') {\n return { sections: componentForm.advanced() };\n }\n\n if (repeatable) {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.private,\n attributeOptions.max,\n attributeOptions.min,\n ],\n },\n ],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n date({ type }: { type: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: type || 'date',\n value: null,\n withDefaultValue: false,\n disabled: !type,\n autoFocus: false,\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.unique, attributeOptions.private],\n },\n ],\n };\n },\n dynamiczone() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.max, attributeOptions.min],\n },\n ],\n };\n },\n email() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...attributeOptions.default,\n type: 'email',\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n enumeration(data: { enum: Array<string> }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n name: 'default',\n type: 'select',\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n },\n },\n ...(data.enum || [])\n .filter((value, index) => data.enum.indexOf(value) === index && value)\n .map((value) => {\n return {\n key: value,\n value,\n metadatas: {\n intlLabel: { id: `${value}.no-override`, defaultMessage: value },\n },\n };\n }),\n ],\n },\n {\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.graphql'),\n defaultMessage: 'Name override for GraphQL',\n },\n name: 'enumName',\n type: 'text',\n validations: {},\n description: {\n id: getTrad('form.attribute.item.enumeration.graphql.description'),\n defaultMessage: 'Allows you to override the default generated name for GraphQL',\n },\n },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n json() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: getTrad('form.attribute.media.allowed-types'),\n defaultMessage: 'Select allowed types of media',\n },\n name: 'allowedTypes',\n type: 'allowed-types-select',\n size: 7,\n value: '',\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.required, attributeOptions.private],\n },\n ],\n };\n },\n number(data: { type: DataType }) {\n const inputStep = data.type === 'decimal' || data.type === 'float' ? 'any' : 1;\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'default',\n type: data.type === 'biginteger' ? 'text' : 'number',\n step: inputStep,\n intlLabel: {\n id: getTrad('form.attribute.settings.default'),\n defaultMessage: 'Default value',\n },\n validations: {},\n },\n ],\n },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.max,\n attributeOptions.min,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n password() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [attributeOptions.private],\n },\n ],\n };\n },\n richtext() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default] },\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [attributeOptions.default, attributeOptions.regex] },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.unique,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n uid(data: { targetField: string }) {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n { ...attributeOptions.default, disabled: Boolean(data.targetField), type: 'text' },\n ],\n },\n\n {\n sectionTitle: {\n id: 'global.settings',\n defaultMessage: 'Settings',\n },\n items: [\n attributeOptions.required,\n attributeOptions.maxLength,\n attributeOptions.minLength,\n attributeOptions.private,\n ],\n },\n ],\n };\n },\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const componentField = {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'createComponent',\n type: 'boolean-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.attribute.component.option.create'),\n defaultMessage: 'Create a new component',\n },\n description: {\n id: getTrad('form.attribute.component.option.create.description'),\n defaultMessage:\n 'A component is shared across types and components, it will be available and accessible everywhere.',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.component.option.reuse-existing'),\n defaultMessage: 'Use an existing component',\n },\n description: {\n id: getTrad('form.attribute.component.option.reuse-existing.description'),\n defaultMessage:\n 'Reuse a component already created to keep your data consistent across content-types.',\n },\n value: false,\n },\n ],\n};\n","import { getTrad } from '../../../utils/getTrad';\nimport { componentField } from '../component/componentField';\nimport { componentForm } from '../component/componentForm';\n\nimport { nameField } from './nameField';\n\nexport const baseForm = {\n component(data: { createComponent: boolean }, step: string) {\n if (step === '1') {\n const itemsToConcat =\n data.createComponent === true ? componentForm.base('componentToCreate.') : [];\n\n return {\n sections: [{ sectionTitle: null, items: [componentField] }, ...itemsToConcat],\n };\n }\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n name: 'component',\n type: 'select-component',\n intlLabel: {\n id: getTrad('modalForm.attributes.select-component'),\n defaultMessage: 'Select a component',\n },\n isMultiple: false,\n },\n ],\n },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'repeatable',\n type: 'boolean-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.attribute.component.option.repeatable'),\n defaultMessage: 'Repeatable component',\n },\n description: {\n id: getTrad('form.attribute.component.option.repeatable.description'),\n defaultMessage:\n 'Best for multiple instances (array) of ingredients, meta tags, etc..',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.component.option.single'),\n defaultMessage: 'Single component',\n },\n description: {\n id: getTrad('form.attribute.component.option.single.description'),\n defaultMessage:\n 'Best for grouping fields like full address, main information, etc...',\n },\n value: false,\n },\n ],\n },\n ],\n },\n ],\n };\n },\n date() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n type: 'select-date',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n hidden: true,\n },\n },\n {\n key: 'date',\n value: 'date',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.date'),\n defaultMessage: 'date (ex: 01/01/{currentYear})',\n values: { currentYear: new Date().getFullYear() },\n },\n },\n },\n {\n key: 'datetime',\n value: 'datetime',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.datetime'),\n defaultMessage: 'datetime (ex: 01/01/{currentYear} 00:00 AM)',\n values: { currentYear: new Date().getFullYear() },\n },\n },\n },\n {\n key: 'time',\n value: 'time',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.date.type.time'),\n defaultMessage: 'time (ex: 00:00 AM)',\n },\n },\n },\n ],\n },\n ],\n },\n ],\n };\n },\n enumeration() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n name: 'enum',\n type: 'textarea-enum',\n size: 6,\n intlLabel: {\n id: getTrad('form.attribute.item.enumeration.rules'),\n defaultMessage: 'Values (one line per value)',\n },\n placeholder: {\n id: getTrad('form.attribute.item.enumeration.placeholder'),\n defaultMessage: 'Ex:\\nmorning\\nnoon\\nevening',\n },\n validations: {\n required: true,\n },\n },\n ],\n },\n ],\n };\n },\n media() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'multiple',\n size: 12,\n type: 'boolean-radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.media.option.multiple'),\n defaultMessage: 'Multiple media',\n },\n description: {\n id: getTrad('form.attribute.media.option.multiple.description'),\n defaultMessage: 'Best for sliders, carousels or multiple files download',\n },\n value: true,\n },\n {\n title: {\n id: getTrad('form.attribute.media.option.single'),\n defaultMessage: 'Single media',\n },\n description: {\n id: getTrad('form.attribute.media.option.single.description'),\n defaultMessage: 'Best for avatar, profile picture or cover',\n },\n value: false,\n },\n ],\n },\n ],\n },\n ],\n };\n },\n number() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type'),\n defaultMessage: 'Number format',\n },\n name: 'type',\n type: 'select-number',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: {\n intlLabel: {\n id: 'components.InputSelect.option.placeholder',\n defaultMessage: 'Choose here',\n },\n hidden: true,\n },\n },\n {\n key: 'integer',\n value: 'integer',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.integer'),\n defaultMessage: 'integer (ex: 10)',\n },\n },\n },\n {\n key: 'biginteger',\n value: 'biginteger',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.biginteger'),\n defaultMessage: 'biginteger (ex: 123456789)',\n },\n },\n },\n {\n key: 'decimal',\n value: 'decimal',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.decimal'),\n defaultMessage: 'decimal (ex: 2.22)',\n },\n },\n },\n {\n key: 'float',\n value: 'float',\n metadatas: {\n intlLabel: {\n id: getTrad('form.attribute.item.number.type.float'),\n defaultMessage: 'decimal (ex: 3.3333333)',\n },\n },\n },\n ],\n },\n ],\n },\n ],\n };\n },\n relation() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: { id: 'FIXME', defaultMessage: 'FIXME' },\n name: 'relation',\n size: 12,\n type: 'relation',\n },\n ],\n },\n ],\n };\n },\n string() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n size: 12,\n type: 'radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.text.option.short-text'),\n defaultMessage: 'Sort text',\n },\n description: {\n id: getTrad('form.attribute.text.option.short-text.description'),\n defaultMessage:\n 'Best for titles, names, links (URL). It also enables exact search on the field.',\n },\n value: 'string',\n },\n {\n title: {\n id: getTrad('form.attribute.text.option.long-text'),\n defaultMessage: 'Long text',\n },\n description: {\n id: getTrad('form.attribute.text.option.long-text.description'),\n defaultMessage: 'Best for descriptions, biography. Exact search is disabled.',\n },\n value: 'text',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n text() {\n return {\n sections: [\n { sectionTitle: null, items: [nameField] },\n {\n sectionTitle: null,\n items: [\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'type',\n size: 12,\n type: 'radio-group',\n radios: [\n {\n title: {\n id: getTrad('form.attribute.text.option.short-text'),\n defaultMessage: 'Sort text',\n },\n description: {\n id: getTrad('form.attribute.text.option.short-text.description'),\n defaultMessage:\n 'Best for titles, names, links (URL). It also enables exact search on the field.',\n },\n value: 'string',\n },\n {\n title: {\n id: getTrad('form.attribute.text.option.long-text'),\n defaultMessage: 'Long text',\n },\n description: {\n id: getTrad('form.attribute.text.option.long-text.description'),\n defaultMessage: 'Best for descriptions, biography. Exact search is disabled.',\n },\n value: 'text',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n uid(_data: unknown, step: string, attributes: Array<{ type: string; name: string }>) {\n const options = attributes\n .filter(({ type }) => ['string', 'text'].includes(type))\n .map(({ name }) => ({\n key: name,\n value: name,\n metadatas: {\n intlLabel: { id: `${name}.no-override`, defaultMessage: name },\n },\n }));\n\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n ...nameField,\n placeholder: {\n id: getTrad('modalForm.attribute.form.base.name.placeholder'),\n defaultMessage: 'e.g. slug, seoUrl, canonicalUrl',\n },\n },\n {\n intlLabel: {\n id: getTrad('modalForm.attribute.target-field'),\n defaultMessage: 'Attached field',\n },\n name: 'targetField',\n type: 'select',\n options: [\n {\n key: '__null_reset_value__',\n value: '',\n metadatas: { intlLabel: { id: 'global.none', defaultMessage: 'None' } },\n },\n ...options,\n ],\n },\n ],\n },\n ],\n };\n },\n};\n","import { advancedForm } from './advancedForm';\nimport { baseForm } from './baseForm';\n\nexport const attributesForm = {\n advanced: advancedForm,\n base: baseForm,\n};\n","import slugify from '@sindresorhus/slugify';\n\nexport const toRegressedEnumValue = (value: string | undefined) => {\n if (!value) {\n return '';\n }\n return slugify(value, {\n decamelize: false,\n lowercase: false,\n separator: '_',\n });\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport toNumber from 'lodash/toNumber';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../../utils/getTrad';\n\nconst NAME_REGEX = /^[A-Za-z][_0-9A-Za-z]*$/;\n\nconst alreadyUsedAttributeNames = (\n usedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'attributeNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !usedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst getUsedContentTypeAttributeNames = (\n ctShema: any,\n isEdition: boolean,\n attributeNameToEdit: string\n) => {\n const attributes = ctShema?.schema?.attributes ?? {};\n\n return Object.keys(attributes).filter((attr) => {\n if (isEdition) {\n return attr !== attributeNameToEdit;\n }\n\n return true;\n });\n};\n\nconst isNameAllowed = (\n reservedNames: Array<string>\n): yup.TestConfig<string | undefined, Record<string, unknown>> => {\n return {\n name: 'forbiddenAttributeName',\n message: getTrad('error.attributeName.reserved-name'),\n test(value: string | undefined) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedNames.some((existingKey) => {\n return snakeCase(existingKey) === snakeCaseKey;\n });\n },\n };\n};\n\nconst validators = {\n default: () => yup.string().nullable(),\n max: () => yup.number().integer().nullable(),\n min: () =>\n yup\n .number()\n .integer()\n .when('max', (max, schema) => {\n if (max) {\n return schema.max(max, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n maxLength: () => yup.number().integer().positive(getTrad('error.validation.positive')).nullable(),\n minLength: () =>\n yup\n .number()\n .integer()\n .min(1)\n .when('maxLength', (maxLength, schema) => {\n if (maxLength) {\n return schema.max(maxLength, getTrad('error.validation.minSupMax'));\n }\n\n return schema;\n })\n .nullable(),\n name(usedNames: Array<string>, reservedNames: Array<string>) {\n return yup\n .string()\n .test(alreadyUsedAttributeNames(usedNames))\n .test(isNameAllowed(reservedNames))\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id);\n },\n required: () => yup.boolean(),\n type: () => yup.string().required(errorsTrads.required.id),\n unique: () => yup.boolean().nullable(),\n};\n\nconst createTextShape = (usedAttributeNames: Array<string>, reservedNames: Array<string>) => {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n regex: yup\n .string()\n .test({\n name: 'isValidRegExpPattern',\n message: getTrad('error.validation.regex'),\n test(value) {\n try {\n return new RegExp(value || '') !== null;\n } catch (e) {\n return false;\n }\n },\n })\n .nullable(),\n };\n\n return shape;\n};\n\ntype GenericIsMinSuperiorThanMax<T extends (string | null) | number> = yup.TestConfig<\n T | undefined,\n Record<string, unknown>\n>;\n\nconst isMinSuperiorThanMax = <\n T extends (string | null) | number,\n>(): GenericIsMinSuperiorThanMax<T> => ({\n name: 'isMinSuperiorThanMax',\n message: getTrad('error.validation.minSupMax'),\n test(min: T | undefined) {\n if (!min) {\n return true;\n }\n\n const { max } = (this as any).parent;\n\n if (!max) {\n return true;\n }\n\n if (Number.isNaN(toNumber(min))) {\n return true;\n }\n\n return toNumber(max) >= toNumber(min);\n },\n});\n\nexport {\n alreadyUsedAttributeNames,\n createTextShape,\n getUsedContentTypeAttributeNames,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport uniq from 'lodash/uniq';\nimport * as yup from 'yup';\n\nimport { getRelationType } from '../../../utils/getRelationType';\nimport { getTrad } from '../../../utils/getTrad';\nimport { toRegressedEnumValue } from '../../../utils/toRegressedEnumValue';\n\nimport {\n alreadyUsedAttributeNames,\n createTextShape,\n isMinSuperiorThanMax,\n isNameAllowed,\n NAME_REGEX,\n validators,\n} from './validation/common';\n\nimport type { Schema } from '@strapi/types';\n\nexport const attributeTypes = {\n date(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n datetime(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n time(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n default(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n };\n\n return yup.object(shape);\n },\n biginteger(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/),\n unique: validators.unique(),\n required: validators.required(),\n max: yup\n .string()\n .nullable()\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n min: yup\n .string()\n .nullable()\n .test(isMinSuperiorThanMax<string | null>())\n .matches(/^-?\\d*$/, errorsTrads.regex.id),\n };\n\n return yup.object(shape);\n },\n boolean(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n default: yup.boolean().nullable(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n component(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n component: yup.string().required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n },\n decimal(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number(),\n required: validators.required(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n dynamiczone(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n email(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.string().email().nullable(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n enumeration(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n /**\n * For enumerations the least common denomiator is GraphQL, where\n * values needs to match the secure name regex:\n * GraphQL Spec https://spec.graphql.org/June2018/#sec-Names\n *\n * Therefore we need to make sure our users only use values, which\n * can be returned by GraphQL, by checking the regressed values\n * agains the GraphQL regex.\n *\n * TODO V5: check if we can avoid this coupling by moving this logic\n * into the GraphQL plugin.\n */\n const GRAPHQL_ENUM_REGEX = /^[_A-Za-z][_0-9A-Za-z]*$/;\n\n const shape = {\n name: yup\n .string()\n .test(alreadyUsedAttributeNames(usedAttributeNames))\n .test(isNameAllowed(reservedNames))\n .matches(GRAPHQL_ENUM_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n enum: yup\n .array()\n .of(yup.string())\n .min(1, errorsTrads.min.id)\n .test({\n name: 'areEnumValuesUnique',\n message: getTrad('error.validation.enum-duplicate'),\n test(values) {\n if (!values) {\n return false;\n }\n const duplicates = uniq(\n values\n .map(toRegressedEnumValue)\n .filter((value, index, values) => values.indexOf(value) !== index)\n );\n\n return !duplicates.length;\n },\n })\n .test({\n name: 'doesNotHaveEmptyValues',\n message: getTrad('error.validation.enum-empty-string'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return !values.map(toRegressedEnumValue).some((val) => val === '');\n },\n })\n .test({\n name: 'doesMatchRegex',\n message: getTrad('error.validation.enum-regex'),\n test: (values) => {\n if (!values) {\n return false;\n }\n return values\n .map(toRegressedEnumValue)\n .every((value) => GRAPHQL_ENUM_REGEX.test(value));\n },\n }),\n enumName: yup.string().nullable(),\n };\n\n return yup.object(shape);\n },\n float(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n default: yup.number(),\n max: yup.number(),\n min: yup.number().test(isMinSuperiorThanMax<number>()),\n };\n\n return yup.object(shape);\n },\n integer(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: yup.number().integer(),\n unique: validators.unique(),\n required: validators.required(),\n max: validators.max(),\n min: validators.min(),\n };\n\n return yup.object(shape);\n },\n json(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n required: validators.required(),\n unique: validators.unique(),\n };\n\n return yup.object(shape);\n },\n media(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n multiple: yup.boolean(),\n required: validators.required(),\n allowedTypes: yup\n .array()\n .of(yup.string().oneOf(['images', 'videos', 'files', 'audios']))\n .min(1)\n .nullable(),\n };\n\n return yup.object(shape);\n },\n password(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n relation(\n usedAttributeNames: Array<string>,\n reservedNames: Array<string>,\n alreadyTakenTargetAttributes: Array<{ name: string }>,\n {\n initialData,\n modifiedData,\n }: {\n initialData: { targetAttribute?: string };\n modifiedData: {\n name?: string;\n relation?: Schema.Attribute.RelationKind.WithTarget;\n targetAttribute?: string;\n };\n }\n ) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n target: yup.string().required(errorsTrads.required.id),\n relation: yup.string().required(),\n type: yup.string().required(),\n targetAttribute: yup.lazy(() => {\n const relationType = getRelationType(modifiedData.relation, modifiedData.targetAttribute);\n\n if (relationType === 'oneWay' || relationType === 'manyWay') {\n return yup.string().nullable();\n }\n\n const schema = yup.string().test(isNameAllowed(reservedNames));\n const initialForbiddenName = [\n ...alreadyTakenTargetAttributes.map(({ name }) => name),\n modifiedData.name,\n ];\n\n const forbiddenTargetAttributeName = initialForbiddenName.filter(\n (val) => val !== initialData.targetAttribute\n );\n\n return schema\n .matches(NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'forbiddenTargetAttributeName',\n message: getTrad('error.validation.relation.targetAttribute-taken'),\n test(value) {\n if (!value) {\n return false;\n }\n\n return !forbiddenTargetAttributeName.includes(value);\n },\n })\n .required(errorsTrads.required.id);\n }),\n };\n\n return yup.object(shape);\n },\n richtext(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n blocks(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = {\n name: validators.name(usedAttributeNames, reservedNames),\n type: validators.type(),\n default: validators.default(),\n unique: validators.unique(),\n required: validators.required(),\n maxLength: validators.maxLength(),\n minLength: validators.minLength(),\n };\n\n return yup.object(shape);\n },\n string(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n text(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n uid(usedAttributeNames: Array<string>, reservedNames: Array<string>) {\n const shape = createTextShape(usedAttributeNames, reservedNames);\n\n return yup.object(shape);\n },\n};\n","export const CATEGORY_NAME_REGEX = /^[A-Za-z][-_0-9A-Za-z]*$/;\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport * as yup from 'yup';\n\nimport { CATEGORY_NAME_REGEX } from './regex';\n\nexport const createCategorySchema = (usedCategoryNames: Array<string>) => {\n const shape = {\n name: yup\n .string()\n .matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id)\n .test({\n name: 'nameNotAllowed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n return !usedCategoryNames.includes(value?.toLowerCase());\n },\n })\n .required(errorsTrads.required.id),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nexport const categoryForm = {\n base: {\n sections: [\n {\n sectionTitle: null,\n items: [\n {\n autoFocus: true,\n name: 'name',\n type: 'text',\n intlLabel: {\n id: 'global.name',\n defaultMessage: 'Name',\n },\n\n // validations: {\n // required: true,\n // },\n description: {\n id: getTrad('modalForm.editCategory.base.name.description'),\n defaultMessage: 'No space is allowed for the name of the category',\n },\n },\n ],\n },\n ],\n },\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { CATEGORY_NAME_REGEX } from '../category/regex';\nimport { createComponentUid } from '../utils/createUid';\n\nexport const createComponentSchema = (\n usedComponentNames: Array<string>,\n reservedNames: Array<string>,\n category: string,\n takenCollectionNames: Array<string>,\n currentCollectionName: string\n) => {\n const shape = {\n displayName: yup\n .string()\n .test({\n name: 'nameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const name = createComponentUid(value, category);\n\n const snakeCaseKey = snakeCase(name);\n const snakeCaseCollectionName = snakeCase(currentCollectionName);\n\n return (\n usedComponentNames.every((reserved) => {\n return snakeCase(reserved) !== snakeCaseKey;\n }) &&\n takenCollectionNames.every(\n (collectionName) => snakeCase(collectionName) !== snakeCaseCollectionName\n )\n );\n },\n })\n .test({\n name: 'nameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n return reservedNames.every((reserved) => {\n return snakeCase(reserved) !== snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n category: yup\n .string()\n .matches(CATEGORY_NAME_REGEX, errorsTrads.regex.id)\n .required(errorsTrads.required.id),\n\n icon: yup.string(),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../../utils/getTrad';\n\nconst nameField = {\n name: 'displayName',\n type: 'text',\n intlLabel: {\n id: getTrad('contentType.displayName.label'),\n defaultMessage: 'Display name',\n },\n};\n\nexport const contentTypeForm = {\n advanced: {\n default() {\n return {\n sections: [\n {\n items: [\n {\n intlLabel: {\n id: getTrad('contentType.draftAndPublish.label'),\n defaultMessage: 'Draft & publish',\n },\n description: {\n id: getTrad('contentType.draftAndPublish.description'),\n defaultMessage:\n 'Allows writing a draft version of an entry, before it is published',\n },\n name: 'draftAndPublish',\n type: 'toggle-draft-publish',\n validations: {},\n },\n ],\n },\n ],\n };\n },\n },\n base: {\n create() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n description: {\n id: getTrad('contentType.apiId-singular.description'),\n defaultMessage:\n 'Used to generate the API routes and databases tables/collections',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-singular.label'),\n defaultMessage: 'API ID (Singular)',\n },\n name: 'singularName',\n type: 'text-singular',\n },\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n description: {\n id: getTrad('contentType.apiId-plural.description'),\n defaultMessage: 'Pluralized API ID',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-plural.label'),\n defaultMessage: 'API ID (Plural)',\n },\n name: 'pluralName',\n type: 'text-plural',\n },\n ],\n },\n ],\n };\n },\n edit() {\n return {\n sections: [\n {\n sectionTitle: null,\n items: [\n nameField,\n {\n disabled: true,\n description: {\n id: getTrad('contentType.apiId-singular.description'),\n defaultMessage:\n 'Used to generate the API routes and databases tables/collections',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-singular.label'),\n defaultMessage: 'API ID (Singular)',\n },\n name: 'singularName',\n type: 'text',\n },\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n disabled: true,\n description: {\n id: getTrad('contentType.apiId-plural.description'),\n defaultMessage: 'Pluralized API ID',\n },\n intlLabel: {\n id: getTrad('contentType.apiId-plural.label'),\n defaultMessage: 'API ID (Plural)',\n },\n name: 'pluralName',\n type: 'text',\n },\n {\n intlLabel: {\n id: 'global.type',\n defaultMessage: 'Type',\n },\n name: 'kind',\n type: 'content-type-radio-group',\n size: 12,\n radios: [\n {\n title: {\n id: getTrad('form.button.collection-type.name'),\n defaultMessage: 'Collection Type',\n },\n description: {\n id: getTrad('form.button.collection-type.description'),\n defaultMessage:\n 'Best for multiple instances like articles, products, comments, etc.',\n },\n value: 'collectionType',\n },\n {\n title: {\n id: getTrad('form.button.single-type.name'),\n defaultMessage: 'Single Type',\n },\n description: {\n id: getTrad('form.button.single-type.description'),\n defaultMessage: 'Best for single instance like about us, homepage, etc.',\n },\n value: 'singleType',\n },\n ],\n },\n ],\n },\n ],\n };\n },\n },\n};\n","import { translatedErrors as errorsTrads } from '@strapi/admin/strapi-admin';\nimport { snakeCase } from 'lodash/fp';\nimport * as yup from 'yup';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { createUid } from '../utils/createUid';\n\ntype CreateContentTypeSchemaParams = {\n usedContentTypeNames: Array<string>;\n reservedModels: Array<string>;\n singularNames: Array<string>;\n pluralNames: Array<string>;\n collectionNames: Array<string>;\n};\n\nexport const createContentTypeSchema = ({\n usedContentTypeNames = [],\n reservedModels = [],\n singularNames = [],\n pluralNames = [],\n collectionNames = [],\n}: CreateContentTypeSchemaParams) => {\n const shape = {\n displayName: yup\n .string()\n .test({\n name: 'nameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const name = createUid(value);\n\n const snakeCaseKey = snakeCase(name);\n\n return !usedContentTypeNames.some((value) => {\n return snakeCase(value) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'nameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n pluralName: yup\n .string()\n .test({\n name: 'pluralNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !pluralNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralNameAlreadyUsedAsSingular',\n message: getTrad('error.contentType.pluralName-equals-singularName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !singularNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralAndSingularAreUnique',\n message: getTrad('error.contentType.pluralName-used'),\n test(value, context) {\n if (!value) {\n return false;\n }\n\n return snakeCase(context.parent.singularName) !== snakeCase(value);\n },\n })\n .test({\n name: 'pluralNameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralNameNotAlreadyUsedInCollectionName',\n message: getTrad('error.contentType.pluralName-equals-collectionName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !collectionNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n singularName: yup\n .string()\n .test({\n name: 'singularNameAlreadyUsed',\n message: errorsTrads.unique.id,\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !singularNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'singularNameAlreadyUsedAsPlural',\n message: getTrad('error.contentType.singularName-equals-pluralName'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !pluralNames.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .test({\n name: 'pluralAndSingularAreUnique',\n message: getTrad('error.contentType.singularName-used'),\n test(value, context) {\n if (!value) {\n return false;\n }\n\n return snakeCase(context.parent.pluralName) !== snakeCase(value);\n },\n })\n .test({\n name: 'singularNameNotAllowed',\n message: getTrad('error.contentTypeName.reserved-name'),\n test(value) {\n if (!value) {\n return false;\n }\n\n const snakeCaseKey = snakeCase(value);\n\n return !reservedModels.some((key) => {\n return snakeCase(key) === snakeCaseKey;\n });\n },\n })\n .required(errorsTrads.required.id),\n draftAndPublish: yup.boolean(),\n kind: yup.string().oneOf(['singleType', 'collectionType']),\n };\n\n return yup.object(shape);\n};\n","import { getTrad } from '../../utils/getTrad';\n\nimport { componentField } from './component/componentField';\nimport { componentForm } from './component/componentForm';\n\nexport const dynamiczoneForm = {\n advanced: {\n default() {\n return {\n sections: componentForm.advanced(),\n };\n },\n },\n base: {\n createComponent() {\n return {\n sections: [\n { sectionTitle: null, items: [componentField] },\n ...componentForm.base('componentToCreate.'),\n ],\n };\n },\n default() {\n return {\n sections: [\n { sectionTitle: null, items: [componentField] },\n {\n sectionTitle: null,\n items: [\n {\n type: 'pushRight',\n size: 6,\n intlLabel: { id: '', defaultMessage: '' },\n name: 'pushRight',\n },\n {\n name: 'components',\n type: 'select-components',\n intlLabel: {\n id: getTrad('modalForm.attributes.select-components'),\n defaultMessage: 'Select the components',\n },\n isMultiple: true,\n },\n ],\n },\n ],\n };\n },\n },\n};\n","type SectionTitle = {\n id: string;\n defaultMessage: string;\n};\n\ntype Item = {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n description?: { id: string; defaultMessage: string };\n name: string;\n type: string;\n value?: string;\n options?: {\n key: string;\n value: string;\n metadatas: {\n intlLabel: {\n id: string;\n defaultMessage: string;\n };\n };\n }[];\n};\n\ntype FormTypeOption = {\n sectionTitle: SectionTitle | null;\n items: Item[];\n};\n\nexport type FormTypeOptions = Array<FormTypeOption>;\n\n/**\n * @description\n * Adds form options to the default section or as a new section\n */\nexport const addItemsToFormSection = (\n formTypeOptions: FormTypeOptions | Item[],\n sections: FormTypeOptions\n) => {\n formTypeOptions.forEach((item) => {\n if (!('sectionTitle' in item)) {\n // When there is no sectionTitle key,\n // add the item to the default section\n sections[0].items?.push(item);\n return;\n }\n\n // Otherwise, when sectionTitle has a value (including null),\n // add the item as a new section\n sections.push(item);\n });\n};\n","import { snakeCase } from 'lodash/fp';\nimport pluralize from 'pluralize';\n\n// TODO: create a utility for this\n// Duplicate in server/src/services/schema-builder/component-builder.ts\nconst createComponentCollectionName = (name: string, category: string) => {\n return `components_${snakeCase(category)}_${pluralize(snakeCase(name))}`;\n};\n\nexport { createComponentCollectionName };\n","export type SchemaData = {\n initialData: {\n name: string;\n targetAttribute: any;\n };\n modifiedData: object;\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","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 { createCategorySchema } from '../category/createCategorySchema';\nimport { categoryForm } from '../category/form';\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 { Internal } from '@strapi/types';\n\ntype ContentType = {\n schema: {\n singularName: string;\n pluralName: string;\n collectionName: string;\n };\n};\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 = [{ sectionTitle: null, items: [] }];\n const injectedInputs = extensions.getAdvancedForm(['attribute', customField.type], {\n data,\n type: customField.type,\n step,\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?.schema?.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 ...rest,\n });\n\n const sections = baseForm.reduce((acc: Array<any>, current: any) => {\n if (current.sectionTitle === null) {\n acc.push(current);\n } else {\n acc.push({ ...current, items: [...current.items, ...itemsToAdd] });\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<string, ContentType>\n ) {\n const singularNames = Object.values(contentTypes).map((contentType) => {\n return contentType.schema.singularName;\n });\n\n const pluralNames = Object.values(contentTypes).map((contentType: any) => {\n return contentType?.schema?.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 { schema } = contentTypes[ctUid];\n\n return schema.singularName !== singName;\n })\n : singularNames;\n\n const takenPluralNames = isEditing\n ? pluralNames.filter((pluralName) => {\n const { schema } = contentTypes[ctUid];\n\n return schema.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?.schema?.collectionName ?? '';\n });\n\n const takenCollectionNames = isEditing\n ? collectionNames.filter((collectionName) => {\n const { schema } = contentTypes[ctUid];\n const currentCollectionName = schema.collectionName;\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?.schema?.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 editCategory: {\n schema(allCategories: Array<any>, initialData: any) {\n const allowedCategories = allCategories\n .filter((cat) => cat !== initialData.name)\n .map((cat) => cat.toLowerCase());\n\n return createCategorySchema(allowedCategories);\n },\n form: {\n advanced: () => ({ sections: [] }),\n base() {\n return categoryForm.base;\n },\n },\n },\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { pluginId } from '../../pluginId';\n\nimport { initialState } from './reducer';\n\n/**\n * Direct selector to the formModal state domain\n */\nconst formModalDomain = () => (state: any) => state[`${pluginId}_formModal`] || initialState;\n\n/**\n * Other specific selectors\n */\n\n/**\n * Default selector used by formModal\n */\n\nexport const makeSelectFormModal = () =>\n createSelector(formModalDomain(), (substate) => {\n return substate;\n });\n\nexport { formModalDomain };\n","import get from 'lodash/get';\n\nimport { getRelationType } from '../../../utils/getRelationType';\n\nimport type { AttributeType } from '../../../types';\nimport type { Internal, Struct } from '@strapi/types';\n\nexport type EditableContentTypeSchema = {\n kind: Struct.ContentTypeKind;\n name: string;\n attributes: AttributeType[];\n};\n\nexport type EditableContentTypeData = {\n contentType: {\n uid: Internal.UID.ContentType;\n schema: EditableContentTypeSchema;\n };\n};\n\ntype ModifiedData = {\n kind: Struct.ContentTypeKind;\n};\n\nexport const canEditContentType = (data: Record<string, any>, modifiedData: ModifiedData) => {\n const kind = get(data, ['contentType', 'schema', 'kind'], '');\n\n // if kind isn't modified or content type is a single type, there is no need to check attributes.\n if (kind === 'singleType' || kind === modifiedData.kind) {\n return true;\n }\n\n const contentTypeAttributes = get(\n data,\n ['contentType', 'schema', 'attributes'],\n []\n ) as AttributeType[];\n\n const relationAttributes = contentTypeAttributes.filter(({ relation, type, targetAttribute }) => {\n const relationType = getRelationType(relation, targetAttribute);\n\n return type === 'relation' && !['oneWay', 'manyWay'].includes(relationType || '');\n });\n\n return relationAttributes.length === 0;\n};\n","import { MAX_COMPONENT_DEPTH } from '../../../constants';\nimport { getComponentDepth } from '../../../utils/getMaxDepth';\n\nimport type { IconByType } from '../../AttributeIcon';\nimport type { NestedComponent } from '../../DataManagerProvider/utils/retrieveNestedComponents';\nimport type { Internal } from '@strapi/types';\n\nexport const getAttributesToDisplay = (\n dataTarget = '',\n targetUid: Internal.UID.Schema,\n nestedComponents: Array<NestedComponent>\n): IconByType[][] => {\n const defaultAttributes: IconByType[] = [\n 'text',\n 'boolean',\n 'blocks',\n 'json',\n 'number',\n 'email',\n 'date',\n 'password',\n 'media',\n 'enumeration',\n 'relation',\n 'richtext',\n ];\n\n const isPickingAttributeForAContentType = dataTarget === 'contentType';\n\n if (isPickingAttributeForAContentType) {\n return [\n // Insert UID before the last item (richtext)\n [...defaultAttributes.slice(0, -1), 'uid', ...defaultAttributes.slice(-1)],\n ['component', 'dynamiczone'],\n ];\n }\n\n // this will only run when adding attributes to components\n if (dataTarget) {\n const componentDepth = getComponentDepth(targetUid, nestedComponents);\n const isNestedInAnotherComponent = componentDepth >= MAX_COMPONENT_DEPTH;\n const canAddComponentInAnotherComponent =\n !isPickingAttributeForAContentType && !isNestedInAnotherComponent;\n if (canAddComponentInAnotherComponent) {\n return [defaultAttributes, ['component']];\n }\n }\n\n return [defaultAttributes];\n};\n","export const getFormInputNames = (form: any) =>\n form.reduce((acc: any, current: any) => {\n const names = current.items.reduce((acc: any, current: any) => {\n if (current.name) {\n acc.push(current.name);\n }\n\n return acc;\n }, []);\n\n return [...acc, ...names];\n }, []);\n","import * as React from 'react';\n\nimport { useStrapiApp, useTracking, useNotification } from '@strapi/admin/strapi-admin';\nimport { Button, Divider, Flex, Modal, Tabs } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport has from 'lodash/has';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\nimport toLower from 'lodash/toLower';\nimport { useIntl } from 'react-intl';\nimport { shallowEqual, useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useDataManager } from '../../hooks/useDataManager';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad, isAllowedContentTypesForRelations } from '../../utils';\nimport { findAttribute } from '../../utils/findAttribute';\nimport { getYupInnerErrors } from '../../utils/getYupInnerErrors';\n// New compos\nimport { AllowedTypesSelect } from '../AllowedTypesSelect';\nimport { IconByType } from '../AttributeIcon';\nimport { AttributeOptions } from '../AttributeOptions/AttributeOptions';\nimport { BooleanDefaultValueSelect } from '../BooleanDefaultValueSelect';\nimport { BooleanRadioGroup } from '../BooleanRadioGroup';\nimport { CheckboxWithNumberField } from '../CheckboxWithNumberField';\nimport { ContentTypeRadioGroup } from '../ContentTypeRadioGroup';\nimport { CustomRadioGroup } from '../CustomRadioGroup';\nimport { DraftAndPublishToggle } from '../DraftAndPublishToggle';\nimport { FormModalEndActions } from '../FormModalEndActions';\nimport { FormModalHeader } from '../FormModalHeader';\nimport { FormModalSubHeader } from '../FormModalSubHeader';\nimport { IconPicker } from '../IconPicker/IconPicker';\nimport { PluralName } from '../PluralName';\nimport { Relation } from '../Relation/Relation';\nimport { SelectCategory } from '../SelectCategory';\nimport { SelectComponent } from '../SelectComponent';\nimport { SelectComponents } from '../SelectComponents';\nimport { SelectDateType } from '../SelectDateType';\nimport { SelectNumber } from '../SelectNumber';\nimport { SingularName } from '../SingularName';\nimport { TabForm } from '../TabForm';\nimport { TextareaEnum } from '../TextareaEnum';\n\nimport { forms } from './forms/forms';\nimport { actions } from './reducer';\nimport { makeSelectFormModal } from './selectors';\nimport { canEditContentType } from './utils/canEditContentType';\nimport { createComponentUid, createUid } from './utils/createUid';\nimport { getAttributesToDisplay } from './utils/getAttributesToDisplay';\nimport { getFormInputNames } from './utils/getFormInputNames';\n\nimport type { CustomFieldAttributeParams } from '../../contexts/DataManagerContext';\nimport type { AttributeType } from '../../types';\nimport type { Internal } from '@strapi/types';\n\n/* eslint-disable indent */\n/* eslint-disable react/no-array-index-key */\n\nconst FormComponent = styled.form`\n overflow: auto;\n`;\n\nexport const FormModal = () => {\n const {\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onNavigateToCreateComponentStep2,\n actionType,\n attributeName,\n attributeType,\n customFieldUid,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n modalType,\n isOpen,\n kind,\n step,\n targetUid,\n showBackLink,\n activeTab,\n setActiveTab,\n } = useFormModalNavigation();\n\n const getPlugin = useStrapiApp('FormModal', (state) => state.getPlugin);\n const getCustomField = useStrapiApp('FormModal', (state) => state.customFields.get);\n const customField = getCustomField(customFieldUid);\n\n const formModalSelector = React.useMemo(makeSelectFormModal, []);\n const dispatch = useDispatch();\n const { toggleNotification } = useNotification();\n const reducerState = useSelector((state) => formModalSelector(state), shallowEqual);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const ctbPlugin = getPlugin(pluginId);\n const ctbFormsAPI: any = ctbPlugin?.apis.forms;\n const inputsFromPlugins = ctbFormsAPI.components.inputs;\n\n const {\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories,\n changeDynamicZoneComponents,\n contentTypes,\n components,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n submitData,\n modifiedData: allDataSchema,\n nestedComponents,\n setModifiedData,\n sortedContentTypesList,\n updateSchema,\n reservedNames,\n } = useDataManager();\n\n const {\n componentToCreate,\n formErrors,\n initialData,\n isCreatingComponentWhileAddingAField,\n modifiedData,\n } = reducerState;\n\n const pathToSchema =\n forTarget === 'contentType' || forTarget === 'component' ? [forTarget] : [forTarget, targetUid];\n\n React.useEffect(() => {\n if (isOpen) {\n const collectionTypesForRelation = sortedContentTypesList.filter(\n isAllowedContentTypesForRelations\n );\n\n // Reset all the modification when opening the edit category modal\n if (modalType === 'editCategory') {\n setModifiedData();\n }\n\n if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {\n trackUsage('willEditFieldOfContentType');\n }\n\n const pathToAttributes = [...pathToSchema, 'schema', 'attributes'];\n\n // Case:\n // the user opens the modal chooseAttributes\n // selects dynamic zone => set the field name\n // then goes to step 1 (the modal is addComponentToDynamicZone) and finally reloads the app.\n // In this particular if the user tries to add components to the zone it will pop an error since the dz is unknown\n const foundDynamicZoneTarget =\n findAttribute(get(allDataSchema, pathToAttributes, []), dynamicZoneTarget) || null;\n\n // Edit category\n if (modalType === 'editCategory' && actionType === 'edit') {\n dispatch(\n actions.setDataToEdit({\n data: {\n name: categoryName,\n },\n })\n );\n }\n\n // Create content type we need to add the default option draftAndPublish\n if (modalType === 'contentType' && actionType === 'create') {\n dispatch(\n actions.setDataToEdit({\n data: {\n draftAndPublish: true,\n },\n })\n );\n }\n\n // Edit content type\n if (modalType === 'contentType' && actionType === 'edit') {\n const { displayName, draftAndPublish, kind, pluginOptions, pluralName, singularName } = get(\n allDataSchema,\n [...pathToSchema, 'schema'],\n {\n displayName: null,\n pluginOptions: {},\n singularName: null,\n pluralName: null,\n }\n );\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName,\n draftAndPublish,\n kind,\n pluginOptions,\n pluralName,\n singularName,\n },\n })\n );\n }\n\n // Edit component\n if (modalType === 'component' && actionType === 'edit') {\n const data = get(allDataSchema, pathToSchema, {});\n\n dispatch(\n actions.setDataToEdit({\n data: {\n displayName: data.schema.displayName,\n category: data.category,\n icon: data.schema.icon,\n },\n })\n );\n }\n\n // Special case for the dynamic zone\n if (modalType === 'addComponentToDynamicZone' && actionType === 'edit') {\n const attributeToEdit = {\n ...foundDynamicZoneTarget,\n // We filter the available components\n // Because this modal is only used for adding components\n components: [],\n name: dynamicZoneTarget,\n createComponent: false,\n componentToCreate: { type: 'component' },\n };\n\n dispatch(\n actions.setDynamicZoneDataSchema({\n attributeToEdit,\n })\n );\n }\n\n // Set the predefined data structure to create an attribute\n if (attributeType) {\n const attributeToEditNotFormatted = findAttribute(\n get(allDataSchema, pathToAttributes, []),\n attributeName\n ) as AttributeType;\n const attributeToEdit = {\n ...attributeToEditNotFormatted,\n name: attributeName,\n };\n\n // We need to set the repeatable key to false when editing a component\n // The API doesn't send this info\n if (attributeType === 'component' && actionType === 'edit') {\n if (!attributeToEdit.repeatable) {\n set(attributeToEdit, 'repeatable', false);\n }\n }\n\n if (modalType === 'customField') {\n if (actionType === 'edit') {\n dispatch(\n actions.setCustomFieldDataSchema({\n isEditing: true,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n } else {\n dispatch(\n actions.setCustomFieldDataSchema({\n customField: customField!,\n isEditing: false,\n modifiedDataToSetForEditing: attributeToEdit,\n })\n );\n }\n } else {\n dispatch(\n actions.setAttributeDataSchema({\n attributeType,\n nameToSetForRelation: get(collectionTypesForRelation, ['0', 'title'], 'error'),\n targetUid: get(collectionTypesForRelation, ['0', 'uid'], 'error'),\n isEditing: actionType === 'edit',\n modifiedDataToSetForEditing: attributeToEdit,\n step,\n // forTarget,\n })\n );\n }\n }\n } else {\n dispatch(actions.resetProps());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n actionType,\n attributeName,\n attributeType,\n categoryName,\n dynamicZoneTarget,\n forTarget,\n isOpen,\n modalType,\n ]);\n\n const isCreatingContentType = modalType === 'contentType';\n const isCreatingComponent = modalType === 'component';\n const isCreatingAttribute = modalType === 'attribute';\n const isCreatingCustomFieldAttribute = modalType === 'customField';\n const isComponentAttribute = attributeType === 'component' && isCreatingAttribute;\n const isCreating = actionType === 'create';\n const isCreatingComponentFromAView =\n get(modifiedData, 'createComponent', false) || isCreatingComponentWhileAddingAField;\n const isInFirstComponentStep = step === '1';\n const isEditingCategory = modalType === 'editCategory';\n const isPickingAttribute = modalType === 'chooseAttribute';\n const uid = createUid(modifiedData.displayName || '');\n const attributes = get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], null) as {\n name: string;\n }[];\n\n const checkFormValidity = async () => {\n let schema;\n const dataToValidate =\n isCreatingComponentFromAView && step === '1'\n ? get(modifiedData, 'componentToCreate', {})\n : modifiedData;\n // Check form validity for content type\n if (isCreatingContentType) {\n schema = forms.contentType.schema(\n Object.keys(contentTypes),\n actionType === 'edit',\n // currentUID\n get(allDataSchema, [...pathToSchema, 'uid'], null),\n reservedNames,\n ctbFormsAPI,\n contentTypes\n );\n\n // Check form validity for component\n // This is happening when the user click on the link from the left menu\n } else if (isCreatingComponent) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n modifiedData.category || '',\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.displayName || '',\n get(allDataSchema, [...pathToSchema, 'uid'], null)\n // ctbFormsAPI\n );\n } else if (isCreatingCustomFieldAttribute) {\n schema = forms.customField.schema({\n schemaAttributes: get(allDataSchema, [...pathToSchema, 'schema', 'attributes'], []),\n attributeType: customField!.type,\n reservedNames,\n schemaData: { modifiedData, initialData },\n ctbFormsAPI,\n customFieldValidator: customField!.options?.validator,\n });\n\n // Check for validity for creating a component\n // This is happening when the user creates a component \"on the fly\"\n // Since we temporarily store the component info in another object\n // The data is set in the componentToCreate key\n } else if (isComponentAttribute && isCreatingComponentFromAView && isInFirstComponentStep) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n\n // Check form validity for creating a 'common attribute'\n // We need to make sure that it is independent from the step\n } else if (isCreatingAttribute && !isInFirstComponentStep) {\n const type = attributeType === 'relation' ? 'relation' : modifiedData.type;\n\n let alreadyTakenTargetContentTypeAttributes = [];\n\n if (type === 'relation') {\n const targetContentTypeUID = get(modifiedData, ['target'], null);\n\n const targetContentTypeAttributes = get(\n contentTypes,\n [targetContentTypeUID, 'schema', 'attributes'],\n []\n );\n\n // Create an array with all the targetContentType attributes name\n // in order to prevent the user from creating a relation with a targetAttribute\n // that may exist in the other content type\n alreadyTakenTargetContentTypeAttributes = targetContentTypeAttributes.filter(\n ({ name: attrName }: { name: string }) => {\n // Keep all the target content type attributes when creating a relation\n if (actionType !== 'edit') {\n return true;\n }\n\n // Remove the already created one when editing\n return attrName !== initialData.targetAttribute;\n }\n );\n }\n schema = forms.attribute.schema(\n get(allDataSchema, pathToSchema, {}),\n type,\n reservedNames,\n alreadyTakenTargetContentTypeAttributes,\n { modifiedData, initialData },\n ctbFormsAPI\n );\n } else if (isEditingCategory) {\n schema = forms.editCategory.schema(allComponentsCategories, initialData);\n } else {\n // The user is either in the addComponentToDynamicZone modal or\n // in step 1 of the add component (modalType=attribute&attributeType=component) but not creating a component\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep && isCreatingComponentFromAView) {\n schema = forms.component.schema(\n Object.keys(components) as Internal.UID.Component[],\n get(modifiedData, 'componentToCreate.category', ''),\n reservedNames,\n actionType === 'edit',\n components,\n modifiedData.componentToCreate.displayName || ''\n );\n } else {\n // The form is valid\n // The case here is being in the addComponentToDynamicZone modal and not creating a component\n return;\n }\n }\n\n await schema.validate(dataToValidate, { abortEarly: false });\n };\n\n const handleChange = React.useCallback(\n ({\n target: { name, value, type, ...rest },\n }: {\n target: { name: string; value: string; type: string };\n }) => {\n const namesThatCanResetToNullValue = [\n 'enumName',\n 'max',\n 'min',\n 'maxLength',\n 'minLength',\n 'regex',\n 'default',\n ];\n\n let val;\n\n if (namesThatCanResetToNullValue.includes(name) && value === '') {\n val = null;\n } else {\n val = value;\n }\n\n const clonedErrors = Object.assign({}, formErrors);\n\n // Reset min error when modifying the max\n if (name === 'max') {\n delete clonedErrors.min;\n }\n\n // Same here\n if (name === 'maxLength') {\n delete clonedErrors.minLength;\n }\n\n // Since the onBlur is deactivated we remove the errors directly when changing an input\n delete clonedErrors[name];\n\n dispatch(\n actions.setErrors({\n errors: clonedErrors,\n })\n );\n\n dispatch(\n actions.onChange({\n keys: name.split('.'),\n value: val,\n })\n );\n },\n [dispatch, formErrors]\n );\n\n const handleSubmit = async (e: React.SyntheticEvent, shouldContinue = isCreating) => {\n e.preventDefault();\n\n try {\n await checkFormValidity();\n\n sendButtonAddMoreFieldEvent(shouldContinue);\n const ctTargetUid = forTarget === 'components' ? targetUid : uid;\n\n if (isCreatingContentType) {\n // Create the content type schema\n if (isCreating) {\n createSchema({ ...modifiedData, kind }, modalType, uid);\n // Redirect the user to the created content type\n navigate({ pathname: `/plugins/${pluginId}/content-types/${uid}` });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n // We cannot switch from collection type to single when the modal is making relations other than oneWay or manyWay\n if (canEditContentType(allDataSchema, modifiedData)) {\n onCloseModal();\n\n await submitData(modifiedData);\n } else {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.contentType.relations.conflict' }),\n });\n }\n\n return;\n }\n // We are creating a component using the component modal from the left menu\n } else if (modalType === 'component') {\n if (isCreating) {\n // Create the component schema\n const componentUid = createComponentUid(modifiedData.displayName, modifiedData.category);\n const { category, ...rest } = modifiedData;\n\n createSchema(rest, 'component', componentUid, category);\n\n // Redirect the user to the created component\n navigate({\n pathname: `/plugins/${pluginId}/component-categories/${category}/${componentUid}`,\n });\n\n // Navigate to the choose attribute modal\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: componentUid,\n });\n } else {\n updateSchema(modifiedData, modalType, targetUid as Internal.UID.Component);\n\n // Close the modal\n onCloseModal();\n\n return;\n }\n } else if (isEditingCategory) {\n if (toLower(initialData.name) === toLower(modifiedData.name)) {\n // Close the modal\n onCloseModal();\n\n return;\n }\n\n editCategory(initialData.name, modifiedData);\n\n return;\n // Add/edit a field to a content type\n // Add/edit a field to a created component (the end modal is not step 2)\n } else if (isCreatingCustomFieldAttribute) {\n const customFieldAttributeUpdate: CustomFieldAttributeParams = {\n attributeToSet: { ...modifiedData, customField: customFieldUid },\n forTarget,\n targetUid,\n initialAttribute: initialData,\n };\n\n if (actionType === 'edit') {\n editCustomFieldAttribute(customFieldAttributeUpdate);\n } else {\n addCustomFieldAttribute(customFieldAttributeUpdate);\n }\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n } else if (isCreatingAttribute && !isCreatingComponentFromAView) {\n const isDynamicZoneAttribute = attributeType === 'dynamiczone';\n\n // The user is creating a DZ (he had entered the name of the dz)\n if (isDynamicZoneAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n // Adding a component to a dynamiczone is not the same logic as creating a simple field\n // so the search is different\n if (isCreating) {\n // Step 1 of adding a component to a DZ, the user has the option to create a component\n dispatch(actions.resetPropsAndSetTheFormForAddingACompoToADz());\n\n setActiveTab('basic');\n onNavigateToAddCompoToDZModal({ dynamicZoneTarget: modifiedData.name });\n } else {\n onCloseModal();\n }\n\n return;\n }\n\n // Normal fields like boolean relations or dynamic zone\n if (!isComponentAttribute) {\n addAttribute(modifiedData, forTarget, targetUid, actionType === 'edit', initialData);\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid: ctTargetUid,\n });\n } else {\n onCloseModal();\n }\n\n return;\n\n // Adding an existing component\n }\n // eslint-disable-next-line no-lonely-if\n if (isInFirstComponentStep) {\n // Navigate the user to step 2\n onNavigateToCreateComponentStep2();\n\n // Clear the reducer and prepare the modified data\n // This way we don't have to add some logic to re-run the useEffect\n // The first step is either needed to create a component or just to navigate\n // To the modal for adding a \"common field\"\n dispatch(actions.resetPropsAndSetFormForAddingAnExistingCompo({}));\n\n // We don't want all the props to be reset\n return;\n\n // Here we are in step 2\n // The step 2 is also use to edit an attribute that is a component\n }\n\n addAttribute(\n modifiedData,\n forTarget,\n targetUid,\n // This change the dispatched type\n // either 'editAttribute' or 'addAttribute' in the DataManagerProvider\n actionType === 'edit',\n // This is for the edit part\n initialData,\n // Passing true will add the component to the components object\n // This way we can add fields to the added component (if it wasn't there already)\n true\n );\n\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({\n forTarget,\n targetUid,\n });\n } else {\n onCloseModal();\n }\n\n // We don't need to end the loop here we want the reducer to be reinitialized\n\n // Logic for creating a component without clicking on the link in\n // the left menu\n // We need to separate the logic otherwise the component would be created\n // even though the user didn't set any field\n // We need to prevent the component from being created if the user closes the modal at step 2 without any submission\n } else if (isCreatingAttribute && isCreatingComponentFromAView) {\n // Step 1\n if (isInFirstComponentStep) {\n // Here the search could be refactored since it is the same as the case from above\n // Navigate the user to step 2\n\n trackUsage('willCreateComponentFromAttributesModal');\n\n // Here we clear the reducer state but we also keep the created component\n // If we were to create the component before\n dispatch(actions.resetPropsAndSaveCurrentData({}));\n\n onNavigateToCreateComponentStep2();\n\n // Terminate because we don't want the reducer to be entirely reset\n return;\n\n // Step 2 of creating a component (which is setting the attribute name in the parent's schema)\n }\n // We are destructuring because the modifiedData object doesn't have the appropriate format to create a field\n const { category, type, ...rest } = componentToCreate;\n // Create a the component temp UID\n // This could be refactored but I think it's more understandable to separate the logic\n const componentUid = createComponentUid(componentToCreate.displayName, category);\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the field to the schema\n addAttribute(modifiedData, forTarget, targetUid, false);\n\n dispatch(actions.resetProps());\n\n // Open modal attribute for adding attr to component\n if (shouldContinue) {\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n onCloseModal();\n }\n\n return;\n } else {\n // The modal is addComponentToDynamicZone\n if (isInFirstComponentStep) {\n if (isCreatingComponentFromAView) {\n const { category, type, ...rest } = modifiedData.componentToCreate;\n const componentUid = createComponentUid(\n modifiedData.componentToCreate.displayName,\n category\n );\n // Create the component first and add it to the components data\n createSchema(\n // Component data\n rest,\n // Type will always be component\n // It will dispatch the CREATE_COMPONENT_SCHEMA action\n // So the component will be added in the main components object\n // This might not be needed if we don't allow navigation between entries while editing\n type,\n componentUid,\n category,\n // This will add the created component in the datamanager modifiedData components key\n // Like explained above we will be able to modify the created component structure\n isCreatingComponentFromAView\n );\n // Add the created component to the DZ\n // We don't want to remove the old ones\n addCreatedComponentToDynamicZone(dynamicZoneTarget, [componentUid]);\n\n // The Dynamic Zone and the component is created\n // Open the modal to add fields to the created component\n onNavigateToChooseAttributeModal({ forTarget: 'components', targetUid: componentUid });\n } else {\n // Add the components to the DZ\n changeDynamicZoneComponents(dynamicZoneTarget, modifiedData.components);\n\n onCloseModal();\n }\n } else {\n console.error('This case is not handled');\n }\n\n return;\n }\n\n dispatch(actions.resetProps());\n } catch (err: any) {\n const errors = getYupInnerErrors(err);\n\n dispatch(\n actions.setErrors({\n errors,\n })\n );\n }\n };\n\n const handleConfirmClose = () => {\n // eslint-disable-next-line no-alert\n const confirm = window.confirm(\n formatMessage({\n id: 'window.confirm.close-modal.file',\n defaultMessage: 'Are you sure? Your changes will be lost.',\n })\n );\n\n if (confirm) {\n onCloseModal();\n dispatch(actions.resetProps());\n }\n };\n\n const handleClosed = () => {\n // Close the modal\n if (!isEqual(modifiedData, initialData)) {\n handleConfirmClose();\n } else {\n onCloseModal();\n // Reset the reducer\n dispatch(actions.resetProps());\n }\n };\n\n const sendAdvancedTabEvent = (tab: string) => {\n if (tab !== 'advanced') {\n return;\n }\n\n if (isCreatingContentType) {\n trackUsage('didSelectContentTypeSettings');\n\n return;\n }\n\n if (forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldSettings');\n }\n };\n\n const sendButtonAddMoreFieldEvent = (shouldContinue: boolean) => {\n if (\n modalType === 'attribute' &&\n forTarget === 'contentType' &&\n attributeType !== 'dynamiczone' &&\n shouldContinue\n ) {\n trackUsage('willAddMoreFieldToContentType');\n }\n };\n\n const shouldDisableAdvancedTab = () => {\n if (modalType === 'editCategory') {\n return true;\n }\n\n if (modalType === 'component') {\n return true;\n }\n\n if (has(modifiedData, 'createComponent')) {\n return true;\n }\n\n return false;\n };\n\n // Display data for the attributes picker modal\n const displayedAttributes = getAttributesToDisplay(\n forTarget,\n targetUid,\n // We need the nested components so we know when to remove the component option\n nestedComponents\n );\n\n if (!modalType) {\n return null;\n }\n\n const formToDisplay = get(forms, [modalType, 'form'], {\n advanced: () => ({\n sections: [],\n }),\n base: () => ({\n sections: [],\n }),\n });\n\n const isAddingAComponentToAnotherComponent =\n forTarget === 'components' || forTarget === 'component';\n\n const genericInputProps = {\n customInputs: {\n 'allowed-types-select': AllowedTypesSelect,\n 'boolean-radio-group': BooleanRadioGroup,\n 'checkbox-with-number-field': CheckboxWithNumberField,\n 'icon-picker': IconPicker,\n 'content-type-radio-group': ContentTypeRadioGroup,\n 'radio-group': CustomRadioGroup,\n relation: Relation,\n 'select-category': SelectCategory,\n 'select-component': SelectComponent,\n 'select-components': SelectComponents,\n 'select-default-boolean': BooleanDefaultValueSelect,\n 'select-number': SelectNumber,\n 'select-date': SelectDateType,\n 'toggle-draft-publish': DraftAndPublishToggle,\n 'text-plural': PluralName,\n 'text-singular': SingularName,\n 'textarea-enum': TextareaEnum,\n ...inputsFromPlugins,\n },\n componentToCreate,\n dynamicZoneTarget,\n formErrors,\n isAddingAComponentToAnotherComponent,\n isCreatingComponentWhileAddingAField,\n mainBoxHeader: get(allDataSchema, [...pathToSchema, 'schema', 'displayName'], ''),\n modifiedData,\n naturePickerType: forTarget,\n isCreating,\n targetUid,\n forTarget,\n };\n\n const advancedForm = formToDisplay.advanced({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n const baseForm = formToDisplay.base({\n data: modifiedData,\n type: attributeType,\n step,\n actionType,\n attributes,\n extensions: ctbFormsAPI,\n forTarget,\n contentTypeSchema: allDataSchema.contentType || {},\n customField,\n }).sections;\n\n const baseFormInputNames = getFormInputNames(baseForm);\n\n const advancedFormInputNames = getFormInputNames(advancedForm);\n const doesBaseFormHasError = Object.keys(formErrors).some((key) =>\n baseFormInputNames.includes(key)\n );\n\n const doesAdvancedFormHasError = Object.keys(formErrors).some((key) =>\n advancedFormInputNames.includes(key)\n );\n\n const schemaKind = get(contentTypes, [targetUid, 'schema', 'kind']);\n\n const checkIsEditingFieldName = () =>\n actionType === 'edit' && attributes.every(({ name }) => name !== modifiedData?.name);\n\n const handleClickFinish = () => {\n if (checkIsEditingFieldName()) {\n trackUsage('didEditFieldNameOnContentType');\n }\n };\n\n return (\n <Modal.Root open={isOpen} onOpenChange={handleClosed}>\n <Modal.Content>\n <FormModalHeader\n actionType={actionType}\n attributeName={attributeName}\n categoryName={categoryName}\n contentTypeKind={kind as IconByType}\n dynamicZoneTarget={dynamicZoneTarget}\n modalType={modalType}\n forTarget={forTarget}\n targetUid={targetUid}\n attributeType={attributeType as IconByType}\n customFieldUid={customFieldUid}\n showBackLink={showBackLink}\n />\n {isPickingAttribute && (\n <AttributeOptions\n attributes={displayedAttributes}\n forTarget={forTarget}\n kind={schemaKind || 'collectionType'}\n />\n )}\n {!isPickingAttribute && (\n <FormComponent onSubmit={handleSubmit}>\n <Modal.Body>\n <Tabs.Root\n variant=\"simple\"\n value={activeTab}\n onValueChange={(value) => {\n setActiveTab(value);\n sendAdvancedTabEvent(value);\n }}\n hasError={\n doesBaseFormHasError ? 'basic' : doesAdvancedFormHasError ? 'advanced' : undefined\n }\n >\n <Flex justifyContent=\"space-between\">\n <FormModalSubHeader\n actionType={actionType}\n forTarget={forTarget}\n kind={kind}\n step={step}\n modalType={modalType}\n attributeType={attributeType}\n attributeName={attributeName}\n customField={customField}\n />\n <Tabs.List>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTrad('popUpForm.navContainer.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\" disabled={shouldDisableAdvancedTab()}>\n {formatMessage({\n id: getTrad('popUpForm.navContainer.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider marginBottom={6} />\n <Tabs.Content value=\"basic\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={baseForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <TabForm\n form={advancedForm}\n formErrors={formErrors}\n genericInputProps={genericInputProps}\n modifiedData={modifiedData}\n onChange={handleChange}\n />\n </Flex>\n </Tabs.Content>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={handleClosed}>\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n {/* TODO: refactor this component. Nuf said. */}\n <FormModalEndActions\n deleteCategory={deleteCategory}\n deleteContentType={deleteData}\n deleteComponent={deleteData}\n categoryName={initialData.name}\n isAttributeModal={modalType === 'attribute'}\n isCustomFieldModal={modalType === 'customField'}\n isComponentToDzModal={modalType === 'addComponentToDynamicZone'}\n isComponentAttribute={attributeType === 'component'}\n isComponentModal={modalType === 'component'}\n isContentTypeModal={modalType === 'contentType'}\n isCreatingComponent={actionType === 'create'}\n isCreatingDz={actionType === 'create'}\n isCreatingComponentAttribute={modifiedData.createComponent || false}\n isCreatingComponentInDz={modifiedData.createComponent || false}\n isCreatingComponentWhileAddingAField={isCreatingComponentWhileAddingAField}\n isCreatingContentType={actionType === 'create'}\n isEditingAttribute={actionType === 'edit'}\n isDzAttribute={attributeType === 'dynamiczone'}\n isEditingCategory={modalType === 'editCategory'}\n isInFirstComponentStep={step === '1'}\n onSubmitAddComponentAttribute={handleSubmit}\n onSubmitAddComponentToDz={handleSubmit}\n onSubmitCreateComponent={handleSubmit}\n onSubmitCreateContentType={handleSubmit}\n onSubmitCreateDz={handleSubmit}\n onSubmitEditAttribute={handleSubmit}\n onSubmitEditCategory={handleSubmit}\n onSubmitEditComponent={handleSubmit}\n onSubmitEditContentType={handleSubmit}\n onSubmitEditCustomFieldAttribute={handleSubmit}\n onSubmitEditDz={handleSubmit}\n onClickFinish={handleClickFinish}\n />\n </Modal.Footer>\n </FormComponent>\n )}\n </Modal.Content>\n </Modal.Root>\n );\n};\n","import { createSelector } from '@reduxjs/toolkit';\n\nimport { pluginId } from '../../pluginId';\n\nimport { initialState } from './reducer';\n\nimport type { DataManagerStateType } from '../../types';\n\n/**\n * Direct selector to the dataManagerProvider state domain\n */\nconst dataManagerProviderDomain = () => (state: DataManagerStateType) =>\n state[`${pluginId}_dataManagerProvider`] || initialState;\n\n/**\n * Other specific selectors\n */\n\n/**\n * Default selector used by dataManagerProvider\n */\n\nconst makeSelectDataManagerProvider = () =>\n createSelector(dataManagerProviderDomain(), (substate) => {\n return substate;\n });\n\nexport { makeSelectDataManagerProvider, dataManagerProviderDomain };\n","import camelCase from 'lodash/camelCase';\nimport get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport omit from 'lodash/omit';\nimport sortBy from 'lodash/sortBy';\n\nimport { pluginId } from '../../../pluginId';\nimport { makeUnique } from '../../../utils/makeUnique';\n\nimport type { Components, Component, AttributeType, ContentTypes } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nconst getCreatedAndModifiedComponents = (\n allComponents: Components,\n initialComponents: Components\n) => {\n const componentUIDsToReturn = Object.keys(allComponents).filter((compoUid) => {\n const currentCompo = get(allComponents, compoUid, {});\n const initialCompo = get(initialComponents, compoUid, {});\n const hasComponentBeenCreated = get(currentCompo, ['isTemporary'], false);\n const hasComponentBeenModified = !isEqual(currentCompo, initialCompo);\n\n return hasComponentBeenCreated || hasComponentBeenModified;\n });\n\n return makeUnique(componentUIDsToReturn);\n};\n\nconst formatComponent = (\n component: Component | Record<string, any>,\n mainDataUID: Internal.UID.Schema\n) => {\n const formattedAttributes = formatAttributes(\n get(component, 'schema.attributes', []),\n mainDataUID\n );\n\n // Set tmpUID if the component has just been created\n // Keep the uid if the component already exists\n const compoUID = get(component, 'isTemporary', false)\n ? { tmpUID: component.uid }\n : { uid: component.uid };\n\n const formattedComponent = Object.assign(\n {},\n compoUID,\n { category: component.category },\n // Omit the attributes since we want to format them\n omit(component.schema, 'attributes'),\n // Add the formatted attributes\n { attributes: formattedAttributes }\n );\n\n return formattedComponent;\n};\n\nconst formatMainDataType = (data: any, isComponent = false) => {\n const mainDataUID = get(data, 'uid', null);\n\n const formattedAttributes = formatAttributes(get(data, 'schema.attributes', []), mainDataUID);\n const initObj = isComponent ? { category: get(data, 'category', '') } : {};\n\n const formattedContentType = Object.assign(initObj, omit(data.schema, 'attributes'), {\n attributes: formattedAttributes,\n });\n\n delete formattedContentType.uid;\n delete formattedContentType.isTemporary;\n delete formattedContentType.visible;\n delete formattedContentType.restrictRelationsTo;\n\n return formattedContentType;\n};\n\n/**\n *\n * @param {Object} attributes\n * @param {String} mainDataUID uid of the main data type\n */\nconst formatAttributes = (attributes: AttributeType[], mainDataUID: Internal.UID.Schema) => {\n return attributes.reduce((acc: Record<string, AttributeType>, { name, ...rest }) => {\n const currentAttribute = rest;\n const hasARelationWithMainDataUID = currentAttribute.target === mainDataUID;\n const isRelationType = currentAttribute.type === 'relation';\n const currentTargetAttribute = get(currentAttribute, 'targetAttribute', null);\n\n if (!hasARelationWithMainDataUID) {\n if (isRelationType) {\n const relationAttr = Object.assign({}, currentAttribute, {\n targetAttribute: formatRelationTargetAttribute(currentTargetAttribute),\n });\n\n acc[name as string] = removeNullKeys(relationAttr) as AttributeType;\n } else {\n acc[name as string] = removeNullKeys(currentAttribute) as AttributeType;\n }\n }\n\n if (hasARelationWithMainDataUID) {\n const target = currentAttribute.target;\n\n const formattedRelationAttribute = Object.assign({}, currentAttribute, {\n target,\n targetAttribute: formatRelationTargetAttribute(currentTargetAttribute),\n });\n\n acc[name as string] = removeNullKeys(formattedRelationAttribute) as AttributeType;\n }\n\n if (currentAttribute.customField) {\n const customFieldAttribute = { ...currentAttribute, type: 'customField' };\n acc[name as string] = removeNullKeys(customFieldAttribute) as AttributeType;\n }\n\n return acc;\n }, {});\n};\n\nconst formatRelationTargetAttribute = (targetAttribute: string | null) =>\n targetAttribute === '-' ? null : targetAttribute;\n\nconst removeNullKeys = (obj: Record<string, any>) =>\n Object.keys(obj).reduce((acc: Record<string, any>, current) => {\n if (obj[current] !== null && current !== 'plugin') {\n acc[current] = obj[current];\n }\n\n return acc;\n }, {});\n\nconst getComponentsToPost = (\n allComponents: Components,\n initialComponents: Components,\n mainDataUID: Internal.UID.Schema\n) => {\n const componentsToFormat = getCreatedAndModifiedComponents(allComponents, initialComponents);\n const formattedComponents = componentsToFormat.map((compoUID) => {\n const currentCompo = get(allComponents, compoUID, {});\n const formattedComponent = formatComponent(currentCompo, mainDataUID);\n\n return formattedComponent;\n });\n\n return formattedComponents;\n};\n\nconst sortContentType = (types: ContentTypes) =>\n sortBy(\n Object.keys(types)\n .map((uid) => ({\n visible: types[uid].schema.visible,\n name: uid,\n title: types[uid].schema.displayName,\n plugin: types[uid].plugin || null,\n uid,\n to: `/plugins/${pluginId}/content-types/${uid}`,\n kind: types[uid].schema.kind,\n restrictRelationsTo: types[uid].schema.restrictRelationsTo,\n }))\n .filter((obj) => obj !== null),\n (obj) => camelCase(obj.title)\n );\n\nexport {\n formatComponent,\n formatMainDataType,\n getComponentsToPost,\n getCreatedAndModifiedComponents,\n sortContentType,\n};\n","import { ContentType } from '../../../types';\n\nexport const createDataObject = (arr: ContentType[]) =>\n arr.reduce((acc: Record<string, ContentType>, current) => {\n acc[current.uid!] = current;\n\n return acc;\n }, {});\n","import get from 'lodash/get';\n\nimport type { ContentType, Components } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport const createModifiedDataSchema = (\n contentTypeSchema: ContentType,\n retrievedComponents: Internal.UID.Component[],\n allComponentsSchema: Components,\n isInContentTypeView: boolean\n) => {\n const componentsAssociatedToContentType = retrievedComponents.reduce((acc: any, current) => {\n const componentSchema = get(allComponentsSchema, current, {});\n\n acc[current] = componentSchema;\n\n return acc;\n }, {});\n const keyName = isInContentTypeView ? 'contentType' : 'component';\n const schema = {\n [keyName]: contentTypeSchema,\n components: componentsAssociatedToContentType,\n };\n\n return schema;\n};\n","import { AttributeType } from '../../../types';\n\n/**\n * Format the attributes to array instead of an object\n */\nexport const formatSchemas = (schemas: Record<string, any>) => {\n return Object.keys(schemas).reduce((acc: any, current) => {\n const schema = schemas[current].schema;\n\n acc[current] = {\n ...schemas[current],\n schema: { ...schema, attributes: toAttributesArray(schema.attributes) },\n };\n\n return acc;\n }, {});\n};\n\nexport const toAttributesArray = (attributes: Record<string, AttributeType>) => {\n return Object.keys(attributes).reduce((acc: AttributeType[], current: any) => {\n acc.push({ ...attributes[current], name: current });\n\n return acc;\n }, []);\n};\n","import get from 'lodash/get';\n\nimport type { Component, AttributeType, Components } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\ntype ChildComponent = {\n component: Internal.UID.Component;\n};\n\nexport type ComponentWithChildren = {\n component: Internal.UID.Component;\n childComponents: ChildComponent[];\n};\n\nconst retrieveComponentsThatHaveComponents = (allComponents: Components) => {\n const componentsThatHaveNestedComponents = Object.keys(allComponents).reduce(\n (acc: ComponentWithChildren[], current) => {\n const currentComponent = get(allComponents, [current]);\n\n const compoWithChildren = getComponentWithChildComponents(currentComponent);\n if (compoWithChildren.childComponents.length > 0) {\n acc.push(compoWithChildren);\n }\n\n return acc;\n },\n []\n );\n\n return componentsThatHaveNestedComponents;\n};\n\nconst getComponentWithChildComponents = (component: Component): ComponentWithChildren => {\n const attributes = get(component, ['schema', 'attributes'], []) as AttributeType[];\n return {\n component: component.uid,\n childComponents: attributes\n .filter((attribute) => {\n const { type } = attribute;\n\n return type === 'component';\n })\n .map((attribute) => {\n return {\n component: attribute.component,\n } as ChildComponent;\n }),\n };\n};\n\nexport { getComponentWithChildComponents, retrieveComponentsThatHaveComponents };\n","import type { Components, AttributeType } from '../../../types';\nimport type { Internal } from '@strapi/types';\n\nexport type NestedComponent = {\n component: Internal.UID.Component;\n uidsOfAllParents?: Internal.UID.Component[];\n parentCompoUid?: Internal.UID.Component;\n};\n\nexport const retrieveNestedComponents = (appComponents: Components): NestedComponent[] => {\n const nestedComponents = Object.keys(appComponents).reduce((acc: NestedComponent[], current) => {\n const componentAttributes = appComponents?.[current]?.schema?.attributes ?? [];\n const currentComponentNestedCompos = getComponentsNestedWithinComponent(\n componentAttributes,\n current as Internal.UID.Component\n );\n return [...acc, ...currentComponentNestedCompos];\n }, []);\n\n return mergeComponents(nestedComponents);\n};\n\nconst getComponentsNestedWithinComponent = (\n componentAttributes: AttributeType[],\n parentCompoUid: Internal.UID.Component\n) => {\n return componentAttributes.reduce((acc: NestedComponent[], current) => {\n const { type, component } = current;\n if (type === 'component') {\n acc.push({\n component,\n parentCompoUid,\n });\n }\n\n return acc;\n }, []);\n};\n\n// Merge duplicate components\nconst mergeComponents = (originalComponents: NestedComponent[]): NestedComponent[] => {\n const componentMap = new Map();\n // Populate the map with component and its parents\n originalComponents.forEach(({ component, parentCompoUid }) => {\n if (!componentMap.has(component)) {\n componentMap.set(component, new Set());\n }\n componentMap.get(component).add(parentCompoUid);\n });\n\n // Convert the map to the desired array format\n const transformedComponents: NestedComponent[] = Array.from(componentMap.entries()).map(\n ([component, parentCompoUidSet]) => ({\n component,\n uidsOfAllParents: Array.from(parentCompoUidSet),\n })\n );\n\n return transformedComponents;\n};\n","import get from 'lodash/get';\n\nimport { makeUnique } from '../../../utils/makeUnique';\n\nexport const retrieveSpecificInfoFromComponents = (allComponents: any, keysToRetrieve: any) => {\n const allData = Object.keys(allComponents).map((compo) => {\n return get(allComponents, [compo, ...keysToRetrieve], '');\n });\n\n return makeUnique(allData);\n};\n","const SERVER_HAS_NOT_BEEN_KILLED_MESSAGE = 'did-not-kill-server';\nconst SERVER_HAS_BEEN_KILLED_MESSAGE = 'server is down';\n\n/**\n * Server restart watcher\n * Sends an HEAD method to check if the server has been shut down correctly\n * and then pings until it's back on\n */\nexport function serverRestartWatcher(response: any, didShutDownServer?: boolean) {\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n fetch(`${window.strapi.backendURL}/_health`, {\n method: 'HEAD',\n mode: 'no-cors',\n headers: {\n 'Content-Type': 'application/json',\n 'Keep-Alive': 'false',\n },\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(SERVER_HAS_BEEN_KILLED_MESSAGE);\n }\n\n if (!didShutDownServer) {\n throw new Error(SERVER_HAS_NOT_BEEN_KILLED_MESSAGE);\n }\n\n resolve(response);\n })\n .catch((err) => {\n setTimeout(() => {\n return serverRestartWatcher(\n response,\n err.message !== SERVER_HAS_NOT_BEEN_KILLED_MESSAGE\n ).then(resolve);\n }, 100);\n });\n });\n}\n","export const validateSchema = (schema: any) => {\n const dynamicZoneAttributes = Object.values(schema.attributes).filter(\n (attribute: any) => attribute.type === 'dynamiczone'\n );\n\n return dynamicZoneAttributes.every(\n (attribute: any) => Array.isArray(attribute.components) && attribute.components.length > 0\n );\n};\n","import { memo, useEffect, useMemo, useRef, ReactNode } from 'react';\n\nimport {\n useGuidedTour,\n useTracking,\n useStrapiApp,\n useNotification,\n useAppInfo,\n useFetchClient,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport get from 'lodash/get';\nimport groupBy from 'lodash/groupBy';\nimport set from 'lodash/set';\nimport size from 'lodash/size';\nimport { useIntl } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Navigate, useLocation, useMatch } from 'react-router-dom';\n\nimport { DataManagerContext } from '../../contexts/DataManagerContext';\nimport { useFormModalNavigation } from '../../hooks/useFormModalNavigation';\nimport { pluginId } from '../../pluginId';\nimport { getTrad } from '../../utils/getTrad';\nimport { useAutoReloadOverlayBlocker } from '../AutoReloadOverlayBlocker';\nimport { FormModal } from '../FormModal/FormModal';\n\nimport { actions } from './reducer';\nimport { makeSelectDataManagerProvider } from './selectors';\nimport { formatMainDataType, getComponentsToPost, sortContentType } from './utils/cleanData';\nimport { createDataObject } from './utils/createDataObject';\nimport { createModifiedDataSchema } from './utils/createModifiedDataSchema';\nimport { formatSchemas } from './utils/formatSchemas';\nimport { retrieveComponentsFromSchema } from './utils/retrieveComponentsFromSchema';\nimport { retrieveComponentsThatHaveComponents } from './utils/retrieveComponentsThatHaveComponents';\nimport { retrieveNestedComponents } from './utils/retrieveNestedComponents';\nimport { retrieveSpecificInfoFromComponents } from './utils/retrieveSpecificInfoFromComponents';\nimport { serverRestartWatcher } from './utils/serverRestartWatcher';\nimport { validateSchema } from './utils/validateSchema';\n\nimport type { ContentType, SchemaType, Components } from '../../types';\nimport type { Internal } from '@strapi/types';\n\ninterface DataManagerProviderProps {\n children: ReactNode;\n}\n\ninterface CustomFieldAttributeParams {\n attributeToSet: Record<string, any>;\n forTarget: SchemaType;\n targetUid: Internal.UID.Schema;\n initialAttribute: Record<string, any>;\n}\n\nconst DataManagerProvider = ({ children }: DataManagerProviderProps) => {\n const dispatch = useDispatch();\n // refactor\n const { components, contentTypes, isLoading, initialData, modifiedData, reservedNames } =\n useSelector(makeSelectDataManagerProvider());\n const { toggleNotification } = useNotification();\n const { lockAppWithAutoreload, unlockAppWithAutoreload } = useAutoReloadOverlayBlocker();\n const { setCurrentStep, setStepState } = useGuidedTour('DataManagerProvider', (state) => state);\n\n const getPlugin = useStrapiApp('DataManagerProvider', (state) => state.getPlugin);\n\n const plugin = getPlugin(pluginId);\n const autoReload = useAppInfo('DataManagerProvider', (state) => state.autoReload);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const refetchPermissions = useAuth('DataManagerProvider', (state) => state.refetchPermissions);\n const { pathname } = useLocation();\n const { onCloseModal } = useFormModalNavigation();\n const contentTypeMatch = useMatch(`/plugins/${pluginId}/content-types/:uid`);\n const componentMatch = useMatch(\n `/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`\n );\n\n const fetchClient = useFetchClient();\n const { put, post, del } = fetchClient;\n\n const isInDevelopmentMode = autoReload;\n\n const isInContentTypeView = contentTypeMatch !== null;\n const firstKeyToMainSchema = isInContentTypeView ? 'contentType' : 'component';\n const currentUid = isInContentTypeView\n ? get(contentTypeMatch, 'params.uid', null)\n : get(componentMatch, 'params.componentUid', null);\n\n const getDataRef = useRef<any>();\n const endPoint = isInContentTypeView ? 'content-types' : 'components';\n\n getDataRef.current = async () => {\n try {\n const [componentsResponse, contentTypesResponse, reservedNamesResponse] = await Promise.all([\n fetchClient.get(`/content-type-builder/components`),\n fetchClient.get(`/content-type-builder/content-types`),\n fetchClient.get(`/content-type-builder/reserved-names`),\n ]);\n\n const components = createDataObject(componentsResponse.data.data);\n const formattedComponents = formatSchemas(components);\n const contentTypes = createDataObject(contentTypesResponse.data.data);\n const formattedContentTypes = formatSchemas(contentTypes);\n\n dispatch(\n actions.init({\n components: formattedComponents,\n contentTypes: formattedContentTypes,\n reservedNames: reservedNamesResponse.data,\n })\n );\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n useEffect(() => {\n getDataRef.current();\n\n return () => {\n // Reload the plugin so the cycle is new again\n dispatch(actions.reloadPlugin());\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n // We need to set the modifiedData after the data has been retrieved\n // and also on pathname change\n if (!isLoading && currentUid) {\n setModifiedData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, pathname, currentUid]);\n\n useEffect(() => {\n if (!autoReload) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: getTrad('notification.info.autoreaload-disable') }),\n });\n }\n }, [autoReload, toggleNotification, formatMessage]);\n\n const addAttribute = (\n attributeToSet: Record<string, any>,\n forTarget: SchemaType,\n targetUid: Internal.UID.Schema,\n isEditing = false,\n initialAttribute?: Record<string, any>,\n shouldAddComponentToData = false\n ) => {\n if (isEditing) {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n // NOTE: using ! here to avoid changing the code logic before bigger refactorings\n initialAttribute: initialAttribute!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.editAttribute(payload));\n } else {\n const payload = {\n attributeToSet,\n forTarget,\n targetUid,\n shouldAddComponentToData,\n };\n\n dispatch(actions.addAttribute(payload));\n }\n };\n\n const addCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n }: CustomFieldAttributeParams) => {\n dispatch(actions.addCustomFieldAttribute({ attributeToSet, forTarget, targetUid }));\n };\n\n const editCustomFieldAttribute = ({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n }: CustomFieldAttributeParams) => {\n dispatch(\n actions.editCustomFieldAttribute({\n attributeToSet,\n forTarget,\n targetUid,\n initialAttribute,\n })\n );\n };\n\n const addCreatedComponentToDynamicZone = (\n dynamicZoneTarget: string,\n componentsToAdd: Internal.UID.Component[]\n ) => {\n dispatch(actions.addCreatedComponentToDynamicZone({ dynamicZoneTarget, componentsToAdd }));\n };\n\n const createSchema = (\n data: Record<string, any>,\n schemaType: SchemaType,\n uid: Internal.UID.Schema,\n componentCategory?: string,\n shouldAddComponentToData = false\n ) => {\n if (schemaType === 'contentType') {\n const payload = {\n data,\n uid,\n };\n\n dispatch(actions.createSchema(payload));\n } else {\n const payload = {\n data,\n uid,\n componentCategory: componentCategory!,\n shouldAddComponentToData,\n };\n\n dispatch(actions.createComponentSchema(payload));\n }\n };\n\n const changeDynamicZoneComponents = (\n dynamicZoneTarget: string,\n newComponents: Internal.UID.Component[]\n ) => {\n dispatch(actions.changeDynamicZoneComponents({ dynamicZoneTarget, newComponents }));\n };\n\n const removeAttribute = (\n mainDataKey: 'components' | 'contentType' | 'component' | 'contentTypes',\n attributeToRemoveName: string,\n componentUid = ''\n ) => {\n if (mainDataKey === 'components') {\n dispatch(\n actions.removeFieldFromDisplayedComponent({\n attributeToRemoveName,\n componentUid,\n })\n );\n } else {\n if (mainDataKey === 'contentType') {\n trackUsage('willDeleteFieldOfContentType');\n }\n\n dispatch(\n actions.removeField({\n mainDataKey,\n attributeToRemoveName,\n })\n );\n }\n };\n\n const deleteCategory = async (categoryUid: string) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad('popUpWarning.bodyMessage.category.delete'),\n })\n );\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const deleteData = async () => {\n try {\n const requestURL = `/${pluginId}/${endPoint}/${currentUid}`;\n const isTemporary = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n // eslint-disable-next-line no-alert\n const userConfirm = window.confirm(\n formatMessage({\n id: getTrad(\n `popUpWarning.bodyMessage.${isInContentTypeView ? 'contentType' : 'component'}.delete`\n ),\n })\n );\n\n // Close the modal\n onCloseModal();\n\n if (userConfirm) {\n if (isTemporary) {\n // Delete the not saved type\n // Here we just need to reset the components to the initial ones and also the content types\n // Doing so will trigging a url change since the type doesn't exist in either the contentTypes or the components\n // so the modified and the initial data will also be reset in the useEffect...\n dispatch(actions.deleteNotSavedType());\n\n return;\n }\n\n lockAppWithAutoreload?.();\n\n await del(requestURL);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await getDataRef.current();\n // Refetch the permissions\n await updatePermissions();\n }\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const editCategory = async (categoryUid: string, body: any) => {\n try {\n const requestURL = `/${pluginId}/component-categories/${categoryUid}`;\n\n // Close the modal\n onCloseModal();\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n // Update the category\n await put(requestURL, body);\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n await unlockAppWithAutoreload?.();\n\n await updatePermissions();\n } catch (err) {\n console.error({ err });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const getAllComponentsThatHaveAComponentInTheirAttributes = () => {\n // We need to create an object with all the non modified compos\n // plus the ones that are created on the fly\n const allCompos = Object.assign({}, components, modifiedData.components);\n\n // Since we apply the modification of a specific component only in the modified data\n // we need to update all compos with the modifications\n if (!isInContentTypeView) {\n const currentEditedCompo = get(modifiedData, 'component', {});\n\n set(allCompos, get(currentEditedCompo, ['uid'], ''), currentEditedCompo);\n }\n\n const composWithCompos = retrieveComponentsThatHaveComponents(allCompos);\n\n return composWithCompos;\n };\n\n const getAllNestedComponents = () => {\n const appNestedCompo = retrieveNestedComponents(components);\n\n return appNestedCompo;\n };\n\n const removeComponentFromDynamicZone = (dzName: string, componentToRemoveIndex: number) => {\n dispatch(\n actions.removeComponentFromDynamicZone({\n dzName,\n componentToRemoveIndex,\n })\n );\n };\n\n const setModifiedData = () => {\n const currentSchemas = isInContentTypeView ? contentTypes : components;\n const schemaToSet = get(currentSchemas, currentUid ?? '', {\n schema: { attributes: [] },\n });\n\n const retrievedComponents = retrieveComponentsFromSchema(\n schemaToSet.schema.attributes,\n components\n );\n\n const newSchemaToSet = createModifiedDataSchema(\n schemaToSet,\n retrievedComponents,\n components,\n isInContentTypeView\n );\n\n const hasJustCreatedSchema =\n get(schemaToSet, 'isTemporary', false) &&\n size(get(schemaToSet, 'schema.attributes', [])) === 0;\n\n dispatch(\n actions.setModifiedData({\n schemaToSet: newSchemaToSet,\n hasJustCreatedSchema,\n })\n );\n };\n\n const shouldRedirect = useMemo(() => {\n const dataSet = isInContentTypeView ? contentTypes : components;\n if (currentUid === 'create-content-type') {\n return false;\n }\n\n return !Object.keys(dataSet).includes(currentUid || '') && !isLoading;\n }, [components, contentTypes, currentUid, isInContentTypeView, isLoading]);\n\n const redirectEndpoint = useMemo(() => {\n const allowedEndpoints = Object.keys(contentTypes)\n .filter((uid) => get(contentTypes, [uid, 'schema', 'visible'], true))\n .sort();\n\n return get(allowedEndpoints, '0', 'create-content-type');\n }, [contentTypes]);\n\n if (shouldRedirect) {\n return <Navigate to={`/plugins/${pluginId}/content-types/${redirectEndpoint}`} />;\n }\n\n const submitData = async (additionalContentTypeData?: Record<string, any>) => {\n try {\n const isCreating = get(modifiedData, [firstKeyToMainSchema, 'isTemporary'], false);\n\n const body: {\n components: any[];\n contentType?: Record<string, any>;\n component?: any;\n } = {\n components: getComponentsToPost(\n modifiedData.components as Components,\n components as Components,\n currentUid as Internal.UID.Schema\n ),\n };\n\n if (isInContentTypeView) {\n const PluginForms = plugin?.apis?.forms as any;\n const contentType = PluginForms.mutateContentTypeSchema(\n {\n ...formatMainDataType(modifiedData.contentType),\n ...additionalContentTypeData,\n },\n initialData.contentType\n ) as ContentType;\n\n const isValidSchema = validateSchema(contentType);\n\n if (!isValidSchema) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error.dynamiczone-min.validation'),\n defaultMessage:\n 'At least one component is required in a dynamic zone to be able to save a content type',\n }),\n });\n\n return;\n }\n\n body.contentType = contentType;\n\n trackUsage('willSaveContentType');\n } else {\n body.component = formatMainDataType(modifiedData.component, true);\n\n trackUsage('willSaveComponent');\n }\n\n // Lock the app\n lockAppWithAutoreload?.();\n\n const baseURL = `/${pluginId}/${endPoint}`;\n const requestURL = isCreating ? baseURL : `${baseURL}/${currentUid}`;\n\n if (isCreating) {\n await post(requestURL, body);\n } else {\n await put(requestURL, body);\n }\n\n if (\n isCreating &&\n (initialData.contentType?.schema.kind === 'collectionType' ||\n initialData.contentType?.schema.kind === 'singleType')\n ) {\n setStepState('contentTypeBuilder.success', true);\n trackUsage('didCreateGuidedTourCollectionType');\n setCurrentStep(null);\n }\n\n // Submit ct tracking success\n if (isInContentTypeView) {\n trackUsage('didSaveContentType');\n\n const oldName = get(body, ['contentType', 'schema', 'name'], '');\n const newName = get(initialData, ['contentType', 'schema', 'name'], '');\n\n if (!isCreating && oldName !== newName) {\n trackUsage('didEditNameOfContentType');\n }\n } else {\n trackUsage('didSaveComponent');\n }\n\n // Make sure the server has restarted\n await serverRestartWatcher(true);\n\n // Unlock the app\n unlockAppWithAutoreload?.();\n\n // refetch and update initial state after the data has been saved\n await getDataRef.current();\n\n // Update the app's permissions\n await updatePermissions();\n } catch (err: any) {\n if (!isInContentTypeView) {\n trackUsage('didNotSaveComponent');\n }\n\n console.error({ err: err.response });\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n } finally {\n unlockAppWithAutoreload?.();\n }\n };\n\n const updatePermissions = async () => {\n await refetchPermissions();\n };\n\n const updateSchema = (\n data: Record<string, any>,\n schemaType: 'contentType' | 'component',\n componentUID: Internal.UID.Schema\n ) => {\n dispatch(\n actions.updateSchema({\n data,\n schemaType,\n uid: componentUID,\n })\n );\n };\n\n return (\n <DataManagerContext.Provider\n value={{\n addAttribute,\n addCustomFieldAttribute,\n addCreatedComponentToDynamicZone,\n allComponentsCategories: retrieveSpecificInfoFromComponents(components, ['category']),\n changeDynamicZoneComponents,\n components,\n componentsGroupedByCategory: groupBy(components, 'category') as Record<string, any[]>,\n componentsThatHaveOtherComponentInTheirAttributes:\n getAllComponentsThatHaveAComponentInTheirAttributes(),\n contentTypes,\n createSchema,\n deleteCategory,\n deleteData,\n editCategory,\n editCustomFieldAttribute,\n isInDevelopmentMode,\n initialData,\n isInContentTypeView,\n modifiedData,\n nestedComponents: getAllNestedComponents(),\n removeAttribute,\n removeComponentFromDynamicZone,\n reservedNames,\n setModifiedData,\n sortedContentTypesList: sortContentType(contentTypes),\n submitData,\n updateSchema,\n }}\n >\n {children}\n {isInDevelopmentMode && <FormModal />}\n </DataManagerContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default memo(DataManagerProvider);\n","const INITIAL_STATE_DATA = {\n actionType: null,\n attributeName: null,\n attributeType: null,\n categoryName: null,\n dynamicZoneTarget: null,\n forTarget: null,\n modalType: null,\n isOpen: false,\n showBackLink: false,\n kind: null,\n step: null,\n targetUid: null,\n customFieldUid: null,\n activeTab: 'basic',\n};\n\nexport { INITIAL_STATE_DATA };\n","import * as React from 'react';\n\nimport { useTracking } from '@strapi/admin/strapi-admin';\n\nimport { FormModalNavigationContext } from '../../contexts/FormModalNavigationContext';\n\nimport { INITIAL_STATE_DATA } from './constants';\n\ntype FormModalNavigationProviderProps = {\n children: React.ReactNode;\n};\n\nexport type State = any;\n\nexport type ModalEventProps = {\n attributeType?: string;\n customFieldUid?: string;\n dynamicZoneTarget?: string;\n forTarget?: string;\n targetUid?: string;\n attributeName?: string;\n step?: string | null;\n kind?: string;\n categoryName?: string;\n modalType?: string;\n actionType?: string;\n isOpen?: boolean;\n showBackLink?: boolean;\n};\n\nexport const FormModalNavigationProvider = ({ children }: FormModalNavigationProviderProps) => {\n const [state, setFormModalNavigationState] = React.useState(INITIAL_STATE_DATA);\n const { trackUsage } = useTracking();\n\n const onClickSelectCustomField = ({ attributeType, customFieldUid }: ModalEventProps) => {\n // TODO: Add tracking for custom fields\n setFormModalNavigationState((prevState: any) => {\n return {\n ...prevState,\n actionType: 'create',\n modalType: 'customField',\n attributeType,\n customFieldUid,\n activeTab: 'basic',\n };\n });\n };\n\n const onClickSelectField = ({ attributeType, step }: ModalEventProps) => {\n if (state.forTarget === 'contentType') {\n trackUsage('didSelectContentTypeFieldType', { type: attributeType });\n }\n\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n actionType: 'create',\n modalType: 'attribute',\n step,\n attributeType,\n showBackLink: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalAddComponentsToDZ = ({ dynamicZoneTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n dynamicZoneTarget,\n targetUid,\n modalType: 'addComponentToDynamicZone',\n forTarget: 'contentType',\n step: '1',\n actionType: 'edit',\n isOpen: true,\n };\n });\n };\n\n const onOpenModalAddField = ({ forTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n actionType: 'create',\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n isOpen: true,\n showBackLink: false,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalCreateSchema = (nextState: State) => {\n setFormModalNavigationState((prevState) => {\n return { ...prevState, ...nextState, isOpen: true, activeTab: 'basic' };\n });\n };\n\n const onOpenModalEditCategory = (categoryName: string) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n categoryName,\n actionType: 'edit',\n modalType: 'editCategory',\n isOpen: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalEditCustomField = ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n customFieldUid,\n }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n modalType: 'customField',\n customFieldUid,\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n isOpen: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onOpenModalEditField = ({\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n modalType: 'attribute',\n actionType: 'edit',\n forTarget,\n targetUid,\n attributeName,\n attributeType,\n step,\n isOpen: true,\n };\n });\n };\n\n const onOpenModalEditSchema = ({ modalType, forTarget, targetUid, kind }: ModalEventProps) => {\n setFormModalNavigationState((prevState: State) => {\n return {\n ...prevState,\n modalType,\n actionType: 'edit',\n forTarget,\n targetUid,\n kind,\n isOpen: true,\n activeTab: 'basic',\n };\n });\n };\n\n const onCloseModal = () => {\n setFormModalNavigationState(INITIAL_STATE_DATA);\n };\n\n const onNavigateToChooseAttributeModal = ({ forTarget, targetUid }: ModalEventProps) => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n forTarget,\n targetUid,\n modalType: 'chooseAttribute',\n activeTab: 'basic',\n };\n });\n };\n\n const onNavigateToCreateComponentStep2 = () => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n attributeType: 'component',\n modalType: 'attribute',\n step: '2',\n activeTab: 'basic',\n };\n });\n };\n\n const onNavigateToAddCompoToDZModal = ({ dynamicZoneTarget }: ModalEventProps) => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n dynamicZoneTarget,\n modalType: 'addComponentToDynamicZone',\n actionType: 'create',\n step: '1',\n attributeType: null,\n attributeName: null,\n activeTab: 'basic',\n };\n });\n };\n\n const setActiveTab = (value: string) => {\n setFormModalNavigationState((prev: State) => {\n return {\n ...prev,\n activeTab: value,\n };\n });\n };\n\n return (\n <FormModalNavigationContext.Provider\n value={\n {\n ...state,\n onClickSelectField,\n onClickSelectCustomField,\n onCloseModal,\n onNavigateToChooseAttributeModal,\n onNavigateToAddCompoToDZModal,\n onOpenModalAddComponentsToDZ,\n onNavigateToCreateComponentStep2,\n onOpenModalAddField,\n onOpenModalCreateSchema,\n onOpenModalEditCategory,\n onOpenModalEditField,\n onOpenModalEditCustomField,\n onOpenModalEditSchema,\n setFormModalNavigationState,\n setActiveTab,\n } as any\n }\n >\n {children}\n </FormModalNavigationContext.Provider>\n );\n};\n","/* eslint-disable import/no-default-export */\n/* eslint-disable check-file/filename-naming-convention */\n/* eslint-disable check-file/no-index */\nimport { lazy, Suspense, useEffect, useRef } from 'react';\n\nimport { Page, useGuidedTour, Layouts } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\nimport { Route, Routes } from 'react-router-dom';\n\nimport { AutoReloadOverlayBlockerProvider } from '../../components/AutoReloadOverlayBlocker';\nimport { ContentTypeBuilderNav } from '../../components/ContentTypeBuilderNav/ContentTypeBuilderNav';\nimport DataManagerProvider from '../../components/DataManagerProvider/DataManagerProvider';\nimport { FormModalNavigationProvider } from '../../components/FormModalNavigationProvider/FormModalNavigationProvider';\nimport { PERMISSIONS } from '../../constants';\nimport { pluginId } from '../../pluginId';\n\nconst ListView = lazy(() => import('../ListView/ListView'));\n\nconst App = () => {\n const { formatMessage } = useIntl();\n const title = formatMessage({\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Content Types Builder',\n });\n const startSection = useGuidedTour('App', (state) => state.startSection);\n const startSectionRef = useRef(startSection);\n\n useEffect(() => {\n if (startSectionRef.current) {\n startSectionRef.current('contentTypeBuilder');\n }\n }, []);\n\n return (\n <Page.Protect permissions={PERMISSIONS.main}>\n <Page.Title>{title}</Page.Title>\n <AutoReloadOverlayBlockerProvider>\n <FormModalNavigationProvider>\n <DataManagerProvider>\n <Layouts.Root sideNav={<ContentTypeBuilderNav />}>\n <Suspense fallback={<Page.Loading />}>\n <Routes>\n <Route path=\"content-types/:uid\" element={<ListView />} />\n <Route\n path={`component-categories/:categoryUid/:componentUid`}\n element={<ListView />}\n />\n </Routes>\n </Suspense>\n </Layouts.Root>\n </DataManagerProvider>\n </FormModalNavigationProvider>\n </AutoReloadOverlayBlockerProvider>\n </Page.Protect>\n );\n};\n\nexport default App;\n"],"names":["getTrad","id","pluginId","DataManagerContext","createContext","useDataManager","useContext","FormModalNavigationContext","React","useFormModalNavigation","useContentTypeBuilderMenu","components","componentsGroupedByCategory","contentTypes","isInDevelopmentMode","sortedContentTypesList","modifiedData","initialData","toggleNotification","useNotification","formatMessage","useIntl","trackUsage","useTracking","searchValue","setSearchValue","useState","onOpenModalCreateSchema","onOpenModalEditCategory","locale","startsWith","useFilter","sensitivity","formatter","useCollator","canOpenModalCreateCTorComponent","Object","keys","some","ct","isTemporary","component","isEqual","handleClickOpenModalCreateCollectionType","nextState","modalType","kind","actionType","forTarget","toggleNotificationCannotCreateSchema","handleClickOpenModalCreateSingleType","handleClickOpenModalCreateComponent","type","message","defaultMessage","componentsData","entries","map","category","name","title","isEditable","onClickEdit","e","data","stopPropagation","links","uid","to","schema","displayName","sort","a","b","compare","displayedContentTypes","filter","obj","visible","customLink","onClick","contentType","singleType","section","hasChild","l","Array","isArray","filteredLinksCount","link","filteredLinks","length","Boolean","linksCount","menu","search","value","onChange","clear","SubNavLinkCustom","styled","SubNavLink","ContentTypeBuilderNav","pluginName","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","searchable","onClear","target","label","searchLabel","SubNavSections","Fragment","SubNavSection","collapsable","badgeLabel","toString","SubNavLinkSection","upperFirst","subLink","tag","NavLink","active","isSubSectionChild","width","Box","paddingLeft","TextButton","startIcon","Plus","height","marginTop","cursor","isAllowedContentTypesForRelations","restrictRelationsTo","findAttribute","attributes","attributeToFind","find","extractValuesFromYupError","errorType","errorParams","getYupInnerErrors","error","inner","reduce","acc","currentError","path","split","join","values","params","options","children","AllowedTypesSelect","intlLabel","displayedValue","v","Field","Root","Label","MultiSelectNested","customizeContent","iconByTypes","biginteger","NumberField","blocks","BlocksField","boolean","BooleanField","collectionType","CollectionType","ComponentField","date","DateField","datetime","decimal","dynamiczone","DynamicZoneField","email","EmailField","enum","EnumerationField","enumeration","file","MediaField","files","float","integer","json","JsonField","JSON","media","number","password","PasswordField","relation","RelationField","richtext","MarkdownField","SingleType","string","TextField","text","time","timestamp","UidField","IconBox","AttributeIcon","customField","rest","getCustomField","useStrapiApp","state","customFields","get","Compo","customFieldObject","icon","shrink","aria-hidden","OptionBoxWrapper","theme","colors","neutral200","primary100","primary200","newAttributes","NewBadge","Flex","grow","justifyContent","gap","hasRadius","background","padding","Sparkle","fill","Typography","textColor","variant","AttributeOption","onClickSelectField","handleClick","step","attributeType","fontWeight","includes","AttributeList","KeyboardNavigable","tagName","direction","alignItems","attributeRow","index","Grid","attribute","Item","col","CustomFieldOption","customFieldUid","intlDescription","onClickSelectCustomField","EmptyCard","neutral150","EmptyCardGrid","wrap","_","idx","EmptyAttributes","position","top","EmptyDocuments","paddingTop","paddingBottom","textAlign","LinkButton","Link","qs","stringify","categories","CustomFieldsList","getAllCustomFields","getAll","registeredCustomFields","sortedCustomFields","href","isExternal","AttributeOptions","defaultTabId","customTabId","titleIdSuffix","titleId","Modal","Body","Tabs","defaultValue","List","Trigger","Divider","marginBottom","Content","BooleanDefaultValueSelect","handleChange","nextValue","SingleSelect","metadatas","disabled","hidden","key","SingleSelectOption","Wrapper","inputFocusStyle","neutral0","spaces","neutral300","primary600","CustomRadioGroup","radios","htmlFor","radio","className","input","checked","paddingRight","span","description","BooleanRadioGroup","CheckboxWithNumberField","errorMessage","Checkbox","onCheckedChange","initValue","style","maxWidth","TextInput","Error","NumberInput","onValueChange","ContentTypeRadioGroup","DraftAndPublishToggle","isCreating","showWarning","setShowWarning","hint","handleConfirm","_Fragment","Hint","Dialog","open","onOpenChange","isOpen","ConfirmDialog","endAction","Button","FormModalEndActions","categoryName","deleteCategory","deleteComponent","deleteContentType","isAttributeModal","isCustomFieldModal","isComponentAttribute","isComponentToDzModal","isContentTypeModal","isCreatingComponent","isCreatingComponentAttribute","isCreatingComponentInDz","isCreatingComponentWhileAddingAField","isCreatingContentType","isCreatingDz","isComponentModal","isDzAttribute","isEditingAttribute","isEditingCategory","isInFirstComponentStep","onSubmitAddComponentAttribute","onSubmitAddComponentToDz","onSubmitCreateContentType","onSubmitCreateComponent","onSubmitCreateDz","onSubmitEditAttribute","onSubmitEditCategory","onSubmitEditComponent","onSubmitEditContentType","onSubmitEditCustomFieldAttribute","onSubmitEditDz","onClickFinish","preventDefault","FormModalHeader","attributeName","contentTypeKind","dynamicZoneTarget","targetUid","showBackLink","onOpenModalAddField","headers","isCreatingMainSchema","headerId","Header","Title","info","push","ArrowLeft","Breadcrumbs","arr","Crumb","isCurrent","getModalTitleSubHeader","FormModalSubHeader","COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","File","fileError","FileError","filePdf","FilePdf","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write","IconPickerWrapper","borderRadius","neutral100","IconPick","iconKey","isSelected","ariaLabel","Icon","required","VisuallyHidden","Input","aria-checked","undefined","IconPicker","showSearch","setShowSearch","setSearch","allIcons","icons","setIcons","searchIconRef","useRef","searchBarRef","toggleSearch","onChangeSearch","toLowerCase","onClearSearch","removeIconSelected","useEffect","current","focus","Searchbar","ref","placeholder","onBlur","clearLabel","IconButton","withTooltip","Tooltip","Trash","maxHeight","overflow","PluralName","onChangeRef","nameToSlug","plural","pluralize","err","parseDateValue","Date","isValidDate","isNaN","getTime","removeSeconds","hours","minutes","addSecondsAndMilliseconds","formatTimeForInput","formatTimeForOutput","handleTimeChange","formattedInputTime","handleTimeChangeEvent","formattedOutputTime","GenericInput","autoComplete","customInputs","labelAction","isNullable","getFieldHintValue","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","CustomInput","valueWithEmptyStringFallback","getErrorMessage","formattedPlaceholder","getComponent","JSONInput","minHeight","Toggle","offLabel","onLabel","dateValue","DateTimePicker","formattedDate","toISOString","DatePicker","formatISO","representation","button","prev","border","EyeStriked","Textarea","event","formattedValue","TimePicker","action","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","divider","br","maxValue","Math","parsedMin","Number","parsedMinLength","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","RelationTargetPicker","oneThatIsCreatingARelationWithAnother","dispatch","useDispatch","allowedContentTypesForRelation","plugin","handleSelect","selectedContentTypeFriendlyName","actions","onChangeRelationTarget","targetContentTypeAllowedRelations","Menu","MenuTrigger","zIndex","onSelect","RelationFormBox","header","isMain","borderColor","IconWrapper","$isSelected","InfosWrapper","relations","manyWay","ManyWay","RelationNaturePicker","naturePickerType","relationType","ctRelations","componentRelations","dataType","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","restrictedRelations","rightDisplayedValue","flex","Asset","isEnabled","onChangeRelationType","aria-pressed","data-relation-type","truncate","Relation","formErrors","mainBoxHeader","getRelationType","targetAttribute","SelectCategory","allComponentsCategories","setCategories","handleCreateOption","Combobox","onCreateOption","creatable","ComboboxOption","findComponent","componentUid","c","getChildrenMaxDepth","currentDepth","childComponents","maxDepth","forEach","child","depth","getComponentDepth","getDepth","currentComponent","currentLevel","levels","uidsOfAllParents","parentUid","parentComponent","nestedCompo","compoDepth","SelectComponent","isAddingAComponentToAnotherComponent","componentToCreate","componentsThatHaveOtherComponentInTheirAttributes","nestedComponents","isTargetAComponent","compos","componentDepth","totalDepth","MAX_COMPONENT_DEPTH","option","SelectComponents","dzSchema","alreadyUsedComponents","filteredComponentsGroupedByCategory","filteredComponents","SelectDateType","default","SelectNumber","defaultProps","SingularName","TabForm","form","genericInputProps","sectionIndex","items","sectionTitle","i","pluginOptionError","errorId","size","div","TextareaEnum","inputValue","arrayValue","nameField","commonBaseForm","sections","componentForm","base","prefix","advanced","attributeOptions","private","regex","unique","advancedForm","autoFocus","repeatable","withDefaultValue","validations","indexOf","inputStep","targetField","componentField","baseForm","itemsToConcat","createComponent","isMultiple","currentYear","getFullYear","_data","attributesForm","toRegressedEnumValue","slugify","decamelize","lowercase","separator","NAME_REGEX","alreadyUsedAttributeNames","usedNames","errorsTrads","test","snakeCaseKey","snakeCase","existingKey","isNameAllowed","reservedNames","validators","yup","nullable","when","positive","matches","createTextShape","usedAttributeNames","shape","RegExp","isMinSuperiorThanMax","parent","toNumber","attributeTypes","object","GRAPHQL_ENUM_REGEX","array","of","duplicates","uniq","val","every","enumName","multiple","allowedTypes","oneOf","alreadyTakenTargetAttributes","lazy","initialForbiddenName","forbiddenTargetAttributeName","CATEGORY_NAME_REGEX","createCategorySchema","usedCategoryNames","categoryForm","createComponentSchema","usedComponentNames","takenCollectionNames","currentCollectionName","createComponentUid","snakeCaseCollectionName","reserved","collectionName","contentTypeForm","create","edit","createContentTypeSchema","usedContentTypeNames","reservedModels","singularNames","pluralNames","collectionNames","createUid","pluralName","context","singularName","draftAndPublish","dynamiczoneForm","addItemsToFormSection","formTypeOptions","item","createComponentCollectionName","getUsedAttributeNames","schemaData","forms","schemaAttributes","customFieldValidator","ctbFormsAPI","attributeShape","makeCustomFieldValidator","extensions","injectedInputs","getAdvancedForm","extendedSettings","currentSchema","alreadyTakenTargetContentTypeAttributes","makeValidator","console","itemsToAdd","alreadyTakenNames","isEditing","ctUid","takenNames","takenSingularNames","singName","takenPluralNames","contentTypeShape","models","flat","alreadyTakenAttributes","componentCategory","componentDisplayName","compoUid","addComponentToDynamicZone","editCategory","allCategories","allowedCategories","cat","formModalDomain","initialState","makeSelectFormModal","createSelector","substate","canEditContentType","contentTypeAttributes","relationAttributes","getAttributesToDisplay","dataTarget","defaultAttributes","isPickingAttributeForAContentType","slice","isNestedInAnotherComponent","canAddComponentInAnotherComponent","getFormInputNames","names","FormComponent","FormModal","onCloseModal","onNavigateToChooseAttributeModal","onNavigateToAddCompoToDZModal","onNavigateToCreateComponentStep2","activeTab","setActiveTab","getPlugin","formModalSelector","useMemo","reducerState","useSelector","shallowEqual","navigate","useNavigate","ctbPlugin","apis","inputsFromPlugins","inputs","addAttribute","addCustomFieldAttribute","addCreatedComponentToDynamicZone","changeDynamicZoneComponents","createSchema","deleteData","editCustomFieldAttribute","submitData","allDataSchema","setModifiedData","updateSchema","pathToSchema","collectionTypesForRelation","pathToAttributes","foundDynamicZoneTarget","setDataToEdit","pluginOptions","attributeToEdit","setDynamicZoneDataSchema","attributeToEditNotFormatted","set","setCustomFieldDataSchema","modifiedDataToSetForEditing","setAttributeDataSchema","nameToSetForRelation","resetProps","isCreatingAttribute","isCreatingCustomFieldAttribute","isCreatingComponentFromAView","isPickingAttribute","checkFormValidity","dataToValidate","validator","targetContentTypeUID","targetContentTypeAttributes","attrName","validate","abortEarly","useCallback","namesThatCanResetToNullValue","clonedErrors","assign","setErrors","errors","handleSubmit","shouldContinue","sendButtonAddMoreFieldEvent","ctTargetUid","pathname","toLower","customFieldAttributeUpdate","attributeToSet","initialAttribute","isDynamicZoneAttribute","resetPropsAndSetTheFormForAddingACompoToADz","resetPropsAndSetFormForAddingAnExistingCompo","resetPropsAndSaveCurrentData","handleConfirmClose","confirm","window","handleClosed","sendAdvancedTabEvent","tab","shouldDisableAdvancedTab","has","displayedAttributes","formToDisplay","contentTypeSchema","baseFormInputNames","advancedFormInputNames","doesBaseFormHasError","doesAdvancedFormHasError","schemaKind","checkIsEditingFieldName","handleClickFinish","onSubmit","hasError","Footer","dataManagerProviderDomain","makeSelectDataManagerProvider","getCreatedAndModifiedComponents","allComponents","initialComponents","componentUIDsToReturn","currentCompo","initialCompo","hasComponentBeenCreated","hasComponentBeenModified","makeUnique","formatComponent","mainDataUID","formattedAttributes","formatAttributes","compoUID","tmpUID","formattedComponent","omit","formatMainDataType","isComponent","initObj","formattedContentType","currentAttribute","hasARelationWithMainDataUID","isRelationType","currentTargetAttribute","relationAttr","formatRelationTargetAttribute","removeNullKeys","formattedRelationAttribute","customFieldAttribute","getComponentsToPost","componentsToFormat","formattedComponents","sortContentType","types","sortBy","camelCase","createDataObject","createModifiedDataSchema","retrievedComponents","allComponentsSchema","isInContentTypeView","componentsAssociatedToContentType","componentSchema","keyName","formatSchemas","schemas","toAttributesArray","retrieveComponentsThatHaveComponents","componentsThatHaveNestedComponents","compoWithChildren","getComponentWithChildComponents","retrieveNestedComponents","appComponents","componentAttributes","currentComponentNestedCompos","getComponentsNestedWithinComponent","mergeComponents","parentCompoUid","originalComponents","componentMap","Map","Set","add","transformedComponents","from","parentCompoUidSet","retrieveSpecificInfoFromComponents","keysToRetrieve","allData","compo","SERVER_HAS_NOT_BEEN_KILLED_MESSAGE","SERVER_HAS_BEEN_KILLED_MESSAGE","serverRestartWatcher","response","didShutDownServer","Promise","resolve","fetch","strapi","backendURL","method","mode","then","res","status","catch","setTimeout","validateSchema","dynamicZoneAttributes","DataManagerProvider","isLoading","lockAppWithAutoreload","unlockAppWithAutoreload","useAutoReloadOverlayBlocker","setCurrentStep","setStepState","useGuidedTour","autoReload","useAppInfo","refetchPermissions","useAuth","useLocation","contentTypeMatch","useMatch","componentMatch","fetchClient","useFetchClient","put","post","del","firstKeyToMainSchema","currentUid","getDataRef","endPoint","componentsResponse","contentTypesResponse","reservedNamesResponse","all","formattedContentTypes","init","reloadPlugin","shouldAddComponentToData","payload","editAttribute","componentsToAdd","schemaType","newComponents","removeAttribute","mainDataKey","attributeToRemoveName","removeFieldFromDisplayedComponent","removeField","categoryUid","requestURL","userConfirm","updatePermissions","deleteNotSavedType","body","getAllComponentsThatHaveAComponentInTheirAttributes","allCompos","currentEditedCompo","composWithCompos","getAllNestedComponents","appNestedCompo","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","currentSchemas","schemaToSet","retrieveComponentsFromSchema","newSchemaToSet","hasJustCreatedSchema","shouldRedirect","dataSet","redirectEndpoint","allowedEndpoints","Navigate","additionalContentTypeData","PluginForms","mutateContentTypeSchema","isValidSchema","baseURL","oldName","newName","componentUID","Provider","groupBy","INITIAL_STATE_DATA","FormModalNavigationProvider","setFormModalNavigationState","prevState","onOpenModalAddComponentsToDZ","onOpenModalEditCustomField","onOpenModalEditField","onOpenModalEditSchema","ListView","App","startSection","startSectionRef","Page","Protect","permissions","PERMISSIONS","main","AutoReloadOverlayBlockerProvider","Layouts","sideNav","Suspense","fallback","Loading","Routes","Route","element"],"mappings":"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"}
|