@strapi/content-type-builder 5.13.1 → 5.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/AttributeIcon.js +1 -0
- package/dist/admin/components/AttributeIcon.js.map +1 -1
- package/dist/admin/components/AttributeIcon.mjs +1 -0
- package/dist/admin/components/AttributeIcon.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs +1 -1
- package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.js.map +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs +1 -1
- package/dist/admin/components/AttributeOptions/CustomFieldOption.mjs.map +1 -1
- package/dist/admin/components/AttributeRow.js +342 -0
- package/dist/admin/components/AttributeRow.js.map +1 -0
- package/dist/admin/components/AttributeRow.mjs +339 -0
- package/dist/admin/components/AttributeRow.mjs.map +1 -0
- package/dist/admin/components/AutoReloadOverlayBlocker.js +5 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs +5 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.mjs.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js +13 -11
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.mjs +13 -11
- package/dist/admin/components/ComponentCard/ComponentCard.mjs.map +1 -1
- package/dist/admin/components/ComponentList.js +12 -26
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ComponentList.mjs +12 -26
- package/dist/admin/components/ComponentList.mjs.map +1 -1
- package/dist/admin/components/{Tr.js → ComponentRow.js} +9 -15
- package/dist/admin/components/ComponentRow.js.map +1 -0
- package/dist/admin/components/{Tr.mjs → ComponentRow.mjs} +9 -15
- package/dist/admin/components/ComponentRow.mjs.map +1 -0
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js +253 -70
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs +256 -73
- package/dist/admin/components/ContentTypeBuilderNav/ContentTypeBuilderNav.mjs.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +53 -81
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs +54 -82
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.mjs.map +1 -1
- package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js +344 -0
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs +323 -0
- package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -0
- package/dist/admin/components/DataManager/reducer.js +546 -0
- package/dist/admin/components/DataManager/reducer.js.map +1 -0
- package/dist/admin/components/DataManager/reducer.mjs +542 -0
- package/dist/admin/components/DataManager/reducer.mjs.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.js +102 -0
- package/dist/admin/components/DataManager/undoRedo.js.map +1 -0
- package/dist/admin/components/DataManager/undoRedo.mjs +100 -0
- package/dist/admin/components/DataManager/undoRedo.mjs.map +1 -0
- package/dist/admin/{hooks → components/DataManager}/useDataManager.js +1 -1
- package/dist/admin/components/DataManager/useDataManager.js.map +1 -0
- package/dist/admin/{hooks → components/DataManager}/useDataManager.mjs +1 -1
- package/dist/admin/components/DataManager/useDataManager.mjs.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js +35 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.js.map +1 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs +33 -0
- package/dist/admin/components/DataManager/useServerRestartWatcher.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.js +128 -0
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs +125 -0
- package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.js +21 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.js.map +1 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs +18 -0
- package/dist/admin/components/DataManager/utils/formatSchemas.mjs.map +1 -0
- package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.js +1 -5
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -0
- package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.mjs +1 -5
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.mjs.map +1 -0
- package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.js +3 -3
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.js.map +1 -0
- package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.mjs +3 -3
- package/dist/admin/components/DataManager/utils/retrieveNestedComponents.mjs.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -0
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.mjs.map +1 -0
- package/dist/admin/components/DisplayedType.js +14 -14
- package/dist/admin/components/DisplayedType.js.map +1 -1
- package/dist/admin/components/DisplayedType.mjs +15 -15
- package/dist/admin/components/DisplayedType.mjs.map +1 -1
- package/dist/admin/components/DynamicZoneList.js +34 -38
- package/dist/admin/components/DynamicZoneList.js.map +1 -1
- package/dist/admin/components/DynamicZoneList.mjs +36 -40
- package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
- package/dist/admin/components/ExitPrompt.js +50 -0
- package/dist/admin/components/ExitPrompt.js.map +1 -0
- package/dist/admin/components/ExitPrompt.mjs +48 -0
- package/dist/admin/components/ExitPrompt.mjs.map +1 -0
- package/dist/admin/components/{NestedFooter.js → Footers.js} +35 -2
- package/dist/admin/components/Footers.js.map +1 -0
- package/dist/admin/components/{NestedFooter.mjs → Footers.mjs} +36 -4
- package/dist/admin/components/Footers.mjs.map +1 -0
- package/dist/admin/components/FormModal/FormModal.js +198 -164
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.mjs +198 -165
- package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js +2 -2
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.js +10 -27
- package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
- package/dist/admin/components/FormModal/forms/forms.mjs +10 -27
- package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/getUsedAttributeNames.mjs.map +1 -1
- package/dist/admin/components/FormModal/reducer.js +4 -4
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.mjs +4 -4
- package/dist/admin/components/FormModal/reducer.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.js +9 -14
- package/dist/admin/components/FormModal/utils/canEditContentType.js.map +1 -1
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs +9 -14
- package/dist/admin/components/FormModal/utils/canEditContentType.mjs.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.js.map +1 -1
- package/dist/admin/components/FormModal/utils/getAttributesToDisplay.mjs.map +1 -1
- package/dist/admin/components/FormModalEndActions.js +1 -34
- package/dist/admin/components/FormModalEndActions.js.map +1 -1
- package/dist/admin/components/FormModalEndActions.mjs +1 -34
- package/dist/admin/components/FormModalEndActions.mjs.map +1 -1
- package/dist/admin/components/FormModalHeader.js +10 -28
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalHeader.mjs +10 -28
- package/dist/admin/components/FormModalHeader.mjs.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -0
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.mjs.map +1 -0
- package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.js +91 -114
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.js.map +1 -0
- package/dist/admin/components/{FormModalNavigationProvider → FormModalNavigation}/FormModalNavigationProvider.mjs +91 -96
- package/dist/admin/components/FormModalNavigation/FormModalNavigationProvider.mjs.map +1 -0
- package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.js +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.js.map +1 -0
- package/dist/admin/{hooks → components/FormModalNavigation}/useFormModalNavigation.mjs +1 -1
- package/dist/admin/components/FormModalNavigation/useFormModalNavigation.mjs.map +1 -0
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.mjs.map +1 -1
- package/dist/admin/components/GenericInputs.js +9 -5
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/GenericInputs.mjs +9 -5
- package/dist/admin/components/GenericInputs.mjs.map +1 -1
- package/dist/admin/components/List.js +149 -199
- package/dist/admin/components/List.js.map +1 -1
- package/dist/admin/components/List.mjs +151 -202
- package/dist/admin/components/List.mjs.map +1 -1
- package/dist/admin/components/Relation/Relation.js +3 -2
- package/dist/admin/components/Relation/Relation.js.map +1 -1
- package/dist/admin/components/Relation/Relation.mjs +3 -2
- package/dist/admin/components/Relation/Relation.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs +1 -1
- package/dist/admin/components/Relation/RelationField/RelationField.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js +6 -5
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs +6 -5
- package/dist/admin/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.mjs.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +19 -21
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs +19 -21
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.mjs.map +1 -1
- package/dist/admin/components/SelectCategory.js +1 -1
- package/dist/admin/components/SelectCategory.js.map +1 -1
- package/dist/admin/components/SelectCategory.mjs +1 -1
- package/dist/admin/components/SelectCategory.mjs.map +1 -1
- package/dist/admin/components/SelectComponent.js +3 -6
- package/dist/admin/components/SelectComponent.js.map +1 -1
- package/dist/admin/components/SelectComponent.mjs +3 -6
- package/dist/admin/components/SelectComponent.mjs.map +1 -1
- package/dist/admin/components/SelectComponents.js +9 -6
- package/dist/admin/components/SelectComponents.js.map +1 -1
- package/dist/admin/components/SelectComponents.mjs +9 -6
- package/dist/admin/components/SelectComponents.mjs.map +1 -1
- package/dist/admin/components/SelectNumber.js +0 -4
- package/dist/admin/components/SelectNumber.js.map +1 -1
- package/dist/admin/components/SelectNumber.mjs +0 -4
- package/dist/admin/components/SelectNumber.mjs.map +1 -1
- package/dist/admin/components/Status.js +73 -0
- package/dist/admin/components/Status.js.map +1 -0
- package/dist/admin/components/Status.mjs +70 -0
- package/dist/admin/components/Status.mjs.map +1 -0
- package/dist/admin/components/TabForm.js +2 -1
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/components/TabForm.mjs +2 -1
- package/dist/admin/components/TabForm.mjs.map +1 -1
- package/dist/admin/icons/Curve.js +1 -1
- package/dist/admin/icons/Curve.js.map +1 -1
- package/dist/admin/icons/Curve.mjs +1 -1
- package/dist/admin/icons/Curve.mjs.map +1 -1
- package/dist/admin/pages/App/index.js +39 -19
- package/dist/admin/pages/App/index.js.map +1 -1
- package/dist/admin/pages/App/index.mjs +41 -21
- package/dist/admin/pages/App/index.mjs.map +1 -1
- package/dist/admin/pages/ListView/EmptyState.js +38 -0
- package/dist/admin/pages/ListView/EmptyState.js.map +1 -0
- package/dist/admin/pages/ListView/EmptyState.mjs +36 -0
- package/dist/admin/pages/ListView/EmptyState.mjs.map +1 -0
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js +26 -17
- package/dist/admin/pages/ListView/LinkToCMSettingsView.js.map +1 -1
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs +26 -17
- package/dist/admin/pages/ListView/LinkToCMSettingsView.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListView.js +105 -158
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.mjs +110 -163
- package/dist/admin/pages/ListView/ListView.mjs.map +1 -1
- package/dist/admin/reducers.js +3 -4
- package/dist/admin/reducers.js.map +1 -1
- package/dist/admin/reducers.mjs +3 -4
- package/dist/admin/reducers.mjs.map +1 -1
- package/dist/admin/src/components/AttributeRow.d.ts +28 -0
- package/dist/admin/src/components/AutoReloadOverlayBlocker.d.ts +2 -2
- package/dist/admin/src/components/ComponentCard/ComponentCard.d.ts +5 -1
- package/dist/admin/src/components/ComponentList.d.ts +4 -6
- package/dist/admin/src/components/{BoxWrapper.d.ts → ComponentRow.d.ts} +5 -2
- package/dist/admin/src/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.d.ts +29 -14
- package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +138 -0
- package/dist/admin/src/components/DataManager/DataManagerProvider.d.ts +6 -0
- package/dist/admin/src/components/DataManager/reducer.d.ts +278 -0
- package/dist/admin/src/components/DataManager/undoRedo.d.ts +23 -0
- package/dist/admin/src/components/DataManager/useDataManager.d.ts +1 -0
- package/dist/admin/src/components/DataManager/useServerRestartWatcher.d.ts +1 -0
- package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +311 -0
- package/dist/admin/src/components/DataManager/utils/formatSchemas.d.ts +3 -0
- package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveComponentsThatHaveComponents.d.ts +3 -3
- package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveNestedComponents.d.ts +4 -4
- package/dist/admin/src/components/DisplayedType.d.ts +2 -1
- package/dist/admin/src/components/DynamicZoneList.d.ts +8 -5
- package/dist/admin/src/components/ExitPrompt.d.ts +1 -0
- package/dist/admin/src/components/{NestedFooter.d.ts → Footers.d.ts} +5 -1
- package/dist/admin/src/components/FormModal/forms/forms.d.ts +2 -38
- package/dist/admin/src/components/FormModal/forms/utils/getUsedAttributeNames.d.ts +3 -2
- package/dist/admin/src/components/FormModal/reducer.d.ts +10 -4
- package/dist/admin/src/components/FormModal/utils/canEditContentType.d.ts +4 -4
- package/dist/admin/src/components/FormModal/utils/getAttributesToDisplay.d.ts +1 -1
- package/dist/admin/src/components/FormModalEndActions.d.ts +1 -5
- package/dist/admin/src/components/FormModalHeader.d.ts +10 -7
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationContext.d.ts +19 -0
- package/dist/admin/src/components/FormModalNavigation/FormModalNavigationProvider.d.ts +54 -0
- package/dist/admin/src/components/FormModalNavigation/useFormModalNavigation.d.ts +1 -0
- package/dist/admin/src/components/FormModalSubHeader.d.ts +3 -3
- package/dist/admin/src/components/GenericInputs.d.ts +2 -1
- package/dist/admin/src/components/List.d.ts +16 -13
- package/dist/admin/src/components/Relation/Relation.d.ts +2 -1
- package/dist/admin/src/components/Relation/RelationField/RelationField.d.ts +2 -1
- package/dist/admin/src/components/Relation/RelationField/RelationTargetPicker/RelationTargetPicker.d.ts +3 -2
- package/dist/admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.d.ts +2 -1
- package/dist/admin/src/components/SelectComponents.d.ts +3 -1
- package/dist/admin/src/components/SelectNumber.d.ts +1 -7
- package/dist/admin/src/components/Status.d.ts +6 -0
- package/dist/admin/src/pages/ListView/EmptyState.d.ts +1 -0
- package/dist/admin/src/pages/ListView/LinkToCMSettingsView.d.ts +3 -4
- package/dist/admin/src/pages/ListView/ListView.d.ts +1 -1
- package/dist/admin/src/reducers.d.ts +2 -8
- package/dist/admin/src/types.d.ts +40 -43
- package/dist/admin/src/utils/findAttribute.d.ts +2 -2
- package/dist/admin/src/utils/formAPI.d.ts +43 -1
- package/dist/admin/src/utils/getMaxDepth.d.ts +2 -2
- package/dist/admin/src/utils/getRelationType.d.ts +1 -1
- package/dist/admin/src/utils/isAllowedContentTypesForRelations.d.ts +1 -1
- package/dist/admin/translations/de.json.js +0 -1
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +0 -1
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/admin/translations/dk.json.js +0 -1
- package/dist/admin/translations/dk.json.js.map +1 -1
- package/dist/admin/translations/dk.json.mjs +0 -1
- package/dist/admin/translations/dk.json.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +4 -2
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +4 -2
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +0 -1
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +0 -1
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/ko.json.js +0 -1
- package/dist/admin/translations/ko.json.js.map +1 -1
- package/dist/admin/translations/ko.json.mjs +0 -1
- package/dist/admin/translations/ko.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +0 -1
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +0 -1
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/translations/pt-BR.json.js +0 -1
- package/dist/admin/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/translations/pt-BR.json.mjs +0 -1
- package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/translations/sv.json.js +0 -1
- package/dist/admin/translations/sv.json.js.map +1 -1
- package/dist/admin/translations/sv.json.mjs +0 -1
- package/dist/admin/translations/sv.json.mjs.map +1 -1
- package/dist/admin/translations/tr.json.js +0 -1
- package/dist/admin/translations/tr.json.js.map +1 -1
- package/dist/admin/translations/tr.json.mjs +0 -1
- package/dist/admin/translations/tr.json.mjs.map +1 -1
- package/dist/admin/translations/zh.json.js +0 -1
- package/dist/admin/translations/zh.json.js.map +1 -1
- package/dist/admin/translations/zh.json.mjs +0 -1
- package/dist/admin/translations/zh.json.mjs.map +1 -1
- package/dist/admin/utils/findAttribute.js.map +1 -1
- package/dist/admin/utils/findAttribute.mjs.map +1 -1
- package/dist/admin/utils/formAPI.js +0 -1
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/formAPI.mjs +0 -1
- package/dist/admin/utils/formAPI.mjs.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/getRelationType.js.map +1 -1
- package/dist/admin/utils/getRelationType.mjs.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.js.map +1 -1
- package/dist/admin/utils/isAllowedContentTypesForRelations.mjs.map +1 -1
- package/dist/server/controllers/index.js +3 -1
- package/dist/server/controllers/index.js.map +1 -1
- package/dist/server/controllers/index.mjs +3 -1
- package/dist/server/controllers/index.mjs.map +1 -1
- package/dist/server/controllers/schema.js +55 -0
- package/dist/server/controllers/schema.js.map +1 -0
- package/dist/server/controllers/schema.mjs +53 -0
- package/dist/server/controllers/schema.mjs.map +1 -0
- package/dist/server/controllers/validation/common.js +2 -0
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/common.mjs +2 -1
- package/dist/server/controllers/validation/common.mjs.map +1 -1
- package/dist/server/controllers/validation/content-type.js.map +1 -1
- package/dist/server/controllers/validation/content-type.mjs.map +1 -1
- package/dist/server/controllers/validation/schema.js +612 -0
- package/dist/server/controllers/validation/schema.js.map +1 -0
- package/dist/server/controllers/validation/schema.mjs +610 -0
- package/dist/server/controllers/validation/schema.mjs.map +1 -0
- package/dist/server/routes/admin.js +51 -0
- package/dist/server/routes/admin.js.map +1 -1
- package/dist/server/routes/admin.mjs +51 -0
- package/dist/server/routes/admin.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js +12 -2
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.mjs +12 -2
- package/dist/server/services/schema-builder/component-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js +43 -28
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.mjs +43 -28
- package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
- package/dist/server/services/schema-builder/index.js +51 -49
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/index.mjs +51 -49
- package/dist/server/services/schema-builder/index.mjs.map +1 -1
- package/dist/server/services/schema.js +246 -0
- package/dist/server/services/schema.js.map +1 -0
- package/dist/server/services/schema.mjs +242 -0
- package/dist/server/services/schema.mjs.map +1 -0
- package/dist/server/src/controllers/index.d.ts +5 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/schema.d.ts +8 -0
- package/dist/server/src/controllers/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/common.d.ts +1 -0
- package/dist/server/src/controllers/validation/common.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-type.d.ts +3 -2
- package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/schema.d.ts +81514 -0
- package/dist/server/src/controllers/validation/schema.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +6 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/component-builder.d.ts +1 -0
- package/dist/server/src/services/schema-builder/component-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts +2 -3
- package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/index.d.ts +3 -0
- package/dist/server/src/services/schema-builder/index.d.ts.map +1 -1
- package/dist/server/src/services/schema.d.ts +2756 -0
- package/dist/server/src/services/schema.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/package.json +14 -9
- package/dist/admin/components/BoxWrapper.js +0 -44
- package/dist/admin/components/BoxWrapper.js.map +0 -1
- package/dist/admin/components/BoxWrapper.mjs +0 -42
- package/dist/admin/components/BoxWrapper.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js +0 -520
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs +0 -518
- package/dist/admin/components/DataManagerProvider/DataManagerProvider.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/reducer.js +0 -583
- package/dist/admin/components/DataManagerProvider/reducer.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/reducer.mjs +0 -579
- package/dist/admin/components/DataManagerProvider/reducer.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/selectors.js +0 -20
- package/dist/admin/components/DataManagerProvider/selectors.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/selectors.mjs +0 -17
- package/dist/admin/components/DataManagerProvider/selectors.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js +0 -126
- package/dist/admin/components/DataManagerProvider/utils/cleanData.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs +0 -120
- package/dist/admin/components/DataManagerProvider/utils/cleanData.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js +0 -9
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs +0 -7
- package/dist/admin/components/DataManagerProvider/utils/createDataObject.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js +0 -20
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs +0 -18
- package/dist/admin/components/DataManagerProvider/utils/createModifiedDataSchema.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js +0 -30
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs +0 -27
- package/dist/admin/components/DataManagerProvider/utils/formatSchemas.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js +0 -46
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs +0 -44
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsFromSchema.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveComponentsThatHaveComponents.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveNestedComponents.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/retrieveSpecificInfoFromComponents.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js +0 -37
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs +0 -35
- package/dist/admin/components/DataManagerProvider/utils/serverRestartWatcher.mjs.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js +0 -9
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.js.map +0 -1
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs +0 -7
- package/dist/admin/components/DataManagerProvider/utils/validateSchema.mjs.map +0 -1
- package/dist/admin/components/FormModal/category/createCategorySchema.js +0 -43
- package/dist/admin/components/FormModal/category/createCategorySchema.js.map +0 -1
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs +0 -22
- package/dist/admin/components/FormModal/category/createCategorySchema.mjs.map +0 -1
- package/dist/admin/components/FormModal/category/form.js +0 -34
- package/dist/admin/components/FormModal/category/form.js.map +0 -1
- package/dist/admin/components/FormModal/category/form.mjs +0 -32
- package/dist/admin/components/FormModal/category/form.mjs.map +0 -1
- package/dist/admin/components/FormModal/category/regex.js +0 -6
- package/dist/admin/components/FormModal/category/regex.js.map +0 -1
- package/dist/admin/components/FormModal/category/regex.mjs +0 -4
- package/dist/admin/components/FormModal/category/regex.mjs.map +0 -1
- package/dist/admin/components/FormModal/selectors.js +0 -20
- package/dist/admin/components/FormModal/selectors.js.map +0 -1
- package/dist/admin/components/FormModal/selectors.mjs +0 -17
- package/dist/admin/components/FormModal/selectors.mjs.map +0 -1
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.js.map +0 -1
- package/dist/admin/components/FormModalNavigationProvider/FormModalNavigationProvider.mjs.map +0 -1
- package/dist/admin/components/FormModalNavigationProvider/constants.js +0 -21
- package/dist/admin/components/FormModalNavigationProvider/constants.js.map +0 -1
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs +0 -19
- package/dist/admin/components/FormModalNavigationProvider/constants.mjs.map +0 -1
- package/dist/admin/components/ListRow.js +0 -164
- package/dist/admin/components/ListRow.js.map +0 -1
- package/dist/admin/components/ListRow.mjs +0 -161
- package/dist/admin/components/ListRow.mjs.map +0 -1
- package/dist/admin/components/NestedFooter.js.map +0 -1
- package/dist/admin/components/NestedFooter.mjs.map +0 -1
- package/dist/admin/components/Tr.js.map +0 -1
- package/dist/admin/components/Tr.mjs.map +0 -1
- package/dist/admin/components/UpperFirst.js +0 -11
- package/dist/admin/components/UpperFirst.js.map +0 -1
- package/dist/admin/components/UpperFirst.mjs +0 -9
- package/dist/admin/components/UpperFirst.mjs.map +0 -1
- package/dist/admin/contexts/DataManagerContext.js.map +0 -1
- package/dist/admin/contexts/DataManagerContext.mjs.map +0 -1
- package/dist/admin/contexts/FormModalNavigationContext.js.map +0 -1
- package/dist/admin/contexts/FormModalNavigationContext.mjs.map +0 -1
- package/dist/admin/hooks/useDataManager.js.map +0 -1
- package/dist/admin/hooks/useDataManager.mjs.map +0 -1
- package/dist/admin/hooks/useFormModalNavigation.js.map +0 -1
- package/dist/admin/hooks/useFormModalNavigation.mjs.map +0 -1
- package/dist/admin/src/components/DataManagerProvider/DataManagerProvider.d.ts +0 -6
- package/dist/admin/src/components/DataManagerProvider/reducer.d.ts +0 -103
- package/dist/admin/src/components/DataManagerProvider/selectors.d.ts +0 -17
- package/dist/admin/src/components/DataManagerProvider/utils/cleanData.d.ts +0 -23
- package/dist/admin/src/components/DataManagerProvider/utils/createDataObject.d.ts +0 -2
- package/dist/admin/src/components/DataManagerProvider/utils/createModifiedDataSchema.d.ts +0 -6
- package/dist/admin/src/components/DataManagerProvider/utils/formatSchemas.d.ts +0 -6
- package/dist/admin/src/components/DataManagerProvider/utils/retrieveComponentsFromSchema.d.ts +0 -4
- package/dist/admin/src/components/DataManagerProvider/utils/serverRestartWatcher.d.ts +0 -6
- package/dist/admin/src/components/DataManagerProvider/utils/validateSchema.d.ts +0 -1
- package/dist/admin/src/components/FormModal/category/createCategorySchema.d.ts +0 -5
- package/dist/admin/src/components/FormModal/category/form.d.ts +0 -20
- package/dist/admin/src/components/FormModal/category/regex.d.ts +0 -1
- package/dist/admin/src/components/FormModal/selectors.d.ts +0 -16
- package/dist/admin/src/components/FormModalNavigationProvider/FormModalNavigationProvider.d.ts +0 -22
- package/dist/admin/src/components/FormModalNavigationProvider/constants.d.ts +0 -17
- package/dist/admin/src/components/ListRow.d.ts +0 -27
- package/dist/admin/src/components/Tr.d.ts +0 -5
- package/dist/admin/src/components/UpperFirst.d.ts +0 -3
- package/dist/admin/src/contexts/DataManagerContext.d.ts +0 -41
- package/dist/admin/src/contexts/FormModalNavigationContext.d.ts +0 -40
- package/dist/admin/src/hooks/useDataManager.d.ts +0 -1
- package/dist/admin/src/hooks/useFormModalNavigation.d.ts +0 -1
- /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.js +0 -0
- /package/dist/admin/{contexts → components/DataManager}/DataManagerContext.mjs +0 -0
- /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.js +0 -0
- /package/dist/admin/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.mjs +0 -0
- /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.js +0 -0
- /package/dist/admin/{contexts → components/FormModalNavigation}/FormModalNavigationContext.mjs +0 -0
- /package/dist/admin/src/components/{DataManagerProvider → DataManager}/utils/retrieveSpecificInfoFromComponents.d.ts +0 -0
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var merge = require('lodash/merge');
|
|
4
|
+
var omit = require('lodash/omit');
|
|
5
|
+
var getRelationType = require('../../utils/getRelationType.js');
|
|
6
|
+
var makeUnique = require('../../utils/makeUnique.js');
|
|
7
|
+
var undoRedo = require('./undoRedo.js');
|
|
8
|
+
var formatSchemas = require('./utils/formatSchemas.js');
|
|
9
|
+
|
|
10
|
+
const initialState = {
|
|
11
|
+
components: {},
|
|
12
|
+
contentTypes: {},
|
|
13
|
+
initialComponents: {},
|
|
14
|
+
initialContentTypes: {},
|
|
15
|
+
reservedNames: {
|
|
16
|
+
models: [],
|
|
17
|
+
attributes: []
|
|
18
|
+
},
|
|
19
|
+
isLoading: true
|
|
20
|
+
};
|
|
21
|
+
const ONE_SIDE_RELATIONS = [
|
|
22
|
+
'oneWay',
|
|
23
|
+
'manyWay'
|
|
24
|
+
];
|
|
25
|
+
const getOppositeRelation = (originalRelation)=>{
|
|
26
|
+
if (originalRelation === 'manyToOne') {
|
|
27
|
+
return 'oneToMany';
|
|
28
|
+
}
|
|
29
|
+
if (originalRelation === 'oneToMany') {
|
|
30
|
+
return 'manyToOne';
|
|
31
|
+
}
|
|
32
|
+
return originalRelation;
|
|
33
|
+
};
|
|
34
|
+
const findAttributeIndex = (type, attributeToFind)=>{
|
|
35
|
+
return type.attributes.findIndex(({ name })=>name === attributeToFind);
|
|
36
|
+
};
|
|
37
|
+
const getType = (state, { forTarget, targetUid })=>{
|
|
38
|
+
return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];
|
|
39
|
+
};
|
|
40
|
+
// TODO: use initial state when chnaging back to the initial state without knowing
|
|
41
|
+
const setStatus = (type, status)=>{
|
|
42
|
+
switch(type.status){
|
|
43
|
+
case 'NEW':
|
|
44
|
+
case 'REMOVED':
|
|
45
|
+
{
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
default:
|
|
49
|
+
{
|
|
50
|
+
type.status = status;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const getNewStatus = (oldStatus, newStatus)=>{
|
|
55
|
+
if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {
|
|
56
|
+
return oldStatus;
|
|
57
|
+
}
|
|
58
|
+
return newStatus;
|
|
59
|
+
};
|
|
60
|
+
const setAttributeStatus = (attribute, status)=>{
|
|
61
|
+
attribute.status = getNewStatus(attribute.status, status);
|
|
62
|
+
};
|
|
63
|
+
const createAttribute = (properties)=>{
|
|
64
|
+
return {
|
|
65
|
+
...properties,
|
|
66
|
+
status: 'NEW'
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const setAttributeAt = (type, index, attribute)=>{
|
|
70
|
+
const previousAttribute = type.attributes[index];
|
|
71
|
+
const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');
|
|
72
|
+
type.attributes[index] = {
|
|
73
|
+
...attribute,
|
|
74
|
+
status: newStatus
|
|
75
|
+
};
|
|
76
|
+
setStatus(type, 'CHANGED');
|
|
77
|
+
};
|
|
78
|
+
const pushAttribute = (type, attribute)=>{
|
|
79
|
+
type.attributes.push(attribute);
|
|
80
|
+
setStatus(type, 'CHANGED');
|
|
81
|
+
};
|
|
82
|
+
const removeAttributeAt = (type, index)=>{
|
|
83
|
+
const attr = type.attributes[index];
|
|
84
|
+
setStatus(type, 'CHANGED');
|
|
85
|
+
if (attr.status === 'NEW') {
|
|
86
|
+
type.attributes.splice(index, 1);
|
|
87
|
+
} else {
|
|
88
|
+
setAttributeStatus(attr, 'REMOVED');
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
const replaceAttributeAt = (type, index, attribute)=>{
|
|
92
|
+
type.attributes[index] = attribute;
|
|
93
|
+
setStatus(type, 'CHANGED');
|
|
94
|
+
};
|
|
95
|
+
const removeAttributeByName = (type, name)=>{
|
|
96
|
+
const idx = type.attributes.findIndex((attr)=>attr.name === name);
|
|
97
|
+
const attr = type.attributes[idx];
|
|
98
|
+
setStatus(type, 'CHANGED');
|
|
99
|
+
if (attr.status === 'NEW') {
|
|
100
|
+
type.attributes.splice(idx, 1);
|
|
101
|
+
} else {
|
|
102
|
+
setAttributeStatus(attr, 'REMOVED');
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const updateType = (type, data)=>{
|
|
106
|
+
merge(type, data);
|
|
107
|
+
setStatus(type, 'CHANGED');
|
|
108
|
+
};
|
|
109
|
+
const slice = undoRedo.createUndoRedoSlice({
|
|
110
|
+
name: 'data-manager',
|
|
111
|
+
initialState,
|
|
112
|
+
reducers: {
|
|
113
|
+
init: (state, action)=>{
|
|
114
|
+
const { components, contentTypes, reservedNames } = action.payload;
|
|
115
|
+
state.components = components;
|
|
116
|
+
state.initialComponents = components;
|
|
117
|
+
state.initialContentTypes = contentTypes;
|
|
118
|
+
state.contentTypes = contentTypes;
|
|
119
|
+
state.reservedNames = reservedNames;
|
|
120
|
+
state.isLoading = false;
|
|
121
|
+
},
|
|
122
|
+
createComponentSchema: (state, action)=>{
|
|
123
|
+
const { uid, data, componentCategory } = action.payload;
|
|
124
|
+
const newSchema = {
|
|
125
|
+
uid: uid,
|
|
126
|
+
status: 'NEW',
|
|
127
|
+
category: componentCategory,
|
|
128
|
+
modelName: data.displayName,
|
|
129
|
+
globalId: data.displayName,
|
|
130
|
+
info: {
|
|
131
|
+
icon: data.icon,
|
|
132
|
+
displayName: data.displayName
|
|
133
|
+
},
|
|
134
|
+
attributes: [],
|
|
135
|
+
modelType: 'component'
|
|
136
|
+
};
|
|
137
|
+
state.components[uid] = newSchema;
|
|
138
|
+
},
|
|
139
|
+
createSchema: (state, action)=>{
|
|
140
|
+
const { uid, data } = action.payload;
|
|
141
|
+
const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } = data;
|
|
142
|
+
const newSchema = {
|
|
143
|
+
uid: uid,
|
|
144
|
+
status: 'NEW',
|
|
145
|
+
visible: true,
|
|
146
|
+
modelType: 'contentType',
|
|
147
|
+
restrictRelationsTo: null,
|
|
148
|
+
attributes: [],
|
|
149
|
+
kind,
|
|
150
|
+
modelName: displayName,
|
|
151
|
+
globalId: displayName,
|
|
152
|
+
options: {
|
|
153
|
+
draftAndPublish
|
|
154
|
+
},
|
|
155
|
+
info: {
|
|
156
|
+
displayName,
|
|
157
|
+
singularName,
|
|
158
|
+
pluralName
|
|
159
|
+
},
|
|
160
|
+
pluginOptions
|
|
161
|
+
};
|
|
162
|
+
state.contentTypes[uid] = newSchema;
|
|
163
|
+
},
|
|
164
|
+
addAttribute: (state, action)=>{
|
|
165
|
+
const { attributeToSet, forTarget, targetUid } = action.payload;
|
|
166
|
+
const type = getType(state, {
|
|
167
|
+
forTarget,
|
|
168
|
+
targetUid
|
|
169
|
+
});
|
|
170
|
+
const attribute = createAttribute(omit(attributeToSet, 'createComponent'));
|
|
171
|
+
if (attribute.type === 'relation') {
|
|
172
|
+
const target = attribute.target;
|
|
173
|
+
const targetAttribute = attribute.targetAttribute || null;
|
|
174
|
+
const relation = attribute.relation;
|
|
175
|
+
const relationType = getRelationType.getRelationType(relation, targetAttribute);
|
|
176
|
+
const isBidirectionalRelation = ![
|
|
177
|
+
'oneWay',
|
|
178
|
+
'manyWay'
|
|
179
|
+
].includes(relationType);
|
|
180
|
+
if (isBidirectionalRelation) {
|
|
181
|
+
const oppositeAttribute = createAttribute({
|
|
182
|
+
name: targetAttribute,
|
|
183
|
+
relation: getOppositeRelation(relationType),
|
|
184
|
+
target: type.uid,
|
|
185
|
+
targetAttribute: attribute.name,
|
|
186
|
+
type: 'relation',
|
|
187
|
+
private: attribute.private
|
|
188
|
+
});
|
|
189
|
+
const targetType = getType(state, {
|
|
190
|
+
forTarget,
|
|
191
|
+
targetUid: target
|
|
192
|
+
});
|
|
193
|
+
pushAttribute(targetType, oppositeAttribute);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
pushAttribute(type, attribute);
|
|
197
|
+
setStatus(type, 'CHANGED');
|
|
198
|
+
},
|
|
199
|
+
moveAttribute: (state, action)=>{
|
|
200
|
+
const { forTarget, targetUid, from, to } = action.payload;
|
|
201
|
+
const type = getType(state, {
|
|
202
|
+
forTarget,
|
|
203
|
+
targetUid
|
|
204
|
+
});
|
|
205
|
+
const attribute = type.attributes[from];
|
|
206
|
+
type.attributes.splice(from, 1);
|
|
207
|
+
type.attributes.splice(to, 0, attribute);
|
|
208
|
+
setStatus(type, 'CHANGED');
|
|
209
|
+
},
|
|
210
|
+
addCustomFieldAttribute: (state, action)=>{
|
|
211
|
+
const { attributeToSet, forTarget, targetUid } = action.payload;
|
|
212
|
+
const type = getType(state, {
|
|
213
|
+
forTarget,
|
|
214
|
+
targetUid
|
|
215
|
+
});
|
|
216
|
+
pushAttribute(type, createAttribute(attributeToSet));
|
|
217
|
+
},
|
|
218
|
+
addCreatedComponentToDynamicZone: (state, action)=>{
|
|
219
|
+
const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;
|
|
220
|
+
const type = getType(state, {
|
|
221
|
+
forTarget,
|
|
222
|
+
targetUid
|
|
223
|
+
});
|
|
224
|
+
const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);
|
|
225
|
+
const attr = type.attributes[dzAttributeIndex];
|
|
226
|
+
componentsToAdd.forEach((componentUid)=>{
|
|
227
|
+
attr.components.push(componentUid);
|
|
228
|
+
});
|
|
229
|
+
setAttributeStatus(attr, 'CHANGED');
|
|
230
|
+
setStatus(type, 'CHANGED');
|
|
231
|
+
},
|
|
232
|
+
changeDynamicZoneComponents: (state, action)=>{
|
|
233
|
+
const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;
|
|
234
|
+
const type = getType(state, {
|
|
235
|
+
forTarget,
|
|
236
|
+
targetUid
|
|
237
|
+
});
|
|
238
|
+
const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);
|
|
239
|
+
const attr = type.attributes[dzAttributeIndex];
|
|
240
|
+
const currentDZComponents = attr.components;
|
|
241
|
+
const updatedComponents = makeUnique.makeUnique([
|
|
242
|
+
...currentDZComponents,
|
|
243
|
+
...newComponents
|
|
244
|
+
]);
|
|
245
|
+
setStatus(type, 'CHANGED');
|
|
246
|
+
setAttributeStatus(attr, 'CHANGED');
|
|
247
|
+
attr.components = updatedComponents;
|
|
248
|
+
},
|
|
249
|
+
editAttribute: (state, action)=>{
|
|
250
|
+
const { name, attributeToSet, forTarget, targetUid } = action.payload;
|
|
251
|
+
const type = getType(state, {
|
|
252
|
+
forTarget,
|
|
253
|
+
targetUid
|
|
254
|
+
});
|
|
255
|
+
const initialAttributeIndex = findAttributeIndex(type, name);
|
|
256
|
+
if (initialAttributeIndex === -1) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const previousAttribute = type.attributes[initialAttributeIndex];
|
|
260
|
+
setAttributeAt(type, initialAttributeIndex, attributeToSet);
|
|
261
|
+
if (previousAttribute.type !== attributeToSet.type) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const previousTarget = getType(state, {
|
|
268
|
+
forTarget: 'contentType',
|
|
269
|
+
targetUid: previousAttribute.target
|
|
270
|
+
});
|
|
271
|
+
const newTarget = getType(state, {
|
|
272
|
+
forTarget: 'contentType',
|
|
273
|
+
targetUid: attributeToSet.target
|
|
274
|
+
});
|
|
275
|
+
const previousTargetAttributeIndex = findAttributeIndex(previousTarget, previousAttribute.targetAttribute ?? '');
|
|
276
|
+
// remove old targetAttribute
|
|
277
|
+
if (previousAttribute.targetAttribute) {
|
|
278
|
+
removeAttributeByName(previousTarget, previousAttribute.targetAttribute);
|
|
279
|
+
}
|
|
280
|
+
const newRelationType = getRelationType.getRelationType(attributeToSet.relation, attributeToSet.targetAttribute);
|
|
281
|
+
const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);
|
|
282
|
+
if (isBidirectionnal) {
|
|
283
|
+
const newTargetAttribute = {
|
|
284
|
+
name: attributeToSet.targetAttribute,
|
|
285
|
+
type: 'relation',
|
|
286
|
+
relation: getOppositeRelation(attributeToSet.relation),
|
|
287
|
+
targetAttribute: attributeToSet.name,
|
|
288
|
+
target: type.uid,
|
|
289
|
+
private: previousAttribute.private ?? attributeToSet.private,
|
|
290
|
+
pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,
|
|
291
|
+
status: 'CHANGED'
|
|
292
|
+
};
|
|
293
|
+
// create or recreate(at old index) targetAttribute
|
|
294
|
+
if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {
|
|
295
|
+
// re-create at previousIdx if possible
|
|
296
|
+
replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);
|
|
297
|
+
} else {
|
|
298
|
+
pushAttribute(newTarget, {
|
|
299
|
+
...newTargetAttribute,
|
|
300
|
+
status: 'NEW'
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
editCustomFieldAttribute: (state, action)=>{
|
|
306
|
+
const { forTarget, targetUid, name, attributeToSet } = action.payload;
|
|
307
|
+
const initialAttributeName = name;
|
|
308
|
+
const type = getType(state, {
|
|
309
|
+
forTarget,
|
|
310
|
+
targetUid
|
|
311
|
+
});
|
|
312
|
+
const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);
|
|
313
|
+
setAttributeAt(type, initialAttributeIndex, attributeToSet);
|
|
314
|
+
},
|
|
315
|
+
reloadPlugin: ()=>{
|
|
316
|
+
return initialState;
|
|
317
|
+
},
|
|
318
|
+
removeComponentFromDynamicZone: (state, action)=>{
|
|
319
|
+
const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;
|
|
320
|
+
const type = forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];
|
|
321
|
+
if (!type) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const dzAttributeIndex = findAttributeIndex(type, dzName);
|
|
325
|
+
const attr = type.attributes[dzAttributeIndex];
|
|
326
|
+
setStatus(type, 'CHANGED');
|
|
327
|
+
setAttributeStatus(attr, 'CHANGED');
|
|
328
|
+
attr.components.splice(componentToRemoveIndex, 1);
|
|
329
|
+
},
|
|
330
|
+
removeField: (state, action)=>{
|
|
331
|
+
const { forTarget, targetUid, attributeToRemoveName } = action.payload;
|
|
332
|
+
const type = getType(state, {
|
|
333
|
+
forTarget,
|
|
334
|
+
targetUid
|
|
335
|
+
});
|
|
336
|
+
const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);
|
|
337
|
+
const attribute = type.attributes[attributeToRemoveIndex];
|
|
338
|
+
if (attribute.type === 'relation') {
|
|
339
|
+
const { target, relation, targetAttribute: targetAttributeName } = attribute;
|
|
340
|
+
const relationType = getRelationType.getRelationType(relation, targetAttributeName);
|
|
341
|
+
const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType);
|
|
342
|
+
if (isBidirectionnal && targetAttributeName) {
|
|
343
|
+
const targetContentType = getType(state, {
|
|
344
|
+
forTarget,
|
|
345
|
+
targetUid: target
|
|
346
|
+
});
|
|
347
|
+
const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);
|
|
348
|
+
removeAttributeAt(targetContentType, targetAttributeIndex);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Find all uid fields that have the targetField set to the field we are removing
|
|
352
|
+
type.attributes.forEach((attribute)=>{
|
|
353
|
+
if (attribute.type === 'uid') {
|
|
354
|
+
if (attribute.targetField === attributeToRemoveName) {
|
|
355
|
+
delete attribute.targetField;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
removeAttributeAt(type, attributeToRemoveIndex);
|
|
360
|
+
},
|
|
361
|
+
// only edits a component in practice
|
|
362
|
+
updateComponentSchema: (state, action)=>{
|
|
363
|
+
const { data, uid } = action.payload;
|
|
364
|
+
const type = state.components[uid];
|
|
365
|
+
if (!type) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
updateType(type, {
|
|
369
|
+
info: {
|
|
370
|
+
displayName: data.displayName,
|
|
371
|
+
icon: data.icon
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
},
|
|
375
|
+
updateComponentUid: (state, action)=>{
|
|
376
|
+
const { newComponentUID, uid } = action.payload;
|
|
377
|
+
const type = state.components[uid];
|
|
378
|
+
if (!type || type.status !== 'NEW') {
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
if (newComponentUID !== uid) {
|
|
382
|
+
const newType = {
|
|
383
|
+
...type,
|
|
384
|
+
uid: newComponentUID
|
|
385
|
+
};
|
|
386
|
+
state.components[newComponentUID] = newType;
|
|
387
|
+
delete state.components[uid];
|
|
388
|
+
// update the uid in the content types
|
|
389
|
+
Object.keys(state.contentTypes).forEach((contentTypeUid)=>{
|
|
390
|
+
const contentType = state.contentTypes[contentTypeUid];
|
|
391
|
+
contentType.attributes.forEach((attribute)=>{
|
|
392
|
+
if (attribute.type === 'dynamiczone') {
|
|
393
|
+
const newComponents = attribute.components.map((component)=>{
|
|
394
|
+
if (component === uid) {
|
|
395
|
+
return newComponentUID;
|
|
396
|
+
}
|
|
397
|
+
return component;
|
|
398
|
+
});
|
|
399
|
+
attribute.components = newComponents;
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
contentType.attributes.forEach((attribute)=>{
|
|
403
|
+
if (attribute.type === 'component' && attribute.component === uid) {
|
|
404
|
+
attribute.component = newComponentUID;
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
// update the uid in the other components
|
|
409
|
+
Object.keys(state.components).forEach((componentUid)=>{
|
|
410
|
+
const component = state.components[componentUid];
|
|
411
|
+
component.attributes.forEach((attribute)=>{
|
|
412
|
+
if (attribute.type === 'component' && attribute.component === uid) {
|
|
413
|
+
attribute.component = newComponentUID;
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
updateSchema: (state, action)=>{
|
|
420
|
+
const { data, uid } = action.payload;
|
|
421
|
+
const { displayName, kind, draftAndPublish, pluginOptions } = data;
|
|
422
|
+
const type = state.contentTypes[uid];
|
|
423
|
+
if (!type) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
updateType(type, {
|
|
427
|
+
info: {
|
|
428
|
+
displayName
|
|
429
|
+
},
|
|
430
|
+
kind,
|
|
431
|
+
options: {
|
|
432
|
+
draftAndPublish
|
|
433
|
+
},
|
|
434
|
+
pluginOptions
|
|
435
|
+
});
|
|
436
|
+
},
|
|
437
|
+
deleteComponent: (state, action)=>{
|
|
438
|
+
const uid = action.payload;
|
|
439
|
+
// remove the compo from the components
|
|
440
|
+
if (state.components[uid].status === 'NEW') {
|
|
441
|
+
delete state.components[uid];
|
|
442
|
+
} else {
|
|
443
|
+
setStatus(state.components[uid], 'REMOVED');
|
|
444
|
+
}
|
|
445
|
+
// remove the compo from the content types
|
|
446
|
+
Object.keys(state.contentTypes).forEach((contentTypeUid)=>{
|
|
447
|
+
const contentType = state.contentTypes[contentTypeUid];
|
|
448
|
+
// remove from dynamic zones
|
|
449
|
+
contentType.attributes.forEach((attribute)=>{
|
|
450
|
+
if (attribute.type === 'dynamiczone') {
|
|
451
|
+
const newComponents = attribute.components.filter((component)=>component !== uid);
|
|
452
|
+
attribute.components = newComponents;
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
contentType.attributes.forEach((attribute)=>{
|
|
456
|
+
if (attribute.type === 'component' && attribute.component === uid) {
|
|
457
|
+
removeAttributeByName(contentType, attribute.name);
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
});
|
|
461
|
+
// remove the compo from other components
|
|
462
|
+
Object.keys(state.components).forEach((componentUid)=>{
|
|
463
|
+
const component = state.components[componentUid];
|
|
464
|
+
component.attributes.forEach((attribute)=>{
|
|
465
|
+
if (attribute.type === 'component' && attribute.component === uid) {
|
|
466
|
+
removeAttributeByName(component, attribute.name);
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
});
|
|
470
|
+
},
|
|
471
|
+
deleteContentType: (state, action)=>{
|
|
472
|
+
const uid = action.payload;
|
|
473
|
+
const type = state.contentTypes[uid];
|
|
474
|
+
// just drop new content types
|
|
475
|
+
if (type.status === 'NEW') {
|
|
476
|
+
delete state.contentTypes[uid];
|
|
477
|
+
} else {
|
|
478
|
+
setStatus(type, 'REMOVED');
|
|
479
|
+
}
|
|
480
|
+
// remove the content type from the components
|
|
481
|
+
Object.keys(state.components).forEach((componentUid)=>{
|
|
482
|
+
const component = state.components[componentUid];
|
|
483
|
+
component.attributes.forEach((attribute)=>{
|
|
484
|
+
if (attribute.type === 'relation' && attribute.target === uid) {
|
|
485
|
+
removeAttributeByName(component, attribute.name);
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
// remove the content type from the content types
|
|
490
|
+
Object.keys(state.contentTypes).forEach((contentTypeUid)=>{
|
|
491
|
+
const contentType = state.contentTypes[contentTypeUid];
|
|
492
|
+
contentType.attributes.forEach((attribute)=>{
|
|
493
|
+
if (attribute.type === 'relation' && attribute.target === uid) {
|
|
494
|
+
removeAttributeByName(contentType, attribute.name);
|
|
495
|
+
}
|
|
496
|
+
});
|
|
497
|
+
});
|
|
498
|
+
},
|
|
499
|
+
applyChange (state, reducerAction) {
|
|
500
|
+
const { action, schema } = reducerAction.payload;
|
|
501
|
+
switch(action){
|
|
502
|
+
case 'add':
|
|
503
|
+
{
|
|
504
|
+
// generate a uid ?
|
|
505
|
+
const uid = schema.uid;
|
|
506
|
+
if (schema.modelType === 'component') {
|
|
507
|
+
state.components[uid] = {
|
|
508
|
+
...formatSchemas.formatSchema(schema),
|
|
509
|
+
status: 'NEW'
|
|
510
|
+
};
|
|
511
|
+
} else {
|
|
512
|
+
state.contentTypes[uid] = {
|
|
513
|
+
...formatSchemas.formatSchema(schema),
|
|
514
|
+
status: 'NEW'
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}, {
|
|
522
|
+
limit: 50,
|
|
523
|
+
excludeActionsFromHistory: [
|
|
524
|
+
'reloadPlugin',
|
|
525
|
+
'init'
|
|
526
|
+
],
|
|
527
|
+
stateSelector: (state)=>{
|
|
528
|
+
if (!state) {
|
|
529
|
+
return {};
|
|
530
|
+
}
|
|
531
|
+
return {
|
|
532
|
+
components: state.components,
|
|
533
|
+
contentTypes: state.contentTypes
|
|
534
|
+
};
|
|
535
|
+
},
|
|
536
|
+
discard: (state)=>{
|
|
537
|
+
state.components = state.initialComponents;
|
|
538
|
+
state.contentTypes = state.initialContentTypes;
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
const { reducer, actions } = slice;
|
|
542
|
+
|
|
543
|
+
exports.actions = actions;
|
|
544
|
+
exports.initialState = initialState;
|
|
545
|
+
exports.reducer = reducer;
|
|
546
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../../admin/src/components/DataManager/reducer.ts"],"sourcesContent":["import { PayloadAction } from '@reduxjs/toolkit';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\nimport { getRelationType } from '../../utils/getRelationType';\nimport { makeUnique } from '../../utils/makeUnique';\n\nimport { createUndoRedoSlice } from './undoRedo';\nimport { formatSchema } from './utils/formatSchemas';\n\nimport type {\n Components,\n ContentTypes,\n ContentType,\n Component,\n Status,\n AnyAttribute,\n} from '../../types';\nimport type { Internal, Schema, Struct, UID } from '@strapi/types';\n\nexport interface DataManagerStateType {\n components: Components;\n initialComponents: Components;\n contentTypes: ContentTypes;\n initialContentTypes: ContentTypes;\n reservedNames: {\n models: string[];\n attributes: string[];\n };\n isLoading: boolean;\n [key: string]: any;\n}\n\nconst initialState: DataManagerStateType = {\n components: {},\n contentTypes: {},\n initialComponents: {},\n initialContentTypes: {},\n reservedNames: {\n models: [],\n attributes: [],\n },\n isLoading: true,\n};\n\nconst ONE_SIDE_RELATIONS = ['oneWay', 'manyWay'];\n\nconst getOppositeRelation = (originalRelation?: Schema.Attribute.RelationKind.Any) => {\n if (originalRelation === 'manyToOne') {\n return 'oneToMany';\n }\n\n if (originalRelation === 'oneToMany') {\n return 'manyToOne';\n }\n\n return originalRelation;\n};\n\nconst findAttributeIndex = (type: any, attributeToFind?: string) => {\n return type.attributes.findIndex(({ name }: { name: string }) => name === attributeToFind);\n};\n\ntype InitPayload = {\n components: Record<string, Component>;\n contentTypes: Record<string, ContentType>;\n reservedNames: DataManagerStateType['reservedNames'];\n};\n\ntype AddAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype AddCreateComponentToDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dynamicZoneTarget: string;\n componentsToAdd: Internal.UID.Component[];\n};\n\ntype AddCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype ChangeDynamicZoneComponentsPayload = {\n dynamicZoneTarget: string;\n newComponents: Internal.UID.Component[];\n forTarget: Struct.ModelType;\n targetUid: string;\n};\n\ntype CreateComponentSchemaPayload = {\n uid: string;\n data: {\n icon: string;\n displayName: string;\n };\n componentCategory: string;\n};\n\ntype CreateSchemaPayload = {\n uid: string;\n data: {\n displayName: string;\n singularName: string;\n pluralName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n};\n\ntype EditAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype EditCustomFieldAttributePayload = {\n attributeToSet: Record<string, any>;\n forTarget: Struct.ModelType;\n targetUid: string;\n name: string;\n};\n\ntype RemoveComponentFromDynamicZonePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n dzName: string;\n componentToRemoveIndex: number;\n};\n\ntype RemoveFieldPayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n attributeToRemoveName: string;\n};\n\ntype UpdateComponentSchemaPayload = {\n data: {\n icon: string;\n displayName: string;\n };\n uid: Internal.UID.Component;\n};\n\ntype UpdateComponentUIDPayload = {\n uid: Internal.UID.Component;\n newComponentUID: Internal.UID.Component;\n};\n\ntype UpdateSchemaPayload = {\n data: {\n displayName: string;\n kind: Struct.ContentTypeKind;\n draftAndPublish: boolean;\n pluginOptions: Record<string, any>;\n };\n uid: string;\n};\n\ntype MoveAttributePayload = {\n forTarget: Struct.ModelType;\n targetUid: string;\n from: number;\n to: number;\n};\n\nconst getType = (\n state: DataManagerStateType,\n {\n forTarget,\n targetUid,\n }: {\n forTarget: Struct.ModelType;\n targetUid: string;\n }\n) => {\n return forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n};\n\n// TODO: use initial state when chnaging back to the initial state without knowing\nconst setStatus = (type: ContentType | Component, status: Status) => {\n switch (type.status) {\n case 'NEW':\n case 'REMOVED': {\n break;\n }\n default: {\n type.status = status;\n }\n }\n};\n\nconst getNewStatus = (oldStatus: Status | undefined, newStatus: Status) => {\n if (oldStatus === 'NEW' || oldStatus === 'REMOVED') {\n return oldStatus;\n }\n\n return newStatus;\n};\n\nconst setAttributeStatus = (attribute: Record<string, any>, status: Status) => {\n attribute.status = getNewStatus(attribute.status, status);\n};\n\nconst createAttribute = (properties: Record<string, any>): AnyAttribute => {\n return {\n ...properties,\n status: 'NEW',\n } as AnyAttribute;\n};\n\nconst setAttributeAt = (type: ContentType | Component, index: number, attribute: AnyAttribute) => {\n const previousAttribute = type.attributes[index];\n\n const newStatus = getNewStatus(previousAttribute.status, 'CHANGED');\n\n type.attributes[index] = {\n ...attribute,\n status: newStatus,\n };\n\n setStatus(type, 'CHANGED');\n};\n\nconst pushAttribute = (type: ContentType | Component, attribute: AnyAttribute) => {\n type.attributes.push(attribute);\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeAt = (type: ContentType | Component, index: number) => {\n const attr = type.attributes[index];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(index, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst replaceAttributeAt = (\n type: ContentType | Component,\n index: number,\n attribute: AnyAttribute\n) => {\n type.attributes[index] = attribute;\n setStatus(type, 'CHANGED');\n};\n\nconst removeAttributeByName = (type: ContentType | Component, name: string) => {\n const idx = type.attributes.findIndex((attr) => attr.name === name);\n\n const attr = type.attributes[idx];\n\n setStatus(type, 'CHANGED');\n\n if (attr.status === 'NEW') {\n type.attributes.splice(idx, 1);\n } else {\n setAttributeStatus(attr, 'REMOVED');\n }\n};\n\nconst updateType = (type: ContentType | Component, data: Record<string, any>) => {\n merge(type, data);\n setStatus(type, 'CHANGED');\n};\n\nconst slice = createUndoRedoSlice(\n {\n name: 'data-manager',\n initialState,\n reducers: {\n init: (state, action: PayloadAction<InitPayload>) => {\n const { components, contentTypes, reservedNames } = action.payload;\n\n state.components = components;\n state.initialComponents = components;\n state.initialContentTypes = contentTypes;\n state.contentTypes = contentTypes;\n state.reservedNames = reservedNames;\n state.isLoading = false;\n },\n createComponentSchema: (state, action: PayloadAction<CreateComponentSchemaPayload>) => {\n const { uid, data, componentCategory } = action.payload;\n\n const newSchema: Component = {\n uid: uid as Internal.UID.Component,\n status: 'NEW',\n category: componentCategory,\n modelName: data.displayName,\n globalId: data.displayName,\n info: {\n icon: data.icon,\n displayName: data.displayName,\n },\n attributes: [],\n modelType: 'component',\n };\n\n state.components[uid as string] = newSchema;\n },\n createSchema: (state, action: PayloadAction<CreateSchemaPayload>) => {\n const { uid, data } = action.payload;\n\n const { displayName, singularName, pluralName, kind, draftAndPublish, pluginOptions } =\n data;\n\n const newSchema: ContentType = {\n uid: uid as Internal.UID.ContentType,\n status: 'NEW',\n visible: true,\n modelType: 'contentType',\n restrictRelationsTo: null,\n attributes: [],\n kind,\n modelName: displayName,\n globalId: displayName,\n options: {\n draftAndPublish,\n },\n info: {\n displayName,\n singularName,\n pluralName,\n },\n pluginOptions,\n };\n\n state.contentTypes[uid] = newSchema;\n },\n addAttribute: (state, action: PayloadAction<AddAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = createAttribute(omit(attributeToSet, 'createComponent'));\n\n if (attribute.type === 'relation') {\n const target = attribute.target;\n const targetAttribute = attribute.targetAttribute || null;\n const relation = attribute.relation;\n const relationType = getRelationType(relation, targetAttribute);\n\n const isBidirectionalRelation = !['oneWay', 'manyWay'].includes(relationType);\n\n if (isBidirectionalRelation) {\n const oppositeAttribute = createAttribute({\n name: targetAttribute,\n relation: getOppositeRelation(relationType),\n target: type.uid,\n targetAttribute: attribute.name,\n type: 'relation',\n private: attribute.private,\n });\n\n const targetType = getType(state, { forTarget, targetUid: target });\n pushAttribute(targetType, oppositeAttribute);\n }\n }\n\n pushAttribute(type, attribute);\n setStatus(type, 'CHANGED');\n },\n moveAttribute: (state, action: PayloadAction<MoveAttributePayload>) => {\n const { forTarget, targetUid, from, to } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attribute = type.attributes[from];\n type.attributes.splice(from, 1);\n type.attributes.splice(to, 0, attribute);\n setStatus(type, 'CHANGED');\n },\n addCustomFieldAttribute: (state, action: PayloadAction<AddCustomFieldAttributePayload>) => {\n const { attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n pushAttribute(type, createAttribute(attributeToSet));\n },\n addCreatedComponentToDynamicZone: (\n state,\n action: PayloadAction<AddCreateComponentToDynamicZonePayload>\n ) => {\n const { dynamicZoneTarget, componentsToAdd, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n componentsToAdd.forEach((componentUid: Internal.UID.Component) => {\n attr.components.push(componentUid);\n });\n\n setAttributeStatus(attr, 'CHANGED');\n setStatus(type, 'CHANGED');\n },\n changeDynamicZoneComponents: (\n state,\n action: PayloadAction<ChangeDynamicZoneComponentsPayload>\n ) => {\n const { dynamicZoneTarget, newComponents, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const dzAttributeIndex = findAttributeIndex(type, dynamicZoneTarget);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n const currentDZComponents = attr.components;\n\n const updatedComponents = makeUnique([...currentDZComponents, ...newComponents]);\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components = updatedComponents;\n },\n editAttribute: (state, action: PayloadAction<EditAttributePayload>) => {\n const { name, attributeToSet, forTarget, targetUid } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, name);\n\n if (initialAttributeIndex === -1) {\n return;\n }\n\n const previousAttribute = type.attributes[initialAttributeIndex];\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n\n if (previousAttribute.type !== attributeToSet.type) {\n return;\n }\n\n if (previousAttribute.type !== 'relation' || attributeToSet.type !== 'relation') {\n return;\n }\n\n const previousTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: previousAttribute.target,\n });\n const newTarget = getType(state, {\n forTarget: 'contentType',\n targetUid: attributeToSet.target,\n });\n\n const previousTargetAttributeIndex = findAttributeIndex(\n previousTarget,\n previousAttribute.targetAttribute ?? ''\n );\n\n // remove old targetAttribute\n if (previousAttribute.targetAttribute) {\n removeAttributeByName(previousTarget, previousAttribute.targetAttribute);\n }\n\n const newRelationType = getRelationType(\n attributeToSet.relation,\n attributeToSet.targetAttribute\n );\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(newRelationType);\n\n if (isBidirectionnal) {\n const newTargetAttribute = {\n name: attributeToSet.targetAttribute,\n type: 'relation',\n relation: getOppositeRelation(attributeToSet.relation),\n targetAttribute: attributeToSet.name,\n target: type.uid,\n private: previousAttribute.private ?? attributeToSet.private,\n pluginOptions: previousAttribute.pluginOptions ?? attributeToSet.pluginOptions,\n status: 'CHANGED',\n } as AnyAttribute;\n\n // create or recreate(at old index) targetAttribute\n if (previousTargetAttributeIndex !== -1 && previousTarget.uid === newTarget.uid) {\n // re-create at previousIdx if possible\n replaceAttributeAt(newTarget, previousTargetAttributeIndex, newTargetAttribute);\n } else {\n pushAttribute(newTarget, {\n ...newTargetAttribute,\n status: 'NEW',\n });\n }\n }\n },\n editCustomFieldAttribute: (state, action: PayloadAction<EditCustomFieldAttributePayload>) => {\n const { forTarget, targetUid, name, attributeToSet } = action.payload;\n\n const initialAttributeName = name;\n const type = getType(state, { forTarget, targetUid });\n\n const initialAttributeIndex = findAttributeIndex(type, initialAttributeName);\n\n setAttributeAt(type, initialAttributeIndex, attributeToSet as AnyAttribute);\n },\n reloadPlugin: () => {\n return initialState;\n },\n removeComponentFromDynamicZone: (\n state,\n action: PayloadAction<RemoveComponentFromDynamicZonePayload>\n ) => {\n const { dzName, componentToRemoveIndex, forTarget, targetUid } = action.payload;\n\n const type =\n forTarget === 'contentType' ? state.contentTypes[targetUid] : state.components[targetUid];\n\n if (!type) {\n return;\n }\n\n const dzAttributeIndex = findAttributeIndex(type, dzName);\n const attr = type.attributes[dzAttributeIndex] as Schema.Attribute.DynamicZone;\n\n setStatus(type, 'CHANGED');\n setAttributeStatus(attr, 'CHANGED');\n attr.components.splice(componentToRemoveIndex, 1);\n },\n removeField: (state, action: PayloadAction<RemoveFieldPayload>) => {\n const { forTarget, targetUid, attributeToRemoveName } = action.payload;\n\n const type = getType(state, { forTarget, targetUid });\n\n const attributeToRemoveIndex = findAttributeIndex(type, attributeToRemoveName);\n const attribute = type.attributes[attributeToRemoveIndex];\n\n if (attribute.type === 'relation') {\n const { target, relation, targetAttribute: targetAttributeName } = attribute;\n const relationType = getRelationType(relation, targetAttributeName);\n\n const isBidirectionnal = !ONE_SIDE_RELATIONS.includes(relationType!);\n\n if (isBidirectionnal && targetAttributeName) {\n const targetContentType = getType(state, { forTarget, targetUid: target });\n const targetAttributeIndex = findAttributeIndex(targetContentType, targetAttributeName);\n\n removeAttributeAt(targetContentType, targetAttributeIndex);\n }\n }\n\n // Find all uid fields that have the targetField set to the field we are removing\n type.attributes.forEach((attribute) => {\n if (attribute.type === 'uid') {\n if (attribute.targetField === attributeToRemoveName) {\n delete attribute.targetField;\n }\n }\n });\n\n removeAttributeAt(type, attributeToRemoveIndex);\n },\n // only edits a component in practice\n updateComponentSchema: (state, action: PayloadAction<UpdateComponentSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName: data.displayName,\n icon: data.icon,\n },\n });\n },\n updateComponentUid: (state, action: PayloadAction<UpdateComponentUIDPayload>) => {\n const { newComponentUID, uid } = action.payload;\n\n const type = state.components[uid];\n if (!type || type.status !== 'NEW') {\n return;\n }\n\n if (newComponentUID !== uid) {\n const newType = { ...type, uid: newComponentUID };\n state.components[newComponentUID] = newType;\n delete state.components[uid];\n\n // update the uid in the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.map((component: UID.Component) => {\n if (component === uid) {\n return newComponentUID;\n }\n\n return component;\n });\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n\n // update the uid in the other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n attribute.component = newComponentUID;\n }\n });\n });\n }\n },\n updateSchema: (state, action: PayloadAction<UpdateSchemaPayload>) => {\n const { data, uid } = action.payload;\n\n const { displayName, kind, draftAndPublish, pluginOptions } = data;\n\n const type = state.contentTypes[uid];\n if (!type) {\n return;\n }\n\n updateType(type, {\n info: {\n displayName,\n },\n kind,\n options: {\n draftAndPublish,\n },\n pluginOptions,\n });\n },\n deleteComponent: (state, action: PayloadAction<Internal.UID.Component>) => {\n const uid = action.payload;\n\n // remove the compo from the components\n if (state.components[uid].status === 'NEW') {\n delete state.components[uid];\n } else {\n setStatus(state.components[uid], 'REMOVED');\n }\n\n // remove the compo from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n // remove from dynamic zones\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'dynamiczone') {\n const newComponents = attribute.components.filter(\n (component: unknown) => component !== uid\n );\n\n attribute.components = newComponents;\n }\n });\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n\n // remove the compo from other components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'component' && attribute.component === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n },\n deleteContentType: (state, action: PayloadAction<Internal.UID.ContentType>) => {\n const uid = action.payload;\n const type = state.contentTypes[uid];\n\n // just drop new content types\n if (type.status === 'NEW') {\n delete state.contentTypes[uid];\n } else {\n setStatus(type, 'REMOVED');\n }\n\n // remove the content type from the components\n Object.keys(state.components).forEach((componentUid) => {\n const component = state.components[componentUid];\n\n component.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(component, attribute.name);\n }\n });\n });\n\n // remove the content type from the content types\n Object.keys(state.contentTypes).forEach((contentTypeUid) => {\n const contentType = state.contentTypes[contentTypeUid];\n\n contentType.attributes.forEach((attribute) => {\n if (attribute.type === 'relation' && attribute.target === uid) {\n removeAttributeByName(contentType, attribute.name);\n }\n });\n });\n },\n\n applyChange(\n state,\n reducerAction: PayloadAction<{\n action: 'add' | 'update' | 'delete';\n schema: ContentType | Component;\n }>\n ) {\n const { action, schema } = reducerAction.payload;\n\n switch (action) {\n case 'add': {\n // generate a uid ?\n const uid = schema.uid;\n\n if (schema.modelType === 'component') {\n state.components[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n } else {\n state.contentTypes[uid] = {\n ...formatSchema(schema),\n status: 'NEW',\n };\n }\n }\n }\n },\n },\n },\n {\n limit: 50,\n excludeActionsFromHistory: ['reloadPlugin', 'init'],\n stateSelector: (state) => {\n if (!state) {\n return {};\n }\n\n return {\n components: state.components,\n contentTypes: state.contentTypes,\n };\n },\n discard: (state) => {\n state.components = state.initialComponents;\n state.contentTypes = state.initialContentTypes;\n },\n }\n);\n\nexport type State = ReturnType<typeof slice.reducer>;\nexport const { reducer, actions } = slice;\nexport { initialState };\n"],"names":["initialState","components","contentTypes","initialComponents","initialContentTypes","reservedNames","models","attributes","isLoading","ONE_SIDE_RELATIONS","getOppositeRelation","originalRelation","findAttributeIndex","type","attributeToFind","findIndex","name","getType","state","forTarget","targetUid","setStatus","status","getNewStatus","oldStatus","newStatus","setAttributeStatus","attribute","createAttribute","properties","setAttributeAt","index","previousAttribute","pushAttribute","push","removeAttributeAt","attr","splice","replaceAttributeAt","removeAttributeByName","idx","updateType","data","merge","slice","createUndoRedoSlice","reducers","init","action","payload","createComponentSchema","uid","componentCategory","newSchema","category","modelName","displayName","globalId","info","icon","modelType","createSchema","singularName","pluralName","kind","draftAndPublish","pluginOptions","visible","restrictRelationsTo","options","addAttribute","attributeToSet","omit","target","targetAttribute","relation","relationType","getRelationType","isBidirectionalRelation","includes","oppositeAttribute","private","targetType","moveAttribute","from","to","addCustomFieldAttribute","addCreatedComponentToDynamicZone","dynamicZoneTarget","componentsToAdd","dzAttributeIndex","forEach","componentUid","changeDynamicZoneComponents","newComponents","currentDZComponents","updatedComponents","makeUnique","editAttribute","initialAttributeIndex","previousTarget","newTarget","previousTargetAttributeIndex","newRelationType","isBidirectionnal","newTargetAttribute","editCustomFieldAttribute","initialAttributeName","reloadPlugin","removeComponentFromDynamicZone","dzName","componentToRemoveIndex","removeField","attributeToRemoveName","attributeToRemoveIndex","targetAttributeName","targetContentType","targetAttributeIndex","targetField","updateComponentSchema","updateComponentUid","newComponentUID","newType","Object","keys","contentTypeUid","contentType","map","component","updateSchema","deleteComponent","filter","deleteContentType","applyChange","reducerAction","schema","formatSchema","limit","excludeActionsFromHistory","stateSelector","discard","reducer","actions"],"mappings":"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"}
|