@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-types.mjs","sources":["../../../server/src/services/content-types.ts"],"sourcesContent":["import _ from 'lodash';\nimport { getOr } from 'lodash/fp';\nimport { contentTypes as contentTypesUtils, errors } from '@strapi/utils';\nimport type { UID, Struct } from '@strapi/types';\nimport { formatAttributes, replaceTemporaryUIDs } from '../utils/attributes';\nimport createBuilder from './schema-builder';\nimport { coreUids, pluginsUids } from './constants';\n\nconst { ApplicationError } = errors;\n\nexport const isContentTypeVisible = (model: Struct.ContentTypeSchema) =>\n getOr(true, 'pluginOptions.content-type-builder.visible', model) === true;\n\nexport const getRestrictRelationsTo = (contentType: Struct.ContentTypeSchema) => {\n const { uid } = contentType;\n if (uid === coreUids.STRAPI_USER) {\n // TODO: replace with an obj { relation: 'x', bidirectional: true|false }\n return ['oneWay', 'manyWay'];\n }\n\n if (\n uid.startsWith(coreUids.PREFIX) ||\n uid === pluginsUids.UPLOAD_FILE ||\n !isContentTypeVisible(contentType)\n ) {\n return [];\n }\n\n return null;\n};\n\n/**\n * Format a contentType info to be used by the front-end\n */\nexport const formatContentType = (contentType: any) => {\n const { uid, kind, modelName, plugin, collectionName, info } = contentType;\n\n return {\n uid,\n plugin,\n apiID: modelName,\n schema: {\n ...contentTypesUtils.getOptions(contentType),\n displayName: info.displayName,\n singularName: info.singularName,\n pluralName: info.pluralName,\n description: _.get(info, 'description', ''),\n pluginOptions: contentType.pluginOptions,\n kind: kind || 'collectionType',\n collectionName,\n attributes: formatAttributes(contentType),\n visible: isContentTypeVisible(contentType),\n restrictRelationsTo: getRestrictRelationsTo(contentType),\n },\n };\n};\n\nexport const createContentTypes = async (contentTypes: any[]) => {\n const builder = createBuilder();\n const createdContentTypes: any[] = [];\n\n for (const contentType of contentTypes) {\n createdContentTypes.push(await createContentType(contentType, { defaultBuilder: builder }));\n }\n\n await builder.writeFiles();\n\n return createdContentTypes;\n};\n\ntype CreateContentTypeOptions = {\n defaultBuilder?: any; // TODO\n};\n\n/**\n * Creates a content type and handle the nested components sent with it\n */\nexport const createContentType = async (\n { contentType, components }: any,\n options: CreateContentTypeOptions = {}\n) => {\n const builder = options.defaultBuilder || createBuilder();\n const uidMap = builder.createNewComponentUIDMap(components || []);\n\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const newContentType = builder.createContentType(replaceTmpUIDs(contentType));\n\n // allow components to target the new contentType\n const targetContentType = (infos: any) => {\n Object.keys(infos.attributes).forEach((key) => {\n const { target } = infos.attributes[key];\n if (target === '__contentType__') {\n infos.attributes[key].target = newContentType.uid;\n }\n });\n\n return infos;\n };\n\n components?.forEach((component: any) => {\n const options = replaceTmpUIDs(targetContentType(component));\n\n if (!_.has(component, 'uid')) {\n return builder.createComponent(options);\n }\n\n return builder.editComponent(options);\n });\n\n // generate api skeleton\n await generateAPI({\n displayName: contentType!.displayName || contentType!.info.displayName,\n singularName: contentType!.singularName,\n pluralName: contentType!.pluralName,\n kind: contentType!.kind,\n });\n\n if (!options.defaultBuilder) {\n await builder.writeFiles();\n }\n\n strapi.eventHub.emit('content-type.create', { contentType: newContentType });\n\n return newContentType;\n};\n\n/**\n * Generate an API skeleton\n */\nexport const generateAPI = ({\n singularName,\n kind = 'collectionType',\n pluralName,\n displayName,\n}: any) => {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const strapiGenerators = require('@strapi/generators');\n return strapiGenerators.generate(\n 'content-type',\n {\n kind,\n singularName,\n id: singularName,\n pluralName,\n displayName,\n destination: 'new',\n bootstrapApi: true,\n attributes: [],\n },\n { dir: strapi.dirs.app.root }\n );\n};\n\n/**\n * Edits a contentType and handle the nested contentTypes sent with it\n */\nexport const editContentType = async (\n uid: UID.ContentType,\n { contentType, components = [] }: any\n) => {\n const builder = createBuilder();\n\n const previousSchema = builder.contentTypes.get(uid).schema;\n const previousKind = previousSchema.kind;\n const newKind = contentType.kind || previousKind;\n\n // Restore non-visible attributes from previous schema\n const previousAttributes = previousSchema.attributes;\n const prevNonVisibleAttributes = contentTypesUtils\n .getNonVisibleAttributes(previousSchema)\n .reduce((acc, key) => {\n if (key in previousAttributes) {\n acc[key] = previousAttributes[key];\n }\n\n return acc;\n }, {} as any);\n contentType.attributes = _.merge(prevNonVisibleAttributes, contentType.attributes);\n\n if (newKind !== previousKind && newKind === 'singleType') {\n const entryCount = await strapi.db.query(uid).count();\n if (entryCount > 1) {\n throw new ApplicationError(\n 'You cannot convert a collectionType to a singleType when having multiple entries in DB'\n );\n }\n }\n\n const uidMap = builder.createNewComponentUIDMap(components);\n const replaceTmpUIDs = replaceTemporaryUIDs(uidMap);\n\n const updatedContentType = builder.editContentType({\n uid,\n ...replaceTmpUIDs(contentType),\n });\n\n components.forEach((component: any) => {\n if (!_.has(component, 'uid')) {\n return builder.createComponent(replaceTmpUIDs(component));\n }\n\n return builder.editComponent(replaceTmpUIDs(component));\n });\n\n if (newKind !== previousKind) {\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n try {\n await apiHandler.clear(uid);\n\n // generate new api skeleton\n await generateAPI({\n displayName: updatedContentType.schema.info.displayName,\n singularName: updatedContentType.schema.info.singularName,\n pluralName: updatedContentType.schema.info.pluralName,\n kind: updatedContentType.schema.kind,\n });\n\n await builder.writeFiles();\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n\n return updatedContentType;\n }\n\n await builder.writeFiles();\n\n strapi.eventHub.emit('content-type.update', { contentType: updatedContentType });\n\n return updatedContentType;\n};\n\nexport const deleteContentTypes = async (uids: UID.ContentType[]) => {\n const builder = createBuilder();\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n\n for (const uid of uids) {\n await deleteContentType(uid, builder);\n }\n\n await builder.writeFiles();\n for (const uid of uids) {\n try {\n await apiHandler.clear(uid);\n } catch (error) {\n strapi.log.error(error);\n await apiHandler.rollback(uid);\n }\n }\n};\n\n/**\n * Deletes a content type and the api files related to it\n */\nexport const deleteContentType = async (uid: UID.ContentType, defaultBuilder: any = undefined) => {\n const builder = defaultBuilder || createBuilder();\n // make a backup\n const apiHandler = strapi.plugin('content-type-builder').service('api-handler');\n await apiHandler.backup(uid);\n\n const contentType = builder.deleteContentType(uid);\n\n if (!defaultBuilder) {\n try {\n await builder.writeFiles();\n await apiHandler.clear(uid);\n } catch (error) {\n await apiHandler.rollback(uid);\n }\n }\n\n strapi.eventHub.emit('content-type.delete', { contentType });\n\n return contentType;\n};\n"],"names":["ApplicationError","errors","isContentTypeVisible","model","getOr","getRestrictRelationsTo","contentType","uid","coreUids","STRAPI_USER","startsWith","PREFIX","pluginsUids","UPLOAD_FILE","formatContentType","kind","modelName","plugin","collectionName","info","apiID","schema","contentTypesUtils","getOptions","displayName","singularName","pluralName","description","_","get","pluginOptions","attributes","formatAttributes","visible","restrictRelationsTo","createContentTypes","contentTypes","builder","createBuilder","createdContentTypes","push","createContentType","defaultBuilder","writeFiles","components","options","uidMap","createNewComponentUIDMap","replaceTmpUIDs","replaceTemporaryUIDs","newContentType","targetContentType","infos","Object","keys","forEach","key","target","component","has","createComponent","editComponent","generateAPI","strapi","eventHub","emit","strapiGenerators","require","generate","id","destination","bootstrapApi","dir","dirs","app","root","editContentType","previousSchema","previousKind","newKind","previousAttributes","prevNonVisibleAttributes","getNonVisibleAttributes","reduce","acc","merge","entryCount","db","query","count","updatedContentType","apiHandler","service","backup","clear","error","log","rollback","deleteContentTypes","uids","deleteContentType","undefined"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var contentTypes = require('./content-types.js');
|
|
4
|
+
var components = require('./components.js');
|
|
5
|
+
var componentCategories = require('./component-categories.js');
|
|
6
|
+
var builder = require('./builder.js');
|
|
7
|
+
var apiHandler = require('./api-handler.js');
|
|
8
|
+
|
|
9
|
+
var services = {
|
|
10
|
+
'content-types': contentTypes,
|
|
11
|
+
components,
|
|
12
|
+
'component-categories': componentCategories,
|
|
13
|
+
builder,
|
|
14
|
+
'api-handler': apiHandler
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
module.exports = services;
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import * as contentTypes from './content-types';\nimport * as components from './components';\nimport * as componentCategories from './component-categories';\nimport * as builder from './builder';\nimport * as apiHandler from './api-handler';\n\nexport default {\n 'content-types': contentTypes,\n components,\n 'component-categories': componentCategories,\n builder,\n 'api-handler': apiHandler,\n};\n"],"names":["contentTypes","components","componentCategories","builder","apiHandler"],"mappings":";;;;;;;;AAMA,eAAe;IACb,eAAiBA,EAAAA,YAAAA;AACjBC,IAAAA,UAAAA;IACA,sBAAwBC,EAAAA,mBAAAA;AACxBC,IAAAA,OAAAA;IACA,aAAeC,EAAAA;AACjB,CAAE;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as contentTypes from './content-types.mjs';
|
|
2
|
+
import * as components from './components.mjs';
|
|
3
|
+
import * as componentCategories from './component-categories.mjs';
|
|
4
|
+
import * as builder from './builder.mjs';
|
|
5
|
+
import * as apiHandler from './api-handler.mjs';
|
|
6
|
+
|
|
7
|
+
var services = {
|
|
8
|
+
'content-types': contentTypes,
|
|
9
|
+
components,
|
|
10
|
+
'component-categories': componentCategories,
|
|
11
|
+
builder,
|
|
12
|
+
'api-handler': apiHandler
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export { services as default };
|
|
16
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/services/index.ts"],"sourcesContent":["import * as contentTypes from './content-types';\nimport * as components from './components';\nimport * as componentCategories from './component-categories';\nimport * as builder from './builder';\nimport * as apiHandler from './api-handler';\n\nexport default {\n 'content-types': contentTypes,\n components,\n 'component-categories': componentCategories,\n builder,\n 'api-handler': apiHandler,\n};\n"],"names":["contentTypes","components","componentCategories","builder","apiHandler"],"mappings":";;;;;;AAMA,eAAe;IACb,eAAiBA,EAAAA,YAAAA;AACjBC,IAAAA,UAAAA;IACA,sBAAwBC,EAAAA,mBAAAA;AACxBC,IAAAA,OAAAA;IACA,aAAeC,EAAAA;AACjB,CAAE;;;;"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
var _ = require('lodash');
|
|
5
|
+
var pluralize = require('pluralize');
|
|
6
|
+
var utils = require('@strapi/utils');
|
|
7
|
+
var attributes = require('../../utils/attributes.js');
|
|
8
|
+
var schemaHandler = require('./schema-handler.js');
|
|
9
|
+
|
|
10
|
+
const { ApplicationError } = utils.errors;
|
|
11
|
+
function createComponentBuilder() {
|
|
12
|
+
return {
|
|
13
|
+
createComponentUID ({ category, displayName }) {
|
|
14
|
+
return `${utils.strings.nameToSlug(category)}.${utils.strings.nameToSlug(displayName)}`;
|
|
15
|
+
},
|
|
16
|
+
createNewComponentUIDMap (components) {
|
|
17
|
+
return components.reduce((uidMap, component)=>{
|
|
18
|
+
uidMap[component.tmpUID] = this.createComponentUID(component);
|
|
19
|
+
return uidMap;
|
|
20
|
+
}, {});
|
|
21
|
+
},
|
|
22
|
+
/**
|
|
23
|
+
* create a component in the tmpComponent map
|
|
24
|
+
*/ createComponent (infos) {
|
|
25
|
+
const uid = this.createComponentUID(infos);
|
|
26
|
+
if (this.components.has(uid)) {
|
|
27
|
+
throw new ApplicationError('component.alreadyExists');
|
|
28
|
+
}
|
|
29
|
+
const handler = schemaHandler({
|
|
30
|
+
dir: path.join(strapi.dirs.app.components, utils.strings.nameToSlug(infos.category)),
|
|
31
|
+
filename: `${utils.strings.nameToSlug(infos.displayName)}.json`
|
|
32
|
+
});
|
|
33
|
+
// TODO: create a utility for this
|
|
34
|
+
// Duplicate in admin/src/components/FormModal/forms/utils/createCollectionName.ts
|
|
35
|
+
const collectionName = `components_${utils.strings.nameToCollectionName(infos.category)}_${utils.strings.nameToCollectionName(pluralize(infos.displayName))}`;
|
|
36
|
+
this.components.forEach((compo)=>{
|
|
37
|
+
if (compo.schema.collectionName === collectionName) {
|
|
38
|
+
throw new ApplicationError('component.alreadyExists');
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
handler.setUID(uid).set('collectionName', collectionName).set([
|
|
42
|
+
'info',
|
|
43
|
+
'displayName'
|
|
44
|
+
], infos.displayName).set([
|
|
45
|
+
'info',
|
|
46
|
+
'icon'
|
|
47
|
+
], infos.icon).set([
|
|
48
|
+
'info',
|
|
49
|
+
'description'
|
|
50
|
+
], infos.description).set('pluginOptions', infos.pluginOptions).set('config', infos.config).setAttributes(this.convertAttributes(infos.attributes));
|
|
51
|
+
if (this.components.size === 0) {
|
|
52
|
+
strapi.telemetry.send('didCreateFirstComponent');
|
|
53
|
+
} else {
|
|
54
|
+
strapi.telemetry.send('didCreateComponent');
|
|
55
|
+
}
|
|
56
|
+
this.components.set(uid, handler);
|
|
57
|
+
return handler;
|
|
58
|
+
},
|
|
59
|
+
/**
|
|
60
|
+
* create a component in the tmpComponent map
|
|
61
|
+
*/ editComponent (infos) {
|
|
62
|
+
const { uid } = infos;
|
|
63
|
+
if (!this.components.has(uid)) {
|
|
64
|
+
throw new utils.errors.ApplicationError('component.notFound');
|
|
65
|
+
}
|
|
66
|
+
const component = this.components.get(uid);
|
|
67
|
+
const [, nameUID] = uid.split('.');
|
|
68
|
+
const newCategory = utils.strings.nameToSlug(infos.category);
|
|
69
|
+
const newUID = `${newCategory}.${nameUID}`;
|
|
70
|
+
if (newUID !== uid && this.components.has(newUID)) {
|
|
71
|
+
throw new utils.errors.ApplicationError('component.edit.alreadyExists');
|
|
72
|
+
}
|
|
73
|
+
const newDir = path.join(strapi.dirs.app.components, newCategory);
|
|
74
|
+
const oldAttributes = component.schema.attributes;
|
|
75
|
+
const newAttributes = _.omitBy(infos.attributes, (attr, key)=>{
|
|
76
|
+
return _.has(oldAttributes, key) && !attributes.isConfigurable(oldAttributes[key]);
|
|
77
|
+
});
|
|
78
|
+
component.setUID(newUID).setDir(newDir).set([
|
|
79
|
+
'info',
|
|
80
|
+
'displayName'
|
|
81
|
+
], infos.displayName).set([
|
|
82
|
+
'info',
|
|
83
|
+
'icon'
|
|
84
|
+
], infos.icon).set([
|
|
85
|
+
'info',
|
|
86
|
+
'description'
|
|
87
|
+
], infos.description).set('pluginOptions', infos.pluginOptions).setAttributes(this.convertAttributes(newAttributes));
|
|
88
|
+
if (newUID !== uid) {
|
|
89
|
+
this.components.forEach((compo)=>{
|
|
90
|
+
compo.updateComponent(uid, newUID);
|
|
91
|
+
});
|
|
92
|
+
this.contentTypes.forEach((ct)=>{
|
|
93
|
+
ct.updateComponent(uid, newUID);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return component;
|
|
97
|
+
},
|
|
98
|
+
deleteComponent (uid) {
|
|
99
|
+
if (!this.components.has(uid)) {
|
|
100
|
+
throw new utils.errors.ApplicationError('component.notFound');
|
|
101
|
+
}
|
|
102
|
+
this.components.forEach((compo)=>{
|
|
103
|
+
compo.removeComponent(uid);
|
|
104
|
+
});
|
|
105
|
+
this.contentTypes.forEach((ct)=>{
|
|
106
|
+
ct.removeComponent(uid);
|
|
107
|
+
});
|
|
108
|
+
return this.components.get(uid).delete();
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
module.exports = createComponentBuilder;
|
|
114
|
+
//# sourceMappingURL=component-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-builder.js","sources":["../../../../server/src/services/schema-builder/component-builder.ts"],"sourcesContent":["import path from 'path';\nimport type { Internal } from '@strapi/types';\nimport _ from 'lodash';\nimport pluralize from 'pluralize';\n\nimport { strings, errors } from '@strapi/utils';\nimport { isConfigurable } from '../../utils/attributes';\nimport createSchemaHandler from './schema-handler';\n\nconst { ApplicationError } = errors;\n\nexport default function createComponentBuilder() {\n return {\n createComponentUID({ category, displayName }: any) {\n return `${strings.nameToSlug(category)}.${strings.nameToSlug(displayName)}`;\n },\n\n createNewComponentUIDMap(components: object[]) {\n return components.reduce((uidMap: any, component: any) => {\n uidMap[component.tmpUID] = this.createComponentUID(component);\n return uidMap;\n }, {});\n },\n\n /**\n * create a component in the tmpComponent map\n */\n createComponent(this: any, infos: any) {\n const uid = this.createComponentUID(infos);\n\n if (this.components.has(uid)) {\n throw new ApplicationError('component.alreadyExists');\n }\n\n const handler = createSchemaHandler({\n dir: path.join(strapi.dirs.app.components, strings.nameToSlug(infos.category)),\n filename: `${strings.nameToSlug(infos.displayName)}.json`,\n });\n\n // TODO: create a utility for this\n // Duplicate in admin/src/components/FormModal/forms/utils/createCollectionName.ts\n const collectionName = `components_${strings.nameToCollectionName(\n infos.category\n )}_${strings.nameToCollectionName(pluralize(infos.displayName))}`;\n\n this.components.forEach((compo: any) => {\n if (compo.schema.collectionName === collectionName) {\n throw new ApplicationError('component.alreadyExists');\n }\n });\n\n handler\n .setUID(uid)\n .set('collectionName', collectionName)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .set('config', infos.config)\n .setAttributes(this.convertAttributes(infos.attributes));\n\n if (this.components.size === 0) {\n strapi.telemetry.send('didCreateFirstComponent');\n } else {\n strapi.telemetry.send('didCreateComponent');\n }\n\n this.components.set(uid, handler);\n\n return handler;\n },\n\n /**\n * create a component in the tmpComponent map\n */\n editComponent(this: any, infos: any) {\n const { uid } = infos;\n\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n const component = this.components.get(uid);\n\n const [, nameUID] = uid.split('.');\n\n const newCategory = strings.nameToSlug(infos.category);\n const newUID = `${newCategory}.${nameUID}`;\n\n if (newUID !== uid && this.components.has(newUID)) {\n throw new errors.ApplicationError('component.edit.alreadyExists');\n }\n\n const newDir = path.join(strapi.dirs.app.components, newCategory);\n\n const oldAttributes = component.schema.attributes;\n\n const newAttributes = _.omitBy(infos.attributes, (attr, key) => {\n return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);\n });\n\n component\n .setUID(newUID)\n .setDir(newDir)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .setAttributes(this.convertAttributes(newAttributes));\n\n if (newUID !== uid) {\n this.components.forEach((compo: any) => {\n compo.updateComponent(uid, newUID);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.updateComponent(uid, newUID);\n });\n }\n\n return component;\n },\n\n deleteComponent(this: any, uid: Internal.UID.Component) {\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n this.components.forEach((compo: any) => {\n compo.removeComponent(uid);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.removeComponent(uid);\n });\n\n return this.components.get(uid).delete();\n },\n };\n}\n"],"names":["ApplicationError","errors","createComponentBuilder","createComponentUID","category","displayName","strings","nameToSlug","createNewComponentUIDMap","components","reduce","uidMap","component","tmpUID","createComponent","infos","uid","has","handler","createSchemaHandler","dir","path","join","strapi","dirs","app","filename","collectionName","nameToCollectionName","pluralize","forEach","compo","schema","setUID","set","icon","description","pluginOptions","config","setAttributes","convertAttributes","attributes","size","telemetry","send","editComponent","get","nameUID","split","newCategory","newUID","newDir","oldAttributes","newAttributes","_","omitBy","attr","key","isConfigurable","setDir","updateComponent","contentTypes","ct","deleteComponent","removeComponent","delete"],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import path__default from 'path';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import pluralize from 'pluralize';
|
|
4
|
+
import { strings, errors } from '@strapi/utils';
|
|
5
|
+
import { isConfigurable } from '../../utils/attributes.mjs';
|
|
6
|
+
import createSchemaHandler from './schema-handler.mjs';
|
|
7
|
+
|
|
8
|
+
const { ApplicationError } = errors;
|
|
9
|
+
function createComponentBuilder() {
|
|
10
|
+
return {
|
|
11
|
+
createComponentUID ({ category, displayName }) {
|
|
12
|
+
return `${strings.nameToSlug(category)}.${strings.nameToSlug(displayName)}`;
|
|
13
|
+
},
|
|
14
|
+
createNewComponentUIDMap (components) {
|
|
15
|
+
return components.reduce((uidMap, component)=>{
|
|
16
|
+
uidMap[component.tmpUID] = this.createComponentUID(component);
|
|
17
|
+
return uidMap;
|
|
18
|
+
}, {});
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* create a component in the tmpComponent map
|
|
22
|
+
*/ createComponent (infos) {
|
|
23
|
+
const uid = this.createComponentUID(infos);
|
|
24
|
+
if (this.components.has(uid)) {
|
|
25
|
+
throw new ApplicationError('component.alreadyExists');
|
|
26
|
+
}
|
|
27
|
+
const handler = createSchemaHandler({
|
|
28
|
+
dir: path__default.join(strapi.dirs.app.components, strings.nameToSlug(infos.category)),
|
|
29
|
+
filename: `${strings.nameToSlug(infos.displayName)}.json`
|
|
30
|
+
});
|
|
31
|
+
// TODO: create a utility for this
|
|
32
|
+
// Duplicate in admin/src/components/FormModal/forms/utils/createCollectionName.ts
|
|
33
|
+
const collectionName = `components_${strings.nameToCollectionName(infos.category)}_${strings.nameToCollectionName(pluralize(infos.displayName))}`;
|
|
34
|
+
this.components.forEach((compo)=>{
|
|
35
|
+
if (compo.schema.collectionName === collectionName) {
|
|
36
|
+
throw new ApplicationError('component.alreadyExists');
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
handler.setUID(uid).set('collectionName', collectionName).set([
|
|
40
|
+
'info',
|
|
41
|
+
'displayName'
|
|
42
|
+
], infos.displayName).set([
|
|
43
|
+
'info',
|
|
44
|
+
'icon'
|
|
45
|
+
], infos.icon).set([
|
|
46
|
+
'info',
|
|
47
|
+
'description'
|
|
48
|
+
], infos.description).set('pluginOptions', infos.pluginOptions).set('config', infos.config).setAttributes(this.convertAttributes(infos.attributes));
|
|
49
|
+
if (this.components.size === 0) {
|
|
50
|
+
strapi.telemetry.send('didCreateFirstComponent');
|
|
51
|
+
} else {
|
|
52
|
+
strapi.telemetry.send('didCreateComponent');
|
|
53
|
+
}
|
|
54
|
+
this.components.set(uid, handler);
|
|
55
|
+
return handler;
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* create a component in the tmpComponent map
|
|
59
|
+
*/ editComponent (infos) {
|
|
60
|
+
const { uid } = infos;
|
|
61
|
+
if (!this.components.has(uid)) {
|
|
62
|
+
throw new errors.ApplicationError('component.notFound');
|
|
63
|
+
}
|
|
64
|
+
const component = this.components.get(uid);
|
|
65
|
+
const [, nameUID] = uid.split('.');
|
|
66
|
+
const newCategory = strings.nameToSlug(infos.category);
|
|
67
|
+
const newUID = `${newCategory}.${nameUID}`;
|
|
68
|
+
if (newUID !== uid && this.components.has(newUID)) {
|
|
69
|
+
throw new errors.ApplicationError('component.edit.alreadyExists');
|
|
70
|
+
}
|
|
71
|
+
const newDir = path__default.join(strapi.dirs.app.components, newCategory);
|
|
72
|
+
const oldAttributes = component.schema.attributes;
|
|
73
|
+
const newAttributes = _.omitBy(infos.attributes, (attr, key)=>{
|
|
74
|
+
return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);
|
|
75
|
+
});
|
|
76
|
+
component.setUID(newUID).setDir(newDir).set([
|
|
77
|
+
'info',
|
|
78
|
+
'displayName'
|
|
79
|
+
], infos.displayName).set([
|
|
80
|
+
'info',
|
|
81
|
+
'icon'
|
|
82
|
+
], infos.icon).set([
|
|
83
|
+
'info',
|
|
84
|
+
'description'
|
|
85
|
+
], infos.description).set('pluginOptions', infos.pluginOptions).setAttributes(this.convertAttributes(newAttributes));
|
|
86
|
+
if (newUID !== uid) {
|
|
87
|
+
this.components.forEach((compo)=>{
|
|
88
|
+
compo.updateComponent(uid, newUID);
|
|
89
|
+
});
|
|
90
|
+
this.contentTypes.forEach((ct)=>{
|
|
91
|
+
ct.updateComponent(uid, newUID);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return component;
|
|
95
|
+
},
|
|
96
|
+
deleteComponent (uid) {
|
|
97
|
+
if (!this.components.has(uid)) {
|
|
98
|
+
throw new errors.ApplicationError('component.notFound');
|
|
99
|
+
}
|
|
100
|
+
this.components.forEach((compo)=>{
|
|
101
|
+
compo.removeComponent(uid);
|
|
102
|
+
});
|
|
103
|
+
this.contentTypes.forEach((ct)=>{
|
|
104
|
+
ct.removeComponent(uid);
|
|
105
|
+
});
|
|
106
|
+
return this.components.get(uid).delete();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export { createComponentBuilder as default };
|
|
112
|
+
//# sourceMappingURL=component-builder.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-builder.mjs","sources":["../../../../server/src/services/schema-builder/component-builder.ts"],"sourcesContent":["import path from 'path';\nimport type { Internal } from '@strapi/types';\nimport _ from 'lodash';\nimport pluralize from 'pluralize';\n\nimport { strings, errors } from '@strapi/utils';\nimport { isConfigurable } from '../../utils/attributes';\nimport createSchemaHandler from './schema-handler';\n\nconst { ApplicationError } = errors;\n\nexport default function createComponentBuilder() {\n return {\n createComponentUID({ category, displayName }: any) {\n return `${strings.nameToSlug(category)}.${strings.nameToSlug(displayName)}`;\n },\n\n createNewComponentUIDMap(components: object[]) {\n return components.reduce((uidMap: any, component: any) => {\n uidMap[component.tmpUID] = this.createComponentUID(component);\n return uidMap;\n }, {});\n },\n\n /**\n * create a component in the tmpComponent map\n */\n createComponent(this: any, infos: any) {\n const uid = this.createComponentUID(infos);\n\n if (this.components.has(uid)) {\n throw new ApplicationError('component.alreadyExists');\n }\n\n const handler = createSchemaHandler({\n dir: path.join(strapi.dirs.app.components, strings.nameToSlug(infos.category)),\n filename: `${strings.nameToSlug(infos.displayName)}.json`,\n });\n\n // TODO: create a utility for this\n // Duplicate in admin/src/components/FormModal/forms/utils/createCollectionName.ts\n const collectionName = `components_${strings.nameToCollectionName(\n infos.category\n )}_${strings.nameToCollectionName(pluralize(infos.displayName))}`;\n\n this.components.forEach((compo: any) => {\n if (compo.schema.collectionName === collectionName) {\n throw new ApplicationError('component.alreadyExists');\n }\n });\n\n handler\n .setUID(uid)\n .set('collectionName', collectionName)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .set('config', infos.config)\n .setAttributes(this.convertAttributes(infos.attributes));\n\n if (this.components.size === 0) {\n strapi.telemetry.send('didCreateFirstComponent');\n } else {\n strapi.telemetry.send('didCreateComponent');\n }\n\n this.components.set(uid, handler);\n\n return handler;\n },\n\n /**\n * create a component in the tmpComponent map\n */\n editComponent(this: any, infos: any) {\n const { uid } = infos;\n\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n const component = this.components.get(uid);\n\n const [, nameUID] = uid.split('.');\n\n const newCategory = strings.nameToSlug(infos.category);\n const newUID = `${newCategory}.${nameUID}`;\n\n if (newUID !== uid && this.components.has(newUID)) {\n throw new errors.ApplicationError('component.edit.alreadyExists');\n }\n\n const newDir = path.join(strapi.dirs.app.components, newCategory);\n\n const oldAttributes = component.schema.attributes;\n\n const newAttributes = _.omitBy(infos.attributes, (attr, key) => {\n return _.has(oldAttributes, key) && !isConfigurable(oldAttributes[key]);\n });\n\n component\n .setUID(newUID)\n .setDir(newDir)\n .set(['info', 'displayName'], infos.displayName)\n .set(['info', 'icon'], infos.icon)\n .set(['info', 'description'], infos.description)\n .set('pluginOptions', infos.pluginOptions)\n .setAttributes(this.convertAttributes(newAttributes));\n\n if (newUID !== uid) {\n this.components.forEach((compo: any) => {\n compo.updateComponent(uid, newUID);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.updateComponent(uid, newUID);\n });\n }\n\n return component;\n },\n\n deleteComponent(this: any, uid: Internal.UID.Component) {\n if (!this.components.has(uid)) {\n throw new errors.ApplicationError('component.notFound');\n }\n\n this.components.forEach((compo: any) => {\n compo.removeComponent(uid);\n });\n\n this.contentTypes.forEach((ct: any) => {\n ct.removeComponent(uid);\n });\n\n return this.components.get(uid).delete();\n },\n };\n}\n"],"names":["ApplicationError","errors","createComponentBuilder","createComponentUID","category","displayName","strings","nameToSlug","createNewComponentUIDMap","components","reduce","uidMap","component","tmpUID","createComponent","infos","uid","has","handler","createSchemaHandler","dir","path","join","strapi","dirs","app","filename","collectionName","nameToCollectionName","pluralize","forEach","compo","schema","setUID","set","icon","description","pluginOptions","config","setAttributes","convertAttributes","attributes","size","telemetry","send","editComponent","get","nameUID","split","newCategory","newUID","newDir","oldAttributes","newAttributes","_","omitBy","attr","key","isConfigurable","setDir","updateComponent","contentTypes","ct","deleteComponent","removeComponent","delete"],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
var _ = require('lodash');
|
|
5
|
+
var utils = require('@strapi/utils');
|
|
6
|
+
var attributes = require('../../utils/attributes.js');
|
|
7
|
+
var constants = require('../constants.js');
|
|
8
|
+
var schemaHandler = require('./schema-handler.js');
|
|
9
|
+
|
|
10
|
+
const { ApplicationError } = utils.errors;
|
|
11
|
+
const reuseUnsetPreviousProperties = (newAttribute, oldAttribute)=>{
|
|
12
|
+
_.defaults(newAttribute, _.omit(oldAttribute, [
|
|
13
|
+
'configurable',
|
|
14
|
+
'required',
|
|
15
|
+
'private',
|
|
16
|
+
'unique',
|
|
17
|
+
'pluginOptions',
|
|
18
|
+
'inversedBy',
|
|
19
|
+
'mappedBy'
|
|
20
|
+
]));
|
|
21
|
+
};
|
|
22
|
+
function createComponentBuilder() {
|
|
23
|
+
return {
|
|
24
|
+
setRelation ({ key, uid, attribute }) {
|
|
25
|
+
if (!_.has(attribute, 'target')) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const targetCT = this.contentTypes.get(attribute.target);
|
|
29
|
+
const targetAttribute = targetCT.getAttribute(attribute.targetAttribute);
|
|
30
|
+
if (!attribute.targetAttribute) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
targetCT.setAttribute(attribute.targetAttribute, generateRelation({
|
|
34
|
+
key,
|
|
35
|
+
attribute,
|
|
36
|
+
uid,
|
|
37
|
+
targetAttribute
|
|
38
|
+
}));
|
|
39
|
+
},
|
|
40
|
+
unsetRelation (attribute) {
|
|
41
|
+
if (!_.has(attribute, 'target')) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const targetCT = this.contentTypes.get(attribute.target);
|
|
45
|
+
const targetAttributeName = attribute.inversedBy || attribute.mappedBy;
|
|
46
|
+
const targetAttribute = targetCT.getAttribute(targetAttributeName);
|
|
47
|
+
if (!targetAttribute) return;
|
|
48
|
+
return targetCT.deleteAttribute(targetAttributeName);
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Creates a content type in memory to be written to files later on
|
|
52
|
+
*/ createContentType (infos) {
|
|
53
|
+
const uid = createContentTypeUID(infos);
|
|
54
|
+
if (this.contentTypes.has(uid)) {
|
|
55
|
+
throw new ApplicationError('contentType.alreadyExists');
|
|
56
|
+
}
|
|
57
|
+
const contentType = schemaHandler({
|
|
58
|
+
modelName: infos.singularName,
|
|
59
|
+
dir: path.join(strapi.dirs.app.api, infos.singularName, 'content-types', infos.singularName),
|
|
60
|
+
filename: `schema.json`
|
|
61
|
+
});
|
|
62
|
+
this.contentTypes.set(uid, contentType);
|
|
63
|
+
// support self referencing content type relation
|
|
64
|
+
Object.keys(infos.attributes).forEach((key)=>{
|
|
65
|
+
const { target } = infos.attributes[key];
|
|
66
|
+
if (target === '__self__') {
|
|
67
|
+
infos.attributes[key].target = uid;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
contentType.setUID(uid).set('kind', infos.kind || constants.typeKinds.COLLECTION_TYPE).set('collectionName', infos.collectionName || utils.strings.nameToCollectionName(infos.pluralName)).set('info', {
|
|
71
|
+
singularName: infos.singularName,
|
|
72
|
+
pluralName: infos.pluralName,
|
|
73
|
+
displayName: infos.displayName,
|
|
74
|
+
description: infos.description
|
|
75
|
+
}).set('options', {
|
|
76
|
+
...infos.options ?? {},
|
|
77
|
+
draftAndPublish: infos.draftAndPublish
|
|
78
|
+
}).set('pluginOptions', infos.pluginOptions).set('config', infos.config).setAttributes(this.convertAttributes(infos.attributes));
|
|
79
|
+
Object.keys(infos.attributes).forEach((key)=>{
|
|
80
|
+
const attribute = infos.attributes[key];
|
|
81
|
+
if (attributes.isRelation(attribute)) {
|
|
82
|
+
if ([
|
|
83
|
+
'manyToMany',
|
|
84
|
+
'oneToOne'
|
|
85
|
+
].includes(attribute.relation)) {
|
|
86
|
+
if (attribute.target === uid && attribute.targetAttribute !== undefined) {
|
|
87
|
+
// self referencing relation
|
|
88
|
+
const targetAttribute = infos.attributes[attribute.targetAttribute];
|
|
89
|
+
if (targetAttribute.dominant === undefined) {
|
|
90
|
+
attribute.dominant = true;
|
|
91
|
+
} else {
|
|
92
|
+
attribute.dominant = false;
|
|
93
|
+
}
|
|
94
|
+
} else {
|
|
95
|
+
attribute.dominant = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.setRelation({
|
|
99
|
+
key,
|
|
100
|
+
uid,
|
|
101
|
+
attribute
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
return contentType;
|
|
106
|
+
},
|
|
107
|
+
editContentType (infos) {
|
|
108
|
+
const { uid } = infos;
|
|
109
|
+
if (!this.contentTypes.has(uid)) {
|
|
110
|
+
throw new ApplicationError('contentType.notFound');
|
|
111
|
+
}
|
|
112
|
+
const contentType = this.contentTypes.get(uid);
|
|
113
|
+
const oldAttributes = contentType.schema.attributes;
|
|
114
|
+
const newAttributes = _.omitBy(infos.attributes, (attr, key)=>{
|
|
115
|
+
return _.has(oldAttributes, key) && !attributes.isConfigurable(oldAttributes[key]);
|
|
116
|
+
});
|
|
117
|
+
const newKeys = _.difference(Object.keys(newAttributes), Object.keys(oldAttributes));
|
|
118
|
+
const deletedKeys = _.difference(Object.keys(oldAttributes), Object.keys(newAttributes));
|
|
119
|
+
const remainingKeys = _.intersection(Object.keys(oldAttributes), Object.keys(newAttributes));
|
|
120
|
+
// remove old relations
|
|
121
|
+
deletedKeys.forEach((key)=>{
|
|
122
|
+
const attribute = oldAttributes[key];
|
|
123
|
+
const targetAttributeName = attribute.inversedBy || attribute.mappedBy;
|
|
124
|
+
// if the old relation has a target attribute. we need to remove it in the target type
|
|
125
|
+
if (attributes.isConfigurable(attribute) && attributes.isRelation(attribute) && !_.isNil(targetAttributeName)) {
|
|
126
|
+
this.unsetRelation(attribute);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
remainingKeys.forEach((key)=>{
|
|
130
|
+
const oldAttribute = oldAttributes[key];
|
|
131
|
+
const newAttribute = newAttributes[key];
|
|
132
|
+
if (!attributes.isRelation(oldAttribute) && attributes.isRelation(newAttribute)) {
|
|
133
|
+
return this.setRelation({
|
|
134
|
+
key,
|
|
135
|
+
uid,
|
|
136
|
+
attribute: newAttributes[key]
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
if (attributes.isRelation(oldAttribute) && !attributes.isRelation(newAttribute)) {
|
|
140
|
+
return this.unsetRelation(oldAttribute);
|
|
141
|
+
}
|
|
142
|
+
if (attributes.isRelation(oldAttribute) && attributes.isRelation(newAttribute)) {
|
|
143
|
+
const oldTargetAttributeName = oldAttribute.inversedBy || oldAttribute.mappedBy;
|
|
144
|
+
const sameRelation = oldAttribute.relation === newAttribute.relation;
|
|
145
|
+
const targetAttributeHasChanged = oldTargetAttributeName !== newAttribute.targetAttribute;
|
|
146
|
+
if (!sameRelation || targetAttributeHasChanged) {
|
|
147
|
+
this.unsetRelation(oldAttribute);
|
|
148
|
+
}
|
|
149
|
+
// keep extra options that were set manually on oldAttribute
|
|
150
|
+
reuseUnsetPreviousProperties(newAttribute, oldAttribute);
|
|
151
|
+
if (oldAttribute.inversedBy) {
|
|
152
|
+
newAttribute.dominant = true;
|
|
153
|
+
} else if (oldAttribute.mappedBy) {
|
|
154
|
+
newAttribute.dominant = false;
|
|
155
|
+
}
|
|
156
|
+
return this.setRelation({
|
|
157
|
+
key,
|
|
158
|
+
uid,
|
|
159
|
+
attribute: newAttribute
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
// add new relations
|
|
164
|
+
newKeys.forEach((key)=>{
|
|
165
|
+
const attribute = newAttributes[key];
|
|
166
|
+
if (attributes.isRelation(attribute)) {
|
|
167
|
+
if ([
|
|
168
|
+
'manyToMany',
|
|
169
|
+
'oneToOne'
|
|
170
|
+
].includes(attribute.relation)) {
|
|
171
|
+
if (attribute.target === uid && attribute.targetAttribute !== undefined) {
|
|
172
|
+
// self referencing relation
|
|
173
|
+
const targetAttribute = newAttributes[attribute.targetAttribute];
|
|
174
|
+
if (targetAttribute.dominant === undefined) {
|
|
175
|
+
attribute.dominant = true;
|
|
176
|
+
} else {
|
|
177
|
+
attribute.dominant = false;
|
|
178
|
+
}
|
|
179
|
+
} else {
|
|
180
|
+
attribute.dominant = true;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
this.setRelation({
|
|
184
|
+
key,
|
|
185
|
+
uid,
|
|
186
|
+
attribute
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
contentType.set('kind', infos.kind || contentType.schema.kind).set([
|
|
191
|
+
'info',
|
|
192
|
+
'displayName'
|
|
193
|
+
], infos.displayName).set([
|
|
194
|
+
'info',
|
|
195
|
+
'description'
|
|
196
|
+
], infos.description).set('options', {
|
|
197
|
+
...infos.options ?? {},
|
|
198
|
+
draftAndPublish: infos.draftAndPublish
|
|
199
|
+
}).set('pluginOptions', infos.pluginOptions).setAttributes(this.convertAttributes(newAttributes));
|
|
200
|
+
return contentType;
|
|
201
|
+
},
|
|
202
|
+
deleteContentType (uid) {
|
|
203
|
+
if (!this.contentTypes.has(uid)) {
|
|
204
|
+
throw new ApplicationError('contentType.notFound');
|
|
205
|
+
}
|
|
206
|
+
this.components.forEach((compo)=>{
|
|
207
|
+
compo.removeContentType(uid);
|
|
208
|
+
});
|
|
209
|
+
this.contentTypes.forEach((ct)=>{
|
|
210
|
+
ct.removeContentType(uid);
|
|
211
|
+
});
|
|
212
|
+
return this.contentTypes.get(uid).delete();
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Returns a uid from a content type infos
|
|
218
|
+
*
|
|
219
|
+
* @param {object} options options
|
|
220
|
+
* @param {string} options.singularName content-type singularName
|
|
221
|
+
* @returns {string} uid
|
|
222
|
+
*/ const createContentTypeUID = ({ singularName })=>`api::${singularName}.${singularName}`;
|
|
223
|
+
const generateRelation = ({ key, attribute, uid, targetAttribute = {} })=>{
|
|
224
|
+
const opts = {
|
|
225
|
+
type: 'relation',
|
|
226
|
+
target: uid,
|
|
227
|
+
autoPopulate: targetAttribute.autoPopulate,
|
|
228
|
+
private: targetAttribute.private || undefined,
|
|
229
|
+
pluginOptions: targetAttribute.pluginOptions || undefined
|
|
230
|
+
};
|
|
231
|
+
switch(attribute.relation){
|
|
232
|
+
case 'oneToOne':
|
|
233
|
+
{
|
|
234
|
+
opts.relation = 'oneToOne';
|
|
235
|
+
if (attribute.dominant) {
|
|
236
|
+
opts.mappedBy = key;
|
|
237
|
+
} else {
|
|
238
|
+
opts.inversedBy = key;
|
|
239
|
+
}
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case 'oneToMany':
|
|
243
|
+
{
|
|
244
|
+
opts.relation = 'manyToOne';
|
|
245
|
+
opts.inversedBy = key;
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
case 'manyToOne':
|
|
249
|
+
{
|
|
250
|
+
opts.relation = 'oneToMany';
|
|
251
|
+
opts.mappedBy = key;
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
case 'manyToMany':
|
|
255
|
+
{
|
|
256
|
+
opts.relation = 'manyToMany';
|
|
257
|
+
if (attribute.dominant) {
|
|
258
|
+
opts.mappedBy = key;
|
|
259
|
+
} else {
|
|
260
|
+
opts.inversedBy = key;
|
|
261
|
+
}
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// we do this just to make sure we have the same key order when writing to files
|
|
266
|
+
const { type, relation, target, ...restOptions } = opts;
|
|
267
|
+
return {
|
|
268
|
+
type,
|
|
269
|
+
relation,
|
|
270
|
+
target,
|
|
271
|
+
...restOptions
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
module.exports = createComponentBuilder;
|
|
276
|
+
//# sourceMappingURL=content-type-builder.js.map
|