@webiny/app-headless-cms 0.0.0-unstable.bca7b3e350 → 0.0.0-unstable.c59b9cc5b9
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/HeadlessCMS.js +8 -0
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntryForm/useRenderPlugins.d.ts +1 -2
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js +1 -1
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
- package/admin/components/ContentModelEditor/Editor.d.ts +4 -1
- package/admin/components/Dialog.d.ts +5 -1
- package/admin/components/Dialog.js +1 -1
- package/admin/components/Dialog.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/Field.js +230 -36
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/Styled.d.ts +9 -3
- package/admin/components/FieldEditor/Styled.js +1 -1
- package/admin/components/FieldEditor/Styled.js.map +1 -1
- package/admin/components/IconPicker.js +16 -12
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +1 -1
- package/admin/components/ModelFieldProvider/useModelField.d.ts +1 -1
- package/admin/graphql/contentEntries.js +23 -26
- package/admin/graphql/contentEntries.js.map +1 -1
- package/admin/graphql/contentModels.js +1 -1
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/graphql/createFieldsList.js +7 -1
- package/admin/graphql/createFieldsList.js.map +1 -1
- package/admin/hooks/index.d.ts +2 -0
- package/admin/hooks/index.js +25 -1
- package/admin/hooks/index.js.map +1 -1
- package/admin/hooks/useContentModels.d.ts +14 -0
- package/admin/hooks/useContentModels.js +40 -0
- package/admin/hooks/useContentModels.js.map +1 -0
- package/admin/hooks/usePermission.d.ts +2 -2
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +1 -2
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Divider.d.ts +5 -2
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.d.ts +8 -2
- package/admin/plugins/editor/defaultBar/Name/NameStyled.d.ts +13 -4
- package/admin/plugins/editor/formSettings/components/GeneralSettings.d.ts +2 -2
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js +22 -0
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +3 -3
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +4 -4
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +4 -4
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/longText/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/number/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/StyledComponents.d.ts +9 -3
- package/admin/plugins/fieldRenderers/object/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +277 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +181 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js +62 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.d.ts +27 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js +153 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.d.ts +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.js +37 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js +142 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js +118 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.d.ts +11 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js +183 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Search.d.ts +7 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js +60 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/add-circle.svg +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/down-arrow.svg +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/link.svg +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/assets/search.svg +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.d.ts +19 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.js +35 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.js +90 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/assets/close.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js +64 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js +26 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.d.ts +6 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js +31 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js +65 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.d.ts +6 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js +25 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js +30 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.d.ts +7 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.js +24 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.d.ts +7 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.js +24 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js +44 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js +82 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.d.ts +7 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js +32 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.d.ts +6 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.js +24 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.d.ts +7 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js +22 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-down.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/move-up.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/remove.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/selected.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-draft.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-published.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/status-unpublished.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/assets/view.svg +3 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.d.ts +18 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js +84 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js +55 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js +98 -0
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js +46 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js +45 -0
- package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.d.ts +44 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +17 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.d.ts +15 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js +187 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.d.ts +12 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js +214 -0
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -0
- package/admin/plugins/fieldRenderers/ref/advanced/index.js +12 -0
- package/admin/plugins/fieldRenderers/ref/advanced/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +3 -3
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.d.ts +11 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/index.js +4 -1
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.d.ts +21 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.js +85 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +50 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.d.ts +9 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js +39 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.d.ts +8 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js +31 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.d.ts +11 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js +98 -0
- package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.d.ts +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.js +12 -0
- package/admin/plugins/fieldRenderers/ref/simple/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js +40 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js +40 -0
- package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/richText/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/text/index.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +3 -3
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
- package/admin/plugins/fields/dynamicZone.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone.js +3 -3
- package/admin/plugins/fields/dynamicZone.js.map +1 -1
- package/admin/plugins/fields/object.js +3 -0
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref/graphql.d.ts +8 -0
- package/admin/plugins/fields/ref/graphql.js +12 -0
- package/admin/plugins/fields/ref/graphql.js.map +1 -0
- package/admin/plugins/fields/ref/renderInfo.d.ts +9 -0
- package/admin/plugins/fields/ref/renderInfo.js +116 -0
- package/admin/plugins/fields/ref/renderInfo.js.map +1 -0
- package/admin/plugins/fields/ref.js +3 -1
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/index.d.ts +1 -1
- package/admin/plugins/install.js +3 -39
- package/admin/plugins/install.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/StyledComponents.d.ts +5 -2
- package/admin/plugins/permissionRenderer/components/useCmsData.d.ts +1 -0
- package/admin/plugins/permissionRenderer/components/useCmsData.js +1 -1
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
- package/admin/plugins/routes.js +2 -1
- package/admin/plugins/routes.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +8 -57
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js +65 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -0
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +4 -4
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +2 -3
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +4 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +2 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +36 -39
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
- package/admin/views/contentEntries/hooks/index.d.ts +3 -0
- package/admin/views/contentEntries/hooks/index.js +38 -0
- package/admin/views/contentEntries/hooks/index.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +4 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.d.ts +5 -6
- package/admin/views/contentModels/CloneContentModelDialog.js +78 -53
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModels.js +2 -3
- package/admin/views/contentModels/ContentModels.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +49 -22
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +85 -101
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/helpers/apiNameValidator.d.ts +8 -0
- package/admin/views/contentModels/helpers/apiNameValidator.js +116 -0
- package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -0
- package/admin/views/contentModels/helpers/nameValidator.d.ts +6 -0
- package/admin/views/contentModels/helpers/nameValidator.js +63 -0
- package/admin/views/contentModels/helpers/nameValidator.js.map +1 -0
- package/admin/viewsGraphql.js +5 -2
- package/admin/viewsGraphql.js.map +1 -1
- package/allPlugins.d.ts +2 -2
- package/package.json +32 -33
- package/types/index.d.ts +40 -18
- package/types/index.js.map +1 -1
- package/types/model.d.ts +10 -5
- package/types/model.js.map +1 -1
- package/types/shared.d.ts +1 -1
- package/types/shared.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +0 -51
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +0 -54
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +0 -18
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +0 -14
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +0 -16
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +0 -14
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +0 -108
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/types.d.ts +0 -47
- package/admin/plugins/upgrades/5.19.0/types.js +0 -5
- package/admin/plugins/upgrades/5.19.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/locales.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/locales.js +0 -48
- package/admin/plugins/upgrades/5.33.0/locales.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/types.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/types.js +0 -5
- package/admin/plugins/upgrades/5.33.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/upgrade.d.ts +0 -8
- package/admin/plugins/upgrades/5.33.0/upgrade.js +0 -59
- package/admin/plugins/upgrades/5.33.0/upgrade.js.map +0 -1
- package/admin/plugins/upgrades/v5.0.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.0.0.js +0 -82
- package/admin/plugins/upgrades/v5.0.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.19.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.19.0.js +0 -538
- package/admin/plugins/upgrades/v5.19.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.33.0.d.ts +0 -6
- package/admin/plugins/upgrades/v5.33.0.js +0 -162
- package/admin/plugins/upgrades/v5.33.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.5.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.5.0.js +0 -82
- package/admin/plugins/upgrades/v5.5.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.8.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.8.0.js +0 -82
- package/admin/plugins/upgrades/v5.8.0.js.map +0 -1
- package/admin/views/contentEntries/experiment/Property.d.ts +0 -34
- package/admin/views/contentEntries/experiment/Property.js +0 -200
- package/admin/views/contentEntries/experiment/Property.js.map +0 -1
package/HeadlessCMS.js
CHANGED
|
@@ -27,6 +27,12 @@ var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloC
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* If there is a problem with some state being reset, it's probably because of this plugin.
|
|
32
|
+
* Check that __typename from the API and the __typename in the state are the same.
|
|
33
|
+
* If not, add it into the attachTypeName array.
|
|
34
|
+
*/
|
|
35
|
+
var attachTypeName = ["CmsContentEntry", "RefField"];
|
|
30
36
|
var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
|
|
31
37
|
var createApolloClient = _ref2.createApolloClient;
|
|
32
38
|
_plugins.plugins.register(_apiInformation.default);
|
|
@@ -34,6 +40,8 @@ var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
|
|
|
34
40
|
_plugins.plugins.register(new _app.ApolloCacheObjectIdPlugin(function (obj) {
|
|
35
41
|
if (obj.__typename === "CmsContentModelField") {
|
|
36
42
|
return null;
|
|
43
|
+
} else if (obj.__typename && attachTypeName.includes(obj.__typename)) {
|
|
44
|
+
return "".concat(obj.__typename, "_").concat(obj.id);
|
|
37
45
|
}
|
|
38
46
|
return undefined;
|
|
39
47
|
}));
|
package/HeadlessCMS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","plugins","register","apiInformation","allPlugins","ApolloCacheObjectIdPlugin","obj","__typename","undefined","HeadlessCMS","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\nimport { DefaultOnEntryDelete } from \"./admin/plugins/entry/DefaultOnEntryDelete\";\nimport { DefaultOnEntryPublish } from \"~/admin/plugins/entry/DefaultOnEntryPublish\";\nimport allPlugins from \"./allPlugins\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n <DefaultOnEntryDelete />\n <DefaultOnEntryPublish />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,yBAAyB,GAC3B,SADEA,yBAAyB,CAC1BC,kBAAsC;EAAA,OACvC,UAACC,SAAmB,EAAe;IAC/B,OAAO,SAASC,mBAAmB,OAAe;MAAA,IAAZC,QAAQ,QAARA,QAAQ;MAC1C,oBACI,6BAAC,gBAAW;QAAC,kBAAkB,EAAEH;MAAmB,gBAChD,6BAAC,SAAS,QAAEG,QAAQ,CAAa,CACvB;IAEtB,CAAC;EACL,CAAC;AAAA;AAaL,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,QAAiD;EAAA,
|
|
1
|
+
{"version":3,"names":["createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","attachTypeName","HeadlessCMSExtension","plugins","register","apiInformation","allPlugins","ApolloCacheObjectIdPlugin","obj","__typename","includes","id","undefined","HeadlessCMS","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\nimport { DefaultOnEntryDelete } from \"./admin/plugins/entry/DefaultOnEntryDelete\";\nimport { DefaultOnEntryPublish } from \"~/admin/plugins/entry/DefaultOnEntryPublish\";\nimport allPlugins from \"./allPlugins\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\n/**\n * If there is a problem with some state being reset, it's probably because of this plugin.\n * Check that __typename from the API and the __typename in the state are the same.\n * If not, add it into the attachTypeName array.\n */\nconst attachTypeName = [\"CmsContentEntry\", \"RefField\"];\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n } else if (obj.__typename && attachTypeName.includes(obj.__typename)) {\n return `${obj.__typename}_${obj.id}`;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n <DefaultOnEntryDelete />\n <DefaultOnEntryPublish />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,yBAAyB,GAC3B,SADEA,yBAAyB,CAC1BC,kBAAsC;EAAA,OACvC,UAACC,SAAmB,EAAe;IAC/B,OAAO,SAASC,mBAAmB,OAAe;MAAA,IAAZC,QAAQ,QAARA,QAAQ;MAC1C,oBACI,6BAAC,gBAAW;QAAC,kBAAkB,EAAEH;MAAmB,gBAChD,6BAAC,SAAS,QAAEG,QAAQ,CAAa,CACvB;IAEtB,CAAC;EACL,CAAC;AAAA;AAaL;AACA;AACA;AACA;AACA;AACA,IAAMC,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAEtD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoB,QAAiD;EAAA,IAA3CL,kBAAkB,SAAlBA,kBAAkB;EAC9CM,gBAAO,CAACC,QAAQ,CAACC,uBAAc,CAAC;EAChCF,gBAAO,CAACC,QAAQ,CAACE,mBAAU,CAAC;EAE5BH,gBAAO,CAACC,QAAQ,CACZ,IAAIG,8BAAyB,CAAC,UAAAC,GAAG,EAAI;IACjC,IAAIA,GAAG,CAACC,UAAU,KAAK,sBAAsB,EAAE;MAC3C,OAAO,IAAI;IACf,CAAC,MAAM,IAAID,GAAG,CAACC,UAAU,IAAIR,cAAc,CAACS,QAAQ,CAACF,GAAG,CAACC,UAAU,CAAC,EAAE;MAClE,iBAAUD,GAAG,CAACC,UAAU,cAAID,GAAG,CAACG,EAAE;IACtC;IAEA,OAAOC,SAAS;EACpB,CAAC,CAAC,CACL;EAED,oBACI,6BAAC,eAAQ,qBACL,6BAAC,0CAAoB,OAAG,eACxB,6BAAC,kBAAQ;IAAC,GAAG,EAAEhB,yBAAyB,CAACC,kBAAkB;EAAE,EAAG,eAChE,6BAAC,iBAAO,qBACJ,6BAAC,4BAAa,OAAG,eACjB,6BAAC,0CAAoB,OAAG,eACxB,6BAAC,4CAAqB,OAAG,CACnB,CACH;AAEnB,CAAC;AAEM,IAAMgB,WAAW,gBAAG,IAAAC,WAAI,EAACZ,oBAAoB,CAAC;AAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function useRenderPlugins(): CmsEditorFieldRendererPlugin[];
|
|
1
|
+
export declare function useRenderPlugins(): import("../../../types").CmsModelFieldRendererPlugin[];
|
|
@@ -104,7 +104,7 @@ var ContentModelEditorProvider = function ContentModelEditorProvider(_ref3) {
|
|
|
104
104
|
if (!data) {
|
|
105
105
|
data = state.data;
|
|
106
106
|
}
|
|
107
|
-
modelData = (0, _pick.default)(data, ["group", "layout", "fields", "tags", "name", "settings", "description", "titleFieldId"]);
|
|
107
|
+
modelData = (0, _pick.default)(data, ["group", "layout", "fields", "tags", "name", "settings", "description", "titleFieldId", "descriptionFieldId", "imageFieldId", "icon"]);
|
|
108
108
|
_context.next = 4;
|
|
109
109
|
return apolloClient.mutate({
|
|
110
110
|
mutation: _contentModels.UPDATE_CONTENT_MODEL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["contentModelEditorContext","React","createContext","undefined","contentModelEditorReducer","prev","action","data","type","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","ContentModelEditorProvider","children","apolloClient","modelId","useReducer","isPristine","activeTabIndex","state","dispatch","tabsRef","useRef","useRouter","history","useSnackbar","showSnackbar","setPristine","flag","saveContentModel","modelData","pick","mutate","mutation","UPDATE_CONTENT_MODEL","variables","refetchQueries","query","LIST_MENU_CONTENT_GROUPS_MODELS","response","updateContentModel","error","setActiveTabIndex","useCallback","setData","setter","saveModel","getContentModel","GET_CONTENT_MODEL","get","Error","message","useEffect","catch","push","useMemo","contentModel","Provider"],"sources":["ContentModelEditorProvider.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef\n} from \"react\";\nimport get from \"lodash/get\";\nimport pick from \"lodash/pick\";\nimport { ApolloClient } from \"apollo-client\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UPDATE_CONTENT_MODEL,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { FetchResult } from \"apollo-link\";\nimport { TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsModel;\n contentModel: CmsModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n tabsRef: MutableRefObject<TabsImperativeApi | undefined>;\n activeTabIndex: number;\n setActiveTabIndex: (index: number) => void;\n}\n\nexport const contentModelEditorContext = React.createContext<\n ContentModelEditorProviderContext | undefined\n>(undefined);\n\ntype PickedCmsModel = Pick<\n CmsModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n activeTabIndex: number;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsModel): PickedCmsModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nexport const ContentModelEditorProvider: React.FC<ContentModelEditorProviderProps> = ({\n children,\n apolloClient,\n modelId\n}) => {\n const [state, dispatch] = useReducer<Reducer>(contentModelEditorReducer, {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel,\n activeTabIndex: 0\n });\n\n const tabsRef = useRef<TabsImperativeApi>();\n\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"tags\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n const setActiveTabIndex = useCallback((activeTabIndex: number) => {\n dispatch({ type: \"state\", data: { activeTabIndex } });\n }, []);\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n setPristine(false);\n const data = setter(state.data);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n history.push(`/cms/content-models`);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo<ContentModelEditorProviderContext>(\n () => ({\n // Keeping `data` for compatibility\n data: state.data,\n contentModel: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData,\n tabsRef,\n activeTabIndex: state.activeTabIndex,\n setActiveTabIndex\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return (\n <Provider value={value}>\n <ModelProvider model={value.contentModel}>{children}</ModelProvider>\n </Provider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["contentModelEditorContext","React","createContext","undefined","contentModelEditorReducer","prev","action","data","type","cleanupModelDataFields","fields","map","field","predefinedValues","enabled","values","label","value","selected","String","cleanupModelData","ContentModelEditorProvider","children","apolloClient","modelId","useReducer","isPristine","activeTabIndex","state","dispatch","tabsRef","useRef","useRouter","history","useSnackbar","showSnackbar","setPristine","flag","saveContentModel","modelData","pick","mutate","mutation","UPDATE_CONTENT_MODEL","variables","refetchQueries","query","LIST_MENU_CONTENT_GROUPS_MODELS","response","updateContentModel","error","setActiveTabIndex","useCallback","setData","setter","saveModel","getContentModel","GET_CONTENT_MODEL","get","Error","message","useEffect","catch","push","useMemo","contentModel","Provider"],"sources":["ContentModelEditorProvider.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef\n} from \"react\";\nimport get from \"lodash/get\";\nimport pick from \"lodash/pick\";\nimport { ApolloClient } from \"apollo-client\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables,\n UPDATE_CONTENT_MODEL,\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n} from \"~/admin/graphql/contentModels\";\nimport { LIST_MENU_CONTENT_GROUPS_MODELS } from \"~/admin/viewsGraphql\";\nimport { CmsModelField, CmsModel } from \"~/types\";\nimport { FetchResult } from \"apollo-link\";\nimport { TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nexport interface ContentModelEditorProviderContext {\n apolloClient: ApolloClient<any>;\n data: CmsModel;\n contentModel: CmsModel;\n isPristine: boolean;\n getContentModel: (modelId: string) => Promise<FetchResult<GetCmsModelQueryResponse>>;\n saveContentModel: (\n data?: CmsModel\n ) => Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]>;\n setData: (setter: (model: CmsModel) => void, saveContentModel?: boolean) => Promise<any>;\n tabsRef: MutableRefObject<TabsImperativeApi | undefined>;\n activeTabIndex: number;\n setActiveTabIndex: (index: number) => void;\n}\n\nexport const contentModelEditorContext = React.createContext<\n ContentModelEditorProviderContext | undefined\n>(undefined);\n\ntype PickedCmsModel = Pick<\n CmsModel,\n \"layout\" | \"fields\" | \"name\" | \"settings\" | \"description\" | \"titleFieldId\" | \"group\"\n>;\ninterface State {\n modelId: string | null;\n isPristine: boolean;\n data: CmsModel;\n activeTabIndex: number;\n}\ninterface Action {\n data: Partial<State> | Partial<CmsModel>;\n type: \"state\" | \"data\";\n}\ninterface Reducer {\n (prev: State, action: Action): State;\n}\nexport const contentModelEditorReducer: Reducer = (prev: State, action: Action): State => {\n const { data, type } = action;\n switch (type) {\n case \"state\":\n return { ...prev, ...data };\n\n case \"data\":\n return { ...prev, data: data as CmsModel };\n default:\n return prev;\n }\n};\n\n/**\n * Cleanup is required because backend always expects string value in predefined values entries\n */\nconst cleanupModelDataFields = (fields: CmsModelField[]): CmsModelField[] => {\n return fields.map(field => {\n const { predefinedValues } = field;\n const { enabled = false, values = [] } = predefinedValues || {};\n return {\n ...field,\n predefinedValues: {\n enabled,\n values: values.map(({ label, value, selected }) => {\n return {\n label,\n selected: selected || false,\n value: String(value)\n };\n })\n }\n };\n });\n};\n\nconst cleanupModelData = (data: PickedCmsModel): PickedCmsModel => {\n return {\n ...data,\n fields: cleanupModelDataFields(data.fields)\n };\n};\n\ninterface ContentModelEditorProviderProps {\n apolloClient: ApolloClient<any>;\n modelId?: string;\n children: React.ReactElement;\n}\n\nexport const ContentModelEditorProvider: React.FC<ContentModelEditorProviderProps> = ({\n children,\n apolloClient,\n modelId\n}) => {\n const [state, dispatch] = useReducer<Reducer>(contentModelEditorReducer, {\n modelId: modelId || null,\n isPristine: true,\n data: null as unknown as CmsModel,\n activeTabIndex: 0\n });\n\n const tabsRef = useRef<TabsImperativeApi>();\n\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const setPristine = (flag: boolean): void => {\n dispatch({ type: \"state\", data: { isPristine: flag } });\n };\n\n const saveContentModel = async (\n data?: CmsModel\n ): Promise<UpdateCmsModelMutationResponse[\"updateContentModel\"]> => {\n if (!data) {\n data = state.data;\n }\n const modelData: PickedCmsModel = pick(data, [\n \"group\",\n \"layout\",\n \"fields\",\n \"tags\",\n \"name\",\n \"settings\",\n \"description\",\n \"titleFieldId\",\n \"descriptionFieldId\",\n \"imageFieldId\",\n \"icon\"\n ]);\n const response = await apolloClient.mutate<\n UpdateCmsModelMutationResponse,\n UpdateCmsModelMutationVariables\n >({\n mutation: UPDATE_CONTENT_MODEL,\n variables: {\n modelId: data.modelId,\n data: cleanupModelData(modelData)\n },\n refetchQueries: [\n {\n query: LIST_MENU_CONTENT_GROUPS_MODELS\n }\n ]\n });\n\n setPristine(true);\n\n if (!response.data || !response.data.updateContentModel) {\n return {\n data: null,\n error: null\n };\n }\n\n return response.data.updateContentModel;\n };\n\n const setActiveTabIndex = useCallback((activeTabIndex: number) => {\n dispatch({ type: \"state\", data: { activeTabIndex } });\n }, []);\n\n /**\n * Set form data by providing a callback, which receives a fresh copy of data on which you can work on.\n * Return new data once finished.\n */\n const setData = async (setter: (value: any) => any, saveModel = false): Promise<void> => {\n setPristine(false);\n const data = setter(state.data);\n dispatch({ type: \"data\", data });\n if (!saveModel) {\n return;\n }\n await saveContentModel(data);\n };\n\n const getContentModel = async (\n modelId: string\n ): Promise<FetchResult<GetCmsModelQueryResponse>> => {\n const response = await apolloClient.query<\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n >({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId\n }\n });\n\n const { data, error } = get(response, \"data.getContentModel\");\n if (error) {\n throw new Error(error.message);\n }\n\n await setData(() => data, false);\n setPristine(true);\n return response;\n };\n\n useEffect(() => {\n if (!modelId) {\n return;\n }\n getContentModel(modelId).catch(() => {\n history.push(`/cms/content-models`);\n showSnackbar(`Could not load content model with given ID.`);\n });\n }, [modelId]);\n\n const value = useMemo<ContentModelEditorProviderContext>(\n () => ({\n // Keeping `data` for compatibility\n data: state.data,\n contentModel: state.data,\n modelId,\n apolloClient,\n dispatch,\n isPristine: state.isPristine,\n getContentModel,\n saveContentModel,\n setData,\n tabsRef,\n activeTabIndex: state.activeTabIndex,\n setActiveTabIndex\n }),\n [state, apolloClient]\n );\n\n const { Provider } = contentModelEditorContext;\n\n return (\n <Provider value={value}>\n <ModelProvider model={value.contentModel}>{children}</ModelProvider>\n </Provider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
/// <reference types="web" />
|
|
2
2
|
import React from "react";
|
|
3
|
-
export declare const EditContainer: import("@emotion/styled
|
|
3
|
+
export declare const EditContainer: import("@emotion/styled").StyledComponent<{
|
|
4
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
5
|
+
as?: React.ElementType<any> | undefined;
|
|
6
|
+
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
4
7
|
export declare const Editor: React.FC;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Dialog as BaseDialog } from "@webiny/ui/Dialog";
|
|
3
3
|
export * from "@webiny/ui/Dialog";
|
|
4
|
-
export declare const Dialog: import("@emotion/styled
|
|
4
|
+
export declare const Dialog: import("@emotion/styled").StyledComponent<import("@webiny/ui/Dialog").DialogProps & {
|
|
5
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
+
}, {}, {
|
|
7
|
+
ref?: import("react").Ref<BaseDialog> | undefined;
|
|
8
|
+
}>;
|
|
@@ -24,5 +24,5 @@ Object.keys(_Dialog).forEach(function (key) {
|
|
|
24
24
|
var Dialog = /*#__PURE__*/(0, _styled.default)(_Dialog.Dialog, {
|
|
25
25
|
label: "Dialog",
|
|
26
26
|
target: "e1q5k1p00"
|
|
27
|
-
})(".mdc-dialog__surface{width:600px;min-width:600px;overflow:initial;}.mdc-dialog__content{overflow:
|
|
27
|
+
})(".mdc-dialog__surface{width:600px;min-width:600px;overflow:initial;}.mdc-dialog__content{overflow:auto;.mdc-list:first-of-type{padding:0;}}");
|
|
28
28
|
exports.Dialog = Dialog;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dialog","styled","BaseDialog"],"sources":["Dialog.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Dialog as BaseDialog } from \"@webiny/ui/Dialog\";\nexport * from \"@webiny/ui/Dialog\";\n\nexport const Dialog = styled(BaseDialog)`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n overflow: initial;\n }\n\n .mdc-dialog__content {\n overflow:
|
|
1
|
+
{"version":3,"names":["Dialog","styled","BaseDialog"],"sources":["Dialog.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Dialog as BaseDialog } from \"@webiny/ui/Dialog\";\nexport * from \"@webiny/ui/Dialog\";\n\nexport const Dialog = styled(BaseDialog)`\n .mdc-dialog__surface {\n width: 600px;\n min-width: 600px;\n overflow: initial;\n }\n\n .mdc-dialog__content {\n overflow: auto;\n .mdc-list:first-of-type {\n padding: 0;\n }\n }\n`;\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAEO,IAAMA,MAAM,oBAAGC,eAAM,EAACC,cAAU;EAAA;EAAA;AAAA,gJAatC;AAAC"}
|
|
@@ -74,7 +74,7 @@ var GeneralTab = function GeneralTab() {
|
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
var predefinedValuesEnabled = (0, _react.useMemo)(function () {
|
|
77
|
-
return fieldPlugin.field.allowPredefinedValues && typeof fieldPlugin.field.renderPredefinedValues === "function";
|
|
77
|
+
return (fieldPlugin.field.allowPredefinedValues || false) && typeof fieldPlugin.field.renderPredefinedValues === "function";
|
|
78
78
|
}, [field.fieldId]);
|
|
79
79
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
80
80
|
span: 6
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GeneralTab","form","useForm","useModelField","field","fieldPlugin","inputRef","useRef","useModelEditor","contentModel","data","useModelFieldEditor","getField","useEffect","setTimeout","current","focus","afterChangeLabel","useCallback","value","setValue","beforeChangeFieldId","baseOnChange","trim","fieldIdValidator","fieldId","toLowerCase","Error","uniqueFieldIdValidator","existingField","id","additionalSettings","renderSettings","predefinedValuesEnabled","useMemo","allowPredefinedValues","renderPredefinedValues","validation","create","multipleValuesLabel","allowMultipleValues","tags"],"sources":["GeneralTab.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useRef, useMemo } from \"react\";\nimport { camelCase } from \"lodash\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { Tags } from \"@webiny/ui/Tags\";\nimport { useForm, Bind } from \"@webiny/form\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelField } from \"~/admin/hooks\";\n\nconst GeneralTab = () => {\n const form = useForm();\n const { field, fieldPlugin } = useModelField();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { data: contentModel } = useModelEditor();\n const { getField } = useModelFieldEditor();\n\n // Had problems with auto-focusing the \"label\" field. A couple of comments on this.\n // 1. It's probably caused by the Tabs component which wraps this component.\n // 2. It seems that the \"autoFocus\" prop on the Input doesn't work. I can't see it attached in the actual DOM.\n // 3. This works, but it's not 100%. Visually, the cursor is frozen, and that's probably caused by a bug / design\n // in the RMWC / Material library. If you were to click somewhere on screen, and then apply focus, then\n // it seems it's behaving correctly. ¯\\_(ツ)_/¯\n useEffect(() => {\n setTimeout(() => {\n if (!inputRef.current) {\n return;\n }\n inputRef.current.focus();\n }, /* The value of 400 was determined by manual testing. */ 400);\n }, []);\n\n const afterChangeLabel = useCallback((value: string) => {\n form.setValue(\"fieldId\", camelCase(value));\n }, []);\n\n const beforeChangeFieldId = useCallback(\n (value: string, baseOnChange: (value: string) => void) => {\n baseOnChange(value.trim());\n },\n []\n );\n\n const fieldIdValidator = useCallback(fieldId => {\n if (fieldId.trim().toLowerCase() !== \"id\") {\n return true;\n }\n\n throw new Error(`Cannot use \"id\" as Field ID.`);\n }, []);\n\n const uniqueFieldIdValidator = useCallback((fieldId: string) => {\n const existingField = getField({ fieldId });\n if (!existingField) {\n return false;\n }\n\n if (existingField.id === field.id) {\n return true;\n }\n throw new Error(\"Please enter a unique Field ID.\");\n }, []);\n\n let additionalSettings: React.ReactNode | null = null;\n if (typeof fieldPlugin.field.renderSettings === \"function\") {\n additionalSettings = fieldPlugin.field.renderSettings({\n afterChangeLabel,\n uniqueFieldIdValidator,\n contentModel\n });\n }\n\n const predefinedValuesEnabled = useMemo(\n (): boolean =>\n fieldPlugin.field.allowPredefinedValues &&\n typeof fieldPlugin.field.renderPredefinedValues === \"function\",\n [field.fieldId]\n );\n\n return (\n <>\n <Grid>\n <Cell span={6}>\n <Bind\n name={\"label\"}\n validators={validation.create(\"required\")}\n afterChange={(value: string) => {\n if (field.id) {\n return;\n }\n afterChangeLabel(value);\n }}\n >\n <Input\n label={\"Label\"}\n inputRef={inputRef}\n data-testid=\"cms.editor.field.settings.general.label\"\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind\n name={\"fieldId\"}\n validators={[\n validation.create(\"required\"),\n uniqueFieldIdValidator,\n fieldIdValidator\n ]}\n beforeChange={beforeChangeFieldId}\n >\n <Input\n label={\"Field ID\"}\n data-testid={`cms.editor.field.settings.general.label-${field.id}`}\n />\n </Bind>\n </Cell>\n\n <Cell span={6}>\n <Bind name={\"multipleValues\"}>\n <Switch\n label={fieldPlugin.field.multipleValuesLabel}\n disabled={!fieldPlugin.field.allowMultipleValues}\n data-testid={`cms.editor.field.settings.general.switch-multiplevalues`}\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind name={\"predefinedValues.enabled\"}>\n <Switch\n label={\"Use predefined values\"}\n disabled={!predefinedValuesEnabled}\n data-testid={`cms.editor.field.settings.general.switch-predefinedvalues`}\n />\n </Bind>\n </Cell>\n\n <Cell span={12}>\n <Bind name={\"helpText\"}>\n <Input\n label={\"Help text\"}\n description={\"Help text (optional)\"}\n data-testid={`cms.editor.field.settings.general.helptext`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"tags\"}>\n <Tags\n label={\"Tags\"}\n protectedTags={fieldPlugin.field.tags}\n description={\"Field tags (optional)\"}\n data-testid={`cms.editor.field.settings.general.tags`}\n />\n </Bind>\n </Cell>\n </Grid>\n {additionalSettings}\n </>\n );\n};\n\nexport default GeneralTab;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["GeneralTab","form","useForm","useModelField","field","fieldPlugin","inputRef","useRef","useModelEditor","contentModel","data","useModelFieldEditor","getField","useEffect","setTimeout","current","focus","afterChangeLabel","useCallback","value","setValue","beforeChangeFieldId","baseOnChange","trim","fieldIdValidator","fieldId","toLowerCase","Error","uniqueFieldIdValidator","existingField","id","additionalSettings","renderSettings","predefinedValuesEnabled","useMemo","allowPredefinedValues","renderPredefinedValues","validation","create","multipleValuesLabel","allowMultipleValues","tags"],"sources":["GeneralTab.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useRef, useMemo } from \"react\";\nimport { camelCase } from \"lodash\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { validation } from \"@webiny/validation\";\nimport { Tags } from \"@webiny/ui/Tags\";\nimport { useForm, Bind } from \"@webiny/form\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelField } from \"~/admin/hooks\";\n\nconst GeneralTab = () => {\n const form = useForm();\n const { field, fieldPlugin } = useModelField();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const { data: contentModel } = useModelEditor();\n const { getField } = useModelFieldEditor();\n\n // Had problems with auto-focusing the \"label\" field. A couple of comments on this.\n // 1. It's probably caused by the Tabs component which wraps this component.\n // 2. It seems that the \"autoFocus\" prop on the Input doesn't work. I can't see it attached in the actual DOM.\n // 3. This works, but it's not 100%. Visually, the cursor is frozen, and that's probably caused by a bug / design\n // in the RMWC / Material library. If you were to click somewhere on screen, and then apply focus, then\n // it seems it's behaving correctly. ¯\\_(ツ)_/¯\n useEffect(() => {\n setTimeout(() => {\n if (!inputRef.current) {\n return;\n }\n inputRef.current.focus();\n }, /* The value of 400 was determined by manual testing. */ 400);\n }, []);\n\n const afterChangeLabel = useCallback((value: string) => {\n form.setValue(\"fieldId\", camelCase(value));\n }, []);\n\n const beforeChangeFieldId = useCallback(\n (value: string, baseOnChange: (value: string) => void) => {\n baseOnChange(value.trim());\n },\n []\n );\n\n const fieldIdValidator = useCallback(fieldId => {\n if (fieldId.trim().toLowerCase() !== \"id\") {\n return true;\n }\n\n throw new Error(`Cannot use \"id\" as Field ID.`);\n }, []);\n\n const uniqueFieldIdValidator = useCallback((fieldId: string) => {\n const existingField = getField({ fieldId });\n if (!existingField) {\n return false;\n }\n\n if (existingField.id === field.id) {\n return true;\n }\n throw new Error(\"Please enter a unique Field ID.\");\n }, []);\n\n let additionalSettings: React.ReactNode | null = null;\n if (typeof fieldPlugin.field.renderSettings === \"function\") {\n additionalSettings = fieldPlugin.field.renderSettings({\n afterChangeLabel,\n uniqueFieldIdValidator,\n contentModel\n });\n }\n\n const predefinedValuesEnabled = useMemo(\n (): boolean =>\n (fieldPlugin.field.allowPredefinedValues || false) &&\n typeof fieldPlugin.field.renderPredefinedValues === \"function\",\n [field.fieldId]\n );\n\n return (\n <>\n <Grid>\n <Cell span={6}>\n <Bind\n name={\"label\"}\n validators={validation.create(\"required\")}\n afterChange={(value: string) => {\n if (field.id) {\n return;\n }\n afterChangeLabel(value);\n }}\n >\n <Input\n label={\"Label\"}\n inputRef={inputRef}\n data-testid=\"cms.editor.field.settings.general.label\"\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind\n name={\"fieldId\"}\n validators={[\n validation.create(\"required\"),\n uniqueFieldIdValidator,\n fieldIdValidator\n ]}\n beforeChange={beforeChangeFieldId}\n >\n <Input\n label={\"Field ID\"}\n data-testid={`cms.editor.field.settings.general.label-${field.id}`}\n />\n </Bind>\n </Cell>\n\n <Cell span={6}>\n <Bind name={\"multipleValues\"}>\n <Switch\n label={fieldPlugin.field.multipleValuesLabel}\n disabled={!fieldPlugin.field.allowMultipleValues}\n data-testid={`cms.editor.field.settings.general.switch-multiplevalues`}\n />\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind name={\"predefinedValues.enabled\"}>\n <Switch\n label={\"Use predefined values\"}\n disabled={!predefinedValuesEnabled}\n data-testid={`cms.editor.field.settings.general.switch-predefinedvalues`}\n />\n </Bind>\n </Cell>\n\n <Cell span={12}>\n <Bind name={\"helpText\"}>\n <Input\n label={\"Help text\"}\n description={\"Help text (optional)\"}\n data-testid={`cms.editor.field.settings.general.helptext`}\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind name={\"tags\"}>\n <Tags\n label={\"Tags\"}\n protectedTags={fieldPlugin.field.tags}\n description={\"Field tags (optional)\"}\n data-testid={`cms.editor.field.settings.general.tags`}\n />\n </Bind>\n </Cell>\n </Grid>\n {additionalSettings}\n </>\n );\n};\n\nexport default GeneralTab;\n"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
|
|
|
28
28
|
var _hooks = require("../../hooks");
|
|
29
29
|
var _useModelFieldEditor2 = require("./useModelFieldEditor");
|
|
30
30
|
var _appAdmin = require("@webiny/app-admin");
|
|
31
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
31
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
32
32
|
var t = _i18n.i18n.ns("app-headless-cms/admin/components/editor/field");
|
|
33
33
|
var FieldContainer = /*#__PURE__*/(0, _styled.default)("div", {
|
|
34
34
|
target: "erv8xml0",
|
|
@@ -61,14 +61,30 @@ var Actions = /*#__PURE__*/(0, _styled.default)("div", {
|
|
|
61
61
|
display: "flex",
|
|
62
62
|
flexDirection: "row",
|
|
63
63
|
alignItems: "right",
|
|
64
|
+
position: "relative",
|
|
64
65
|
"> *": {
|
|
65
66
|
flex: "1 100%"
|
|
66
67
|
}
|
|
67
68
|
});
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* TODO @sven to give correct values
|
|
72
|
+
*/
|
|
73
|
+
var FieldTypeName = /*#__PURE__*/(0, _styled.default)("div", {
|
|
74
|
+
target: "erv8xml4",
|
|
75
|
+
label: "FieldTypeName"
|
|
76
|
+
})({
|
|
77
|
+
display: "flex",
|
|
78
|
+
flexDirection: "column",
|
|
79
|
+
textTransform: "uppercase",
|
|
80
|
+
color: "#938F99",
|
|
81
|
+
flex: "1",
|
|
82
|
+
textAlign: "right",
|
|
83
|
+
fontSize: "14px",
|
|
84
|
+
paddingRight: "10px"
|
|
85
|
+
});
|
|
68
86
|
var menuStyles = /*#__PURE__*/(0, _emotion.css)({
|
|
69
|
-
width:
|
|
70
|
-
right: -105,
|
|
71
|
-
left: "auto !important",
|
|
87
|
+
width: "220px",
|
|
72
88
|
".disabled": {
|
|
73
89
|
opacity: 0.5,
|
|
74
90
|
pointerEvents: "none"
|
|
@@ -76,26 +92,55 @@ var menuStyles = /*#__PURE__*/(0, _emotion.css)({
|
|
|
76
92
|
}, "label:menuStyles;");
|
|
77
93
|
var FieldExtra = /*#__PURE__*/(0, _styled.default)("div", {
|
|
78
94
|
label: "FieldExtra",
|
|
79
|
-
target: "
|
|
95
|
+
target: "erv8xml5"
|
|
80
96
|
})("padding:10px 0 10px;:empty{display:none;}");
|
|
81
97
|
var allowedTitleFieldTypes = ["text", "number"];
|
|
82
|
-
var isFieldAllowedToBeTitle = function isFieldAllowedToBeTitle(field, parent) {
|
|
98
|
+
var isFieldAllowedToBeTitle = function isFieldAllowedToBeTitle(model, field, parent) {
|
|
83
99
|
if (field.multipleValues || parent) {
|
|
84
100
|
return false;
|
|
85
101
|
} else if (allowedTitleFieldTypes.includes(field.type) === false) {
|
|
86
102
|
return false;
|
|
103
|
+
} else if (model.titleFieldId === field.fieldId) {
|
|
104
|
+
return false;
|
|
87
105
|
}
|
|
88
106
|
return true;
|
|
89
107
|
};
|
|
108
|
+
var isFieldAllowedToBeDescription = function isFieldAllowedToBeDescription(model, field, parent) {
|
|
109
|
+
if (field.multipleValues || parent) {
|
|
110
|
+
return false;
|
|
111
|
+
} else if (model.descriptionFieldId === field.fieldId) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
return field.type === "long-text";
|
|
115
|
+
};
|
|
116
|
+
var isFieldAllowedToBeImage = function isFieldAllowedToBeImage(model, field, parent) {
|
|
117
|
+
var _field$settings;
|
|
118
|
+
if (field.multipleValues || parent) {
|
|
119
|
+
return false;
|
|
120
|
+
} else if (model.imageFieldId === field.fieldId) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
return field.type === "file" && ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.imagesOnly);
|
|
124
|
+
};
|
|
125
|
+
var getFieldTypeName = function getFieldTypeName(model, field, parent) {
|
|
126
|
+
if (parent) {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
var isTitleField = field.fieldId === (model === null || model === void 0 ? void 0 : model.titleFieldId) && !parent;
|
|
130
|
+
var isDescriptionField = field.fieldId === (model === null || model === void 0 ? void 0 : model.descriptionFieldId) && !parent;
|
|
131
|
+
var isImageField = field.fieldId === (model === null || model === void 0 ? void 0 : model.imageFieldId) && !parent;
|
|
132
|
+
return [isTitleField ? "entry title" : null, isDescriptionField ? "entry description" : null, isImageField ? "entry image" : null].filter(Boolean).join("") || null;
|
|
133
|
+
};
|
|
90
134
|
var Field = function Field(props) {
|
|
135
|
+
var _fieldPlugin$field;
|
|
91
136
|
var field = props.field,
|
|
92
137
|
onEdit = props.onEdit,
|
|
93
138
|
parent = props.parent;
|
|
94
139
|
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
95
140
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
96
141
|
var _useModelEditor = (0, _hooks.useModelEditor)(),
|
|
97
|
-
|
|
98
|
-
|
|
142
|
+
setModel = _useModelEditor.setData,
|
|
143
|
+
model = _useModelEditor.data;
|
|
99
144
|
var _useModelFieldEditor = (0, _useModelFieldEditor2.useModelFieldEditor)(),
|
|
100
145
|
getFieldPlugin = _useModelFieldEditor.getFieldPlugin,
|
|
101
146
|
getFieldRendererPlugin = _useModelFieldEditor.getFieldRendererPlugin;
|
|
@@ -104,45 +149,170 @@ var Field = function Field(props) {
|
|
|
104
149
|
message: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", null, t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["You are about to delete a field which is used in the data storage"])))), /*#__PURE__*/_react.default.createElement("p", null, t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["All data in that field will be lost and there is no going back!"])))), /*#__PURE__*/_react.default.createElement("p", null, "\xA0"), /*#__PURE__*/_react.default.createElement("p", null, t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Are you sure you want to continue?"])))))
|
|
105
150
|
}),
|
|
106
151
|
showConfirmation = _useConfirmationDialo.showConfirmation;
|
|
107
|
-
var lockedFields =
|
|
152
|
+
var lockedFields = (model === null || model === void 0 ? void 0 : model.lockedFields) || [];
|
|
108
153
|
var isLocked = lockedFields.some(function (lockedField) {
|
|
109
154
|
return lockedField.fieldId === field.storageId;
|
|
110
155
|
});
|
|
111
|
-
var
|
|
112
|
-
if (!isLocked) {
|
|
113
|
-
props.onDelete(field);
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
showConfirmation(function () {
|
|
117
|
-
props.onDelete(field);
|
|
118
|
-
});
|
|
119
|
-
}, [field.fieldId, lockedFields]);
|
|
120
|
-
var setAsTitle = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
121
|
-
var response;
|
|
156
|
+
var removeFieldFromSelected = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
|
122
157
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
|
123
158
|
while (1) switch (_context.prev = _context.next) {
|
|
124
159
|
case 0:
|
|
125
|
-
|
|
126
|
-
|
|
160
|
+
if (!(model.titleFieldId === field.fieldId)) {
|
|
161
|
+
_context.next = 5;
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
_context.next = 3;
|
|
165
|
+
return setModel(function (data) {
|
|
166
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
167
|
+
titleFieldId: null
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
case 3:
|
|
171
|
+
_context.next = 13;
|
|
172
|
+
break;
|
|
173
|
+
case 5:
|
|
174
|
+
if (!(model.descriptionFieldId === field.fieldId)) {
|
|
175
|
+
_context.next = 10;
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
_context.next = 8;
|
|
179
|
+
return setModel(function (data) {
|
|
180
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
181
|
+
descriptionFieldId: null
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
case 8:
|
|
185
|
+
_context.next = 13;
|
|
186
|
+
break;
|
|
187
|
+
case 10:
|
|
188
|
+
if (!(model.imageFieldId === field.fieldId)) {
|
|
189
|
+
_context.next = 13;
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
_context.next = 13;
|
|
193
|
+
return setModel(function (data) {
|
|
194
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
195
|
+
imageFieldId: null
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
case 13:
|
|
199
|
+
case "end":
|
|
200
|
+
return _context.stop();
|
|
201
|
+
}
|
|
202
|
+
}, _callee);
|
|
203
|
+
})), [field.id, setModel, model]);
|
|
204
|
+
var onDelete = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
|
|
205
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
|
|
206
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
207
|
+
case 0:
|
|
208
|
+
if (isLocked) {
|
|
209
|
+
_context3.next = 5;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
_context3.next = 3;
|
|
213
|
+
return removeFieldFromSelected();
|
|
214
|
+
case 3:
|
|
215
|
+
props.onDelete(field);
|
|
216
|
+
return _context3.abrupt("return");
|
|
217
|
+
case 5:
|
|
218
|
+
showConfirmation( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
|
|
219
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
|
220
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
221
|
+
case 0:
|
|
222
|
+
_context2.next = 2;
|
|
223
|
+
return removeFieldFromSelected();
|
|
224
|
+
case 2:
|
|
225
|
+
props.onDelete(field);
|
|
226
|
+
case 3:
|
|
227
|
+
case "end":
|
|
228
|
+
return _context2.stop();
|
|
229
|
+
}
|
|
230
|
+
}, _callee2);
|
|
231
|
+
})));
|
|
232
|
+
case 6:
|
|
233
|
+
case "end":
|
|
234
|
+
return _context3.stop();
|
|
235
|
+
}
|
|
236
|
+
}, _callee3);
|
|
237
|
+
})), [field.fieldId, lockedFields]);
|
|
238
|
+
var setAsTitle = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
|
|
239
|
+
var response;
|
|
240
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
|
|
241
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
242
|
+
case 0:
|
|
243
|
+
_context4.next = 2;
|
|
244
|
+
return setModel(function (data) {
|
|
127
245
|
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
128
246
|
titleFieldId: field.fieldId
|
|
129
247
|
});
|
|
130
248
|
});
|
|
131
249
|
case 2:
|
|
132
|
-
response =
|
|
250
|
+
response = _context4.sent;
|
|
133
251
|
if (!(response && response.error)) {
|
|
134
|
-
|
|
252
|
+
_context4.next = 5;
|
|
135
253
|
break;
|
|
136
254
|
}
|
|
137
|
-
return
|
|
255
|
+
return _context4.abrupt("return", showSnackbar(response.error.message));
|
|
138
256
|
case 5:
|
|
139
257
|
showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Title field set successfully."]))));
|
|
140
258
|
case 6:
|
|
141
259
|
case "end":
|
|
142
|
-
return
|
|
260
|
+
return _context4.stop();
|
|
143
261
|
}
|
|
144
|
-
},
|
|
145
|
-
})), [field.fieldId,
|
|
262
|
+
}, _callee4);
|
|
263
|
+
})), [field.fieldId, setModel]);
|
|
264
|
+
var setAsDescription = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
|
|
265
|
+
var response;
|
|
266
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
|
|
267
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
268
|
+
case 0:
|
|
269
|
+
_context5.next = 2;
|
|
270
|
+
return setModel(function (data) {
|
|
271
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
272
|
+
descriptionFieldId: field.fieldId
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
case 2:
|
|
276
|
+
response = _context5.sent;
|
|
277
|
+
if (!(response && response.error)) {
|
|
278
|
+
_context5.next = 5;
|
|
279
|
+
break;
|
|
280
|
+
}
|
|
281
|
+
return _context5.abrupt("return", showSnackbar(response.error.message));
|
|
282
|
+
case 5:
|
|
283
|
+
showSnackbar(t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Description field set successfully."]))));
|
|
284
|
+
case 6:
|
|
285
|
+
case "end":
|
|
286
|
+
return _context5.stop();
|
|
287
|
+
}
|
|
288
|
+
}, _callee5);
|
|
289
|
+
})), [field.fieldId, setModel]);
|
|
290
|
+
var setAsImage = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6() {
|
|
291
|
+
var response;
|
|
292
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
|
|
293
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
294
|
+
case 0:
|
|
295
|
+
_context6.next = 2;
|
|
296
|
+
return setModel(function (data) {
|
|
297
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
|
|
298
|
+
imageFieldId: field.fieldId
|
|
299
|
+
});
|
|
300
|
+
});
|
|
301
|
+
case 2:
|
|
302
|
+
response = _context6.sent;
|
|
303
|
+
if (!(response && response.error)) {
|
|
304
|
+
_context6.next = 5;
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
return _context6.abrupt("return", showSnackbar(response.error.message));
|
|
308
|
+
case 5:
|
|
309
|
+
showSnackbar(t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Image field set successfully."]))));
|
|
310
|
+
case 6:
|
|
311
|
+
case "end":
|
|
312
|
+
return _context6.stop();
|
|
313
|
+
}
|
|
314
|
+
}, _callee6);
|
|
315
|
+
})), [field.fieldId, setModel]);
|
|
146
316
|
var fieldPlugin = getFieldPlugin(field.type);
|
|
147
317
|
var editorFieldOptionPlugins = _plugins.plugins.byType("cms-editor-field-option");
|
|
148
318
|
if (!fieldPlugin) {
|
|
@@ -150,13 +320,27 @@ var Field = function Field(props) {
|
|
|
150
320
|
}
|
|
151
321
|
var rendererPlugin = getFieldRendererPlugin(field.renderer.name);
|
|
152
322
|
var canEdit = fieldPlugin.field.canEditSettings !== false;
|
|
153
|
-
var
|
|
154
|
-
|
|
323
|
+
var defaultInformationRenderer = (0, _react.useMemo)(function () {
|
|
324
|
+
var fieldTypeName = getFieldTypeName(model, field, parent);
|
|
325
|
+
var fn = function fn() {
|
|
326
|
+
if (!fieldTypeName) {
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
return /*#__PURE__*/_react.default.createElement(FieldTypeName, null, fieldTypeName);
|
|
330
|
+
};
|
|
331
|
+
fn.displayName = "FieldTypeRenderer";
|
|
332
|
+
return fn;
|
|
333
|
+
}, [field.id]);
|
|
334
|
+
var fieldInformationRenderer = (_fieldPlugin$field = fieldPlugin.field) === null || _fieldPlugin$field === void 0 ? void 0 : _fieldPlugin$field.renderInfo;
|
|
335
|
+
var info = [rendererPlugin === null || rendererPlugin === void 0 ? void 0 : rendererPlugin.renderer.name, field.multipleValues ? "multiple values" : null].filter(Boolean).join(", ");
|
|
155
336
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(FieldContainer, null, /*#__PURE__*/_react.default.createElement(Info, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
156
337
|
use: "subtitle1"
|
|
157
338
|
}, field.label), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
158
339
|
use: "caption"
|
|
159
|
-
}, fieldPlugin.field.label,
|
|
340
|
+
}, fieldPlugin.field.label, info && /*#__PURE__*/_react.default.createElement(LowerCase, null, " (", info, ")"))), fieldInformationRenderer ? fieldInformationRenderer({
|
|
341
|
+
model: model,
|
|
342
|
+
field: field
|
|
343
|
+
}) : defaultInformationRenderer(), /*#__PURE__*/_react.default.createElement(Actions, null, canEdit ? /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
160
344
|
"data-testid": "cms.editor.edit-field",
|
|
161
345
|
icon: /*#__PURE__*/_react.default.createElement(_edit.ReactComponent, null),
|
|
162
346
|
onClick: function onClick() {
|
|
@@ -172,18 +356,28 @@ var Field = function Field(props) {
|
|
|
172
356
|
key: pl.name
|
|
173
357
|
});
|
|
174
358
|
}), /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
|
|
175
|
-
disabled: !isFieldAllowedToBeTitle(field, parent),
|
|
359
|
+
disabled: !isFieldAllowedToBeTitle(model, field, parent),
|
|
176
360
|
onClick: setAsTitle
|
|
177
361
|
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
178
362
|
icon: /*#__PURE__*/_react.default.createElement(_title24px.ReactComponent, null)
|
|
179
|
-
})), t(
|
|
363
|
+
})), t(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["Use as title"])))), /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
|
|
364
|
+
disabled: !isFieldAllowedToBeDescription(model, field, parent),
|
|
365
|
+
onClick: setAsDescription
|
|
366
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
367
|
+
icon: /*#__PURE__*/_react.default.createElement(_title24px.ReactComponent, null)
|
|
368
|
+
})), t(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["Use as description"])))), /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
|
|
369
|
+
disabled: !isFieldAllowedToBeImage(model, field, parent),
|
|
370
|
+
onClick: setAsImage
|
|
371
|
+
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
372
|
+
icon: /*#__PURE__*/_react.default.createElement(_title24px.ReactComponent, null)
|
|
373
|
+
})), t(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["Use as image"])))), /*#__PURE__*/_react.default.createElement(_Menu.MenuItem, {
|
|
180
374
|
onClick: onDelete
|
|
181
375
|
}, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
182
376
|
icon: /*#__PURE__*/_react.default.createElement(_delete.ReactComponent, null)
|
|
183
|
-
})), t(
|
|
377
|
+
})), t(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["Delete"]))))))), /*#__PURE__*/_react.default.createElement(FieldExtra, null, fieldPlugin.field.render && fieldPlugin.field.render({
|
|
184
378
|
field: field,
|
|
185
|
-
data:
|
|
186
|
-
setData:
|
|
379
|
+
data: model,
|
|
380
|
+
setData: setModel
|
|
187
381
|
})));
|
|
188
382
|
};
|
|
189
383
|
var _default = /*#__PURE__*/_react.default.memo(Field);
|