@webiny/app-headless-cms 5.33.5 → 5.34.0-beta.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/HeadlessCMS.js +4 -0
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.js +35 -32
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/Fields.d.ts +2 -2
- package/admin/components/ContentEntryForm/Fields.js.map +1 -1
- package/admin/components/ContentEntryForm/Label.js +1 -1
- package/admin/components/ContentEntryForm/Label.js.map +1 -1
- package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +2 -2
- package/admin/components/ContentEntryForm/RenderFieldElement.js +6 -2
- package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/getValue.d.ts +2 -2
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/setValue.d.ts +2 -2
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
- package/admin/components/ContentEntryForm/useBind.d.ts +2 -2
- package/admin/components/ContentEntryForm/useBind.js +11 -8
- package/admin/components/ContentEntryForm/useBind.js.map +1 -1
- package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +1 -2
- package/admin/components/ContentEntryForm/useContentEntryForm.js +187 -147
- package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
- package/admin/components/ContentModelEditor/{Context.d.ts → ContentModelEditorProvider.d.ts} +10 -4
- package/admin/components/ContentModelEditor/{Context.js → ContentModelEditorProvider.js} +60 -116
- package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -0
- package/admin/components/ContentModelEditor/Editor.js +5 -5
- package/admin/components/ContentModelEditor/Editor.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/ContentModelEditor/PreviewTab.js +3 -3
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
- package/admin/components/ContentModelEditor/index.d.ts +2 -0
- package/admin/components/ContentModelEditor/index.js +31 -0
- package/admin/components/ContentModelEditor/index.js.map +1 -0
- package/admin/components/ContentModelEditor/useModelEditor.d.ts +1 -0
- package/admin/components/ContentModelEditor/{useContentModelEditor.js → useModelEditor.js} +4 -4
- package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -0
- package/admin/{views/contentModelGroups → components}/DelayedOnChange.d.ts +0 -0
- package/admin/{views/contentModelGroups → components}/DelayedOnChange.js +0 -0
- package/admin/{views/contentModelGroups → components}/DelayedOnChange.js.map +0 -0
- package/admin/components/Dialog.d.ts +4 -0
- package/admin/components/Dialog.js +32 -0
- package/admin/components/Dialog.js.map +1 -0
- package/admin/components/DropZone/Center.d.ts +2 -1
- package/admin/components/DropZone/Center.js +38 -44
- package/admin/components/DropZone/Center.js.map +1 -1
- package/admin/components/Droppable.d.ts +1 -0
- package/admin/components/Droppable.js +12 -1
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.d.ts +2 -8
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +20 -9
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.d.ts +2 -9
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +35 -21
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.d.ts +2 -9
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +14 -12
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.d.ts +10 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js +42 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.d.ts +8 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +227 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +13 -0
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +115 -0
- package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog.d.ts +3 -3
- package/admin/components/FieldEditor/EditFieldDialog.js +117 -260
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/Field.d.ts +5 -5
- package/admin/components/FieldEditor/Field.js +17 -14
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.d.ts +4 -4
- package/admin/components/FieldEditor/FieldEditor.js +85 -31
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.d.ts +16 -16
- package/admin/components/FieldEditor/FieldEditorContext.js +18 -18
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/Styled.js +4 -13
- package/admin/components/FieldEditor/Styled.js.map +1 -1
- package/admin/components/FieldEditor/index.d.ts +1 -1
- package/admin/components/FieldEditor/index.js +3 -3
- package/admin/components/FieldEditor/index.js.map +1 -1
- package/admin/components/FieldEditor/useModelFieldEditor.d.ts +2 -0
- package/admin/components/FieldEditor/useModelFieldEditor.js +20 -0
- package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -0
- package/admin/components/FieldEditor/utils/deleteField.d.ts +2 -2
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveField.d.ts +3 -3
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
- package/admin/components/IconPicker.d.ts +7 -0
- package/admin/{views/contentModelGroups → components}/IconPicker.js +34 -31
- package/admin/components/IconPicker.js.map +1 -0
- package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +36 -0
- package/admin/components/ModelFieldProvider/ModelFieldContext.js +24 -0
- package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -0
- package/admin/components/ModelFieldProvider/index.d.ts +2 -0
- package/admin/components/ModelFieldProvider/index.js +31 -0
- package/admin/components/ModelFieldProvider/index.js.map +1 -0
- package/admin/components/ModelFieldProvider/useModelField.d.ts +35 -0
- package/admin/components/ModelFieldProvider/useModelField.js +42 -0
- package/admin/components/ModelFieldProvider/useModelField.js.map +1 -0
- package/admin/components/ModelProvider/ModelContext.d.ts +9 -0
- package/admin/components/ModelProvider/ModelContext.js +24 -0
- package/admin/components/ModelProvider/ModelContext.js.map +1 -0
- package/admin/components/ModelProvider/index.d.ts +2 -0
- package/admin/components/ModelProvider/index.js +31 -0
- package/admin/components/ModelProvider/index.js.map +1 -0
- package/admin/components/ModelProvider/useModel.d.ts +9 -0
- package/admin/components/ModelProvider/useModel.js +25 -0
- package/admin/components/ModelProvider/useModel.js.map +1 -0
- package/admin/constants/statusLabels.js +2 -4
- package/admin/constants/statusLabels.js.map +1 -1
- package/admin/graphql/contentEntries.d.ts +2 -29
- package/admin/graphql/contentEntries.js +28 -42
- package/admin/graphql/contentEntries.js.map +1 -1
- package/admin/graphql/contentModels.d.ts +1 -1
- package/admin/graphql/contentModels.js +2 -2
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/graphql/createFieldsList.d.ts +7 -2
- package/admin/graphql/createFieldsList.js +5 -1
- package/admin/graphql/createFieldsList.js.map +1 -1
- package/admin/hooks/index.d.ts +5 -0
- package/admin/hooks/index.js +47 -2
- package/admin/hooks/index.js.map +1 -1
- package/admin/hooks/usePermission.d.ts +0 -2
- package/admin/hooks/usePermission.js +5 -37
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/menus/NothingToShowElement.js +4 -1
- package/admin/menus/NothingToShowElement.js.map +1 -1
- package/admin/plugins/arrayUtils.d.ts +12 -0
- package/admin/plugins/arrayUtils.js +53 -0
- package/admin/plugins/arrayUtils.js.map +1 -0
- package/admin/plugins/editor/defaultBar/CreateContentButton.js +4 -4
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +5 -5
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/Name.js +4 -4
- package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +3 -3
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js +9 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.d.ts +3 -3
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +12 -0
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +107 -0
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +11 -0
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +139 -0
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +11 -0
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +68 -0
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +8 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js +63 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +8 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +53 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +6 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +22 -0
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -0
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.d.ts +2 -0
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +66 -0
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +10 -9
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +15 -14
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -2
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.d.ts +2 -2
- package/admin/plugins/fieldValidators/dateGte.js +79 -23
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.d.ts +2 -2
- package/admin/plugins/fieldValidators/dateLte.js +79 -23
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/dynamicZone.d.ts +2 -0
- package/admin/plugins/fieldValidators/dynamicZone.js +215 -0
- package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -0
- package/admin/plugins/fieldValidators/gte.d.ts +2 -2
- package/admin/plugins/fieldValidators/gte.js +44 -5
- package/admin/plugins/fieldValidators/gte.js.map +1 -1
- package/admin/plugins/fieldValidators/in.d.ts +2 -2
- package/admin/plugins/fieldValidators/in.js +44 -5
- package/admin/plugins/fieldValidators/in.js.map +1 -1
- package/admin/plugins/fieldValidators/lte.d.ts +2 -2
- package/admin/plugins/fieldValidators/lte.js +44 -5
- package/admin/plugins/fieldValidators/lte.js.map +1 -1
- package/admin/plugins/fieldValidators/maxLength.d.ts +2 -2
- package/admin/plugins/fieldValidators/maxLength.js +55 -6
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
- package/admin/plugins/fieldValidators/minLength.d.ts +2 -2
- package/admin/plugins/fieldValidators/minLength.js +55 -6
- package/admin/plugins/fieldValidators/minLength.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.d.ts +2 -2
- package/admin/plugins/fieldValidators/pattern.js +129 -60
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/email.js +6 -4
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +5 -3
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +5 -3
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +5 -3
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +5 -3
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +2 -2
- package/admin/plugins/fieldValidators/patternPlugins/url.js +5 -3
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/fieldValidators/required.d.ts +2 -2
- package/admin/plugins/fieldValidators/required.js +8 -2
- package/admin/plugins/fieldValidators/required.js.map +1 -1
- package/admin/plugins/fieldValidators/unique.d.ts +2 -2
- package/admin/plugins/fieldValidators/unique.js +30 -2
- package/admin/plugins/fieldValidators/unique.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +25 -26
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.d.ts +2 -2
- package/admin/plugins/fields/boolean.js +6 -5
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dateTime.d.ts +2 -2
- package/admin/plugins/fields/dateTime.js +58 -48
- package/admin/plugins/fields/dateTime.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +11 -0
- package/admin/plugins/fields/dynamicZone/AddTemplate.js +114 -0
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -0
- package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -0
- package/admin/plugins/fields/dynamicZone/DynamicZone.js +82 -0
- package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -0
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +11 -0
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +127 -0
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -0
- package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +9 -0
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js +174 -0
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -0
- package/admin/plugins/fields/dynamicZone/commonValidators.d.ts +2 -0
- package/admin/plugins/fields/dynamicZone/commonValidators.js +26 -0
- package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -0
- package/admin/plugins/fields/dynamicZone.d.ts +2 -0
- package/admin/plugins/fields/dynamicZone.js +97 -0
- package/admin/plugins/fields/dynamicZone.js.map +1 -0
- package/admin/plugins/fields/file.d.ts +2 -2
- package/admin/plugins/fields/file.js +6 -5
- package/admin/plugins/fields/file.js.map +1 -1
- package/admin/plugins/fields/longText.d.ts +2 -2
- package/admin/plugins/fields/longText.js +4 -3
- package/admin/plugins/fields/longText.js.map +1 -1
- package/admin/plugins/fields/number.d.ts +2 -2
- package/admin/plugins/fields/number.js +6 -5
- package/admin/plugins/fields/number.js.map +1 -1
- package/admin/plugins/fields/object/ObjectFields.d.ts +2 -2
- package/admin/plugins/fields/object/ObjectFields.js +3 -3
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
- package/admin/plugins/fields/object.d.ts +2 -2
- package/admin/plugins/fields/object.js +9 -4
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref.d.ts +2 -2
- package/admin/plugins/fields/ref.js +108 -100
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/fields/richText.d.ts +2 -2
- package/admin/plugins/fields/richText.js +6 -5
- package/admin/plugins/fields/richText.js.map +1 -1
- package/admin/plugins/fields/text.d.ts +2 -2
- package/admin/plugins/fields/text.js +4 -3
- package/admin/plugins/fields/text.js.map +1 -1
- package/admin/plugins/index.d.ts +28 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.js +2 -7
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +11 -17
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.d.ts +1 -2
- package/admin/plugins/transformers/dateTransformer.js +3 -3
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/plugins/transformers/dynamicZoneTransformer.d.ts +2 -0
- package/admin/plugins/transformers/dynamicZoneTransformer.js +45 -0
- package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -0
- package/admin/plugins/transformers/index.js +5 -5
- package/admin/plugins/transformers/index.js.map +1 -1
- package/admin/plugins/transformers/numberTransformer.d.ts +1 -2
- package/admin/plugins/transformers/numberTransformer.js +3 -3
- package/admin/plugins/transformers/numberTransformer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +6 -2
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +4 -4
- package/admin/views/contentEntries/ContentEntriesContext.js +1 -9
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +23 -8
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +19 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +60 -60
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js +5 -1
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +3 -80
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +3 -84
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/prepareFormData.d.ts +2 -2
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +0 -8
- package/admin/views/contentEntries/ContentEntry/useRevision.js +10 -122
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js +0 -2
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +2 -2
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js +27 -14
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntries.js +7 -1
- package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +2 -2
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.js +4 -17
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModelEditor.js +2 -2
- package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +5 -17
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/viewsGraphql.js +1 -1
- package/admin/viewsGraphql.js.map +1 -1
- package/allPlugins.d.ts +34 -0
- package/allPlugins.js +95 -0
- package/allPlugins.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +15 -1
- package/index.js.map +1 -1
- package/package.json +29 -29
- package/{types.d.ts → types/index.d.ts} +59 -176
- package/types/index.js +44 -0
- package/types/index.js.map +1 -0
- package/types/model.d.ts +83 -0
- package/{types.js → types/model.js} +0 -0
- package/types/model.js.map +1 -0
- package/types/shared.d.ts +5 -0
- package/types/shared.js +5 -0
- package/types/shared.js.map +1 -0
- package/types/validation.d.ts +70 -0
- package/types/validation.js +5 -0
- package/types/validation.js.map +1 -0
- package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +15 -0
- package/utils/CmsModelFieldValidatorConfigAdapter.js +91 -0
- package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -0
- package/utils/createTypeName.d.ts +1 -0
- package/utils/createTypeName.js +18 -0
- package/utils/createTypeName.js.map +1 -0
- package/utils/createValidators.d.ts +3 -0
- package/{admin/components/ContentEntryForm/functions → utils}/createValidators.js +37 -16
- package/utils/createValidators.js.map +1 -0
- package/utils/getFetchPolicy.d.ts +6 -0
- package/utils/getFetchPolicy.js +19 -0
- package/utils/getFetchPolicy.js.map +1 -0
- package/utils/getModelTitleFieldId.d.ts +2 -0
- package/utils/getModelTitleFieldId.js +16 -0
- package/utils/getModelTitleFieldId.js.map +1 -0
- package/admin/components/ContentEntryForm/functions/createValidators.d.ts +0 -3
- package/admin/components/ContentEntryForm/functions/createValidators.js.map +0 -1
- package/admin/components/ContentModelEditor/Context.js.map +0 -1
- package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +0 -1
- package/admin/components/ContentModelEditor/useContentModelEditor.js.map +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +0 -15
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +0 -148
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +0 -1
- package/admin/components/FieldEditor/useFieldEditor.d.ts +0 -1
- package/admin/components/FieldEditor/useFieldEditor.js +0 -14
- package/admin/components/FieldEditor/useFieldEditor.js.map +0 -1
- package/admin/plugins/validators/dateGte.d.ts +0 -3
- package/admin/plugins/validators/dateGte.js +0 -68
- package/admin/plugins/validators/dateGte.js.map +0 -1
- package/admin/plugins/validators/dateLte.d.ts +0 -3
- package/admin/plugins/validators/dateLte.js +0 -68
- package/admin/plugins/validators/dateLte.js.map +0 -1
- package/admin/plugins/validators/gte.d.ts +0 -3
- package/admin/plugins/validators/gte.js +0 -57
- package/admin/plugins/validators/gte.js.map +0 -1
- package/admin/plugins/validators/in.d.ts +0 -3
- package/admin/plugins/validators/in.js +0 -57
- package/admin/plugins/validators/in.js.map +0 -1
- package/admin/plugins/validators/lte.d.ts +0 -3
- package/admin/plugins/validators/lte.js +0 -57
- package/admin/plugins/validators/lte.js.map +0 -1
- package/admin/plugins/validators/maxLength.d.ts +0 -3
- package/admin/plugins/validators/maxLength.js +0 -57
- package/admin/plugins/validators/maxLength.js.map +0 -1
- package/admin/plugins/validators/minLength.d.ts +0 -3
- package/admin/plugins/validators/minLength.js +0 -57
- package/admin/plugins/validators/minLength.js.map +0 -1
- package/admin/plugins/validators/pattern.d.ts +0 -3
- package/admin/plugins/validators/pattern.js +0 -77
- package/admin/plugins/validators/pattern.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/email.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/email.js +0 -17
- package/admin/plugins/validators/patternPlugins/email.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/lowerCase.js +0 -17
- package/admin/plugins/validators/patternPlugins/lowerCase.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +0 -17
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/upperCase.js +0 -17
- package/admin/plugins/validators/patternPlugins/upperCase.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +0 -17
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +0 -1
- package/admin/plugins/validators/patternPlugins/url.d.ts +0 -3
- package/admin/plugins/validators/patternPlugins/url.js +0 -17
- package/admin/plugins/validators/patternPlugins/url.js.map +0 -1
- package/admin/plugins/validators/required.d.ts +0 -3
- package/admin/plugins/validators/required.js +0 -21
- package/admin/plugins/validators/required.js.map +0 -1
- package/admin/plugins/validators/timeGte.d.ts +0 -3
- package/admin/plugins/validators/timeGte.js +0 -59
- package/admin/plugins/validators/timeGte.js.map +0 -1
- package/admin/plugins/validators/timeLte.d.ts +0 -3
- package/admin/plugins/validators/timeLte.js +0 -59
- package/admin/plugins/validators/timeLte.js.map +0 -1
- package/admin/plugins/validators/unique.d.ts +0 -7
- package/admin/plugins/validators/unique.js +0 -50
- package/admin/plugins/validators/unique.js.map +0 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/rule-24px.svg +0 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/emoji_people-24px.svg +0 -1
- package/admin/views/contentModelGroups/IconPicker.d.ts +0 -8
- package/admin/views/contentModelGroups/IconPicker.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.AddTemplateIcon = exports.AddTemplateButton = void 0;
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
17
|
+
|
|
18
|
+
var _Button = require("@webiny/ui/Button");
|
|
19
|
+
|
|
20
|
+
var _TemplateDialog = require("./TemplateDialog");
|
|
21
|
+
|
|
22
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
23
|
+
|
|
24
|
+
var _info = require("@material-design-icons/svg/outlined/info.svg");
|
|
25
|
+
|
|
26
|
+
var _add_circle_outline = require("@material-design-icons/svg/round/add_circle_outline.svg");
|
|
27
|
+
|
|
28
|
+
var _Elevation = require("@webiny/ui/Elevation");
|
|
29
|
+
|
|
30
|
+
var AddTemplateButtonContainer = /*#__PURE__*/(0, _styled.default)(_Elevation.Elevation, {
|
|
31
|
+
label: "AddTemplateButtonContainer",
|
|
32
|
+
target: "e34m0te0"
|
|
33
|
+
})("padding:25px 0 20px;text-align:center;");
|
|
34
|
+
/**
|
|
35
|
+
* This hacking is needed to position the button exactly in the middle of available area and not stretch the parent element.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
var AddTemplateIconContainer = /*#__PURE__*/(0, _styled.default)("div", {
|
|
39
|
+
label: "AddTemplateIconContainer",
|
|
40
|
+
target: "e34m0te1"
|
|
41
|
+
})("text-align:center;height:36px;> button{margin-left:-24px;position:absolute;}");
|
|
42
|
+
var Info = /*#__PURE__*/(0, _styled.default)("div", {
|
|
43
|
+
label: "Info",
|
|
44
|
+
target: "e34m0te2"
|
|
45
|
+
})("margin-top:8px;display:flex;justify-content:center;align-items:center;> svg{width:20px;margin-right:5px;}");
|
|
46
|
+
|
|
47
|
+
function useAddTemplate(params) {
|
|
48
|
+
var _useState = (0, _react.useState)(false),
|
|
49
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
50
|
+
showTemplateDialog = _useState2[0],
|
|
51
|
+
setShowTemplateDialog = _useState2[1];
|
|
52
|
+
|
|
53
|
+
var addTemplate = function addTemplate() {
|
|
54
|
+
setShowTemplateDialog(true);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var onTemplate = function onTemplate(template) {
|
|
58
|
+
params.onTemplate(template);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var onDialogClose = function onDialogClose() {
|
|
62
|
+
setShowTemplateDialog(false);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
return {
|
|
66
|
+
addTemplate: addTemplate,
|
|
67
|
+
onTemplate: onTemplate,
|
|
68
|
+
onDialogClose: onDialogClose,
|
|
69
|
+
showTemplateDialog: showTemplateDialog
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
var AddTemplateButton = function AddTemplateButton(props) {
|
|
74
|
+
var _useAddTemplate = useAddTemplate({
|
|
75
|
+
onTemplate: props.onTemplate
|
|
76
|
+
}),
|
|
77
|
+
addTemplate = _useAddTemplate.addTemplate,
|
|
78
|
+
onTemplate = _useAddTemplate.onTemplate,
|
|
79
|
+
showTemplateDialog = _useAddTemplate.showTemplateDialog,
|
|
80
|
+
onDialogClose = _useAddTemplate.onDialogClose;
|
|
81
|
+
|
|
82
|
+
return /*#__PURE__*/_react.default.createElement(AddTemplateButtonContainer, {
|
|
83
|
+
z: 2
|
|
84
|
+
}, showTemplateDialog ? /*#__PURE__*/_react.default.createElement(_TemplateDialog.TemplateDialog, {
|
|
85
|
+
onTemplate: onTemplate,
|
|
86
|
+
onClose: onDialogClose
|
|
87
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_Button.ButtonSecondary, {
|
|
88
|
+
onClick: addTemplate
|
|
89
|
+
}, "+ Add a template"), /*#__PURE__*/_react.default.createElement(Info, null, /*#__PURE__*/_react.default.createElement(_info.ReactComponent, null), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
90
|
+
use: "caption"
|
|
91
|
+
}, "Click here to learn how templates and dynamic zones work")));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
exports.AddTemplateButton = AddTemplateButton;
|
|
95
|
+
|
|
96
|
+
var AddTemplateIcon = function AddTemplateIcon(props) {
|
|
97
|
+
var _useAddTemplate2 = useAddTemplate({
|
|
98
|
+
onTemplate: props.onTemplate
|
|
99
|
+
}),
|
|
100
|
+
addTemplate = _useAddTemplate2.addTemplate,
|
|
101
|
+
onTemplate = _useAddTemplate2.onTemplate,
|
|
102
|
+
showTemplateDialog = _useAddTemplate2.showTemplateDialog,
|
|
103
|
+
onDialogClose = _useAddTemplate2.onDialogClose;
|
|
104
|
+
|
|
105
|
+
return /*#__PURE__*/_react.default.createElement(AddTemplateIconContainer, null, showTemplateDialog ? /*#__PURE__*/_react.default.createElement(_TemplateDialog.TemplateDialog, {
|
|
106
|
+
onTemplate: onTemplate,
|
|
107
|
+
onClose: onDialogClose
|
|
108
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
109
|
+
onClick: addTemplate,
|
|
110
|
+
icon: /*#__PURE__*/_react.default.createElement(_add_circle_outline.ReactComponent, null)
|
|
111
|
+
}));
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
exports.AddTemplateIcon = AddTemplateIcon;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AddTemplateButtonContainer","styled","Elevation","AddTemplateIconContainer","Info","useAddTemplate","params","useState","showTemplateDialog","setShowTemplateDialog","addTemplate","onTemplate","template","onDialogClose","AddTemplateButton","props","AddTemplateIcon"],"sources":["AddTemplate.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { ButtonSecondary, IconButton } from \"@webiny/ui/Button\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as InfoIcon } from \"@material-design-icons/svg/outlined/info.svg\";\nimport { ReactComponent as AddIcon } from \"@material-design-icons/svg/round/add_circle_outline.svg\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\n\nconst AddTemplateButtonContainer = styled(Elevation)`\n padding: 25px 0 20px;\n text-align: center;\n`;\n\n/**\n * This hacking is needed to position the button exactly in the middle of available area and not stretch the parent element.\n */\nconst AddTemplateIconContainer = styled.div`\n text-align: center;\n height: 36px;\n > button {\n margin-left: -24px;\n position: absolute;\n }\n`;\n\nconst Info = styled.div`\n margin-top: 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n > svg {\n width: 20px;\n margin-right: 5px;\n }\n`;\n\ninterface AddTemplateProps {\n onTemplate: UseAddTemplateParams[\"onTemplate\"];\n}\n\ninterface UseAddTemplateParams {\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nfunction useAddTemplate(params: UseAddTemplateParams) {\n const [showTemplateDialog, setShowTemplateDialog] = useState(false);\n\n const addTemplate = () => {\n setShowTemplateDialog(true);\n };\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n params.onTemplate(template);\n };\n\n const onDialogClose = () => {\n setShowTemplateDialog(false);\n };\n\n return {\n addTemplate,\n onTemplate,\n onDialogClose,\n showTemplateDialog\n };\n}\n\nexport const AddTemplateButton = (props: AddTemplateProps) => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateButtonContainer z={2}>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <ButtonSecondary onClick={addTemplate}>+ Add a template</ButtonSecondary>\n <Info>\n <InfoIcon />\n <Typography use={\"caption\"}>\n Click here to learn how templates and dynamic zones work\n </Typography>\n </Info>\n </AddTemplateButtonContainer>\n );\n};\n\nexport const AddTemplateIcon = (props: AddTemplateProps) => {\n const { addTemplate, onTemplate, showTemplateDialog, onDialogClose } = useAddTemplate({\n onTemplate: props.onTemplate\n });\n\n return (\n <AddTemplateIconContainer>\n {showTemplateDialog ? (\n <TemplateDialog onTemplate={onTemplate} onClose={onDialogClose} />\n ) : null}\n <IconButton onClick={addTemplate} icon={<AddIcon />} />\n </AddTemplateIconContainer>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,0BAA0B,oBAAGC,eAAH,EAAUC,oBAAV;EAAA;EAAA;AAAA,4CAAhC;AAKA;AACA;AACA;;AACA,IAAMC,wBAAwB,oBAAGF,eAAH;EAAA;EAAA;AAAA,kFAA9B;AASA,IAAMG,IAAI,oBAAGH,eAAH;EAAA;EAAA;AAAA,+GAAV;;AAmBA,SAASI,cAAT,CAAwBC,MAAxB,EAAsD;EAClD,gBAAoD,IAAAC,eAAA,EAAS,KAAT,CAApD;EAAA;EAAA,IAAOC,kBAAP;EAAA,IAA2BC,qBAA3B;;EAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;IACtBD,qBAAqB,CAAC,IAAD,CAArB;EACH,CAFD;;EAIA,IAAME,UAAU,GAAG,SAAbA,UAAa,CAACC,QAAD,EAAsC;IACrDN,MAAM,CAACK,UAAP,CAAkBC,QAAlB;EACH,CAFD;;EAIA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;IACxBJ,qBAAqB,CAAC,KAAD,CAArB;EACH,CAFD;;EAIA,OAAO;IACHC,WAAW,EAAXA,WADG;IAEHC,UAAU,EAAVA,UAFG;IAGHE,aAAa,EAAbA,aAHG;IAIHL,kBAAkB,EAAlBA;EAJG,CAAP;AAMH;;AAEM,IAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAA6B;EAC1D,sBAAuEV,cAAc,CAAC;IAClFM,UAAU,EAAEI,KAAK,CAACJ;EADgE,CAAD,CAArF;EAAA,IAAQD,WAAR,mBAAQA,WAAR;EAAA,IAAqBC,UAArB,mBAAqBA,UAArB;EAAA,IAAiCH,kBAAjC,mBAAiCA,kBAAjC;EAAA,IAAqDK,aAArD,mBAAqDA,aAArD;;EAIA,oBACI,6BAAC,0BAAD;IAA4B,CAAC,EAAE;EAA/B,GACKL,kBAAkB,gBACf,6BAAC,8BAAD;IAAgB,UAAU,EAAEG,UAA5B;IAAwC,OAAO,EAAEE;EAAjD,EADe,GAEf,IAHR,eAII,6BAAC,uBAAD;IAAiB,OAAO,EAAEH;EAA1B,sBAJJ,eAKI,6BAAC,IAAD,qBACI,6BAAC,oBAAD,OADJ,eAEI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,8DAFJ,CALJ,CADJ;AAcH,CAnBM;;;;AAqBA,IAAMM,eAAe,GAAG,SAAlBA,eAAkB,CAACD,KAAD,EAA6B;EACxD,uBAAuEV,cAAc,CAAC;IAClFM,UAAU,EAAEI,KAAK,CAACJ;EADgE,CAAD,CAArF;EAAA,IAAQD,WAAR,oBAAQA,WAAR;EAAA,IAAqBC,UAArB,oBAAqBA,UAArB;EAAA,IAAiCH,kBAAjC,oBAAiCA,kBAAjC;EAAA,IAAqDK,aAArD,oBAAqDA,aAArD;;EAIA,oBACI,6BAAC,wBAAD,QACKL,kBAAkB,gBACf,6BAAC,8BAAD;IAAgB,UAAU,EAAEG,UAA5B;IAAwC,OAAO,EAAEE;EAAjD,EADe,GAEf,IAHR,eAII,6BAAC,kBAAD;IAAY,OAAO,EAAEH,WAArB;IAAkC,IAAI,eAAE,6BAAC,kCAAD;EAAxC,EAJJ,CADJ;AAQH,CAbM"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.DynamicZone = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _Accordion = require("@webiny/ui/Accordion");
|
|
19
|
+
|
|
20
|
+
var _AddTemplate = require("./AddTemplate");
|
|
21
|
+
|
|
22
|
+
var _DynamicZoneTemplate = require("./DynamicZoneTemplate");
|
|
23
|
+
|
|
24
|
+
var _hooks = require("../../../hooks");
|
|
25
|
+
|
|
26
|
+
function updateOrCreateTemplate(templates, template) {
|
|
27
|
+
var templateIndex = templates.findIndex(function (tpl) {
|
|
28
|
+
return tpl.id === template.id;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
if (templateIndex > -1) {
|
|
32
|
+
return [].concat((0, _toConsumableArray2.default)(templates.slice(0, templateIndex)), [template], (0, _toConsumableArray2.default)(templates.slice(templateIndex + 1)));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return [].concat((0, _toConsumableArray2.default)(templates), [template]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var DynamicZone = function DynamicZone() {
|
|
39
|
+
var _field$settings;
|
|
40
|
+
|
|
41
|
+
var _useModelField = (0, _hooks.useModelField)(),
|
|
42
|
+
field = _useModelField.field;
|
|
43
|
+
|
|
44
|
+
var _useModelFieldEditor = (0, _hooks.useModelFieldEditor)(),
|
|
45
|
+
updateField = _useModelFieldEditor.updateField;
|
|
46
|
+
|
|
47
|
+
var newTemplateId = (0, _react.useRef)(undefined);
|
|
48
|
+
var templates = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
|
|
49
|
+
|
|
50
|
+
var onTemplate = function onTemplate(template) {
|
|
51
|
+
var _field$settings2;
|
|
52
|
+
|
|
53
|
+
var templates = ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.templates) || [];
|
|
54
|
+
newTemplateId.current = template.id;
|
|
55
|
+
updateField((0, _objectSpread2.default)((0, _objectSpread2.default)({}, field), {}, {
|
|
56
|
+
settings: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, field.settings || {}), {}, {
|
|
57
|
+
templates: updateOrCreateTemplate(templates, template)
|
|
58
|
+
})
|
|
59
|
+
}));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
(0, _react.useEffect)(function () {
|
|
63
|
+
// We only want to open the accordion item on first mount of a new template.
|
|
64
|
+
newTemplateId.current = undefined;
|
|
65
|
+
}, []);
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, templates.length ? /*#__PURE__*/_react.default.createElement(_Accordion.Accordion, null, templates.map(function (template, index) {
|
|
67
|
+
return /*#__PURE__*/_react.default.createElement(_DynamicZoneTemplate.DynamicZoneTemplate, {
|
|
68
|
+
key: template.id,
|
|
69
|
+
open: template.id === newTemplateId.current,
|
|
70
|
+
index: index,
|
|
71
|
+
field: field,
|
|
72
|
+
template: template,
|
|
73
|
+
onChange: updateField
|
|
74
|
+
});
|
|
75
|
+
})) : null, templates.length ? /*#__PURE__*/_react.default.createElement(_AddTemplate.AddTemplateIcon, {
|
|
76
|
+
onTemplate: onTemplate
|
|
77
|
+
}) : /*#__PURE__*/_react.default.createElement(_AddTemplate.AddTemplateButton, {
|
|
78
|
+
onTemplate: onTemplate
|
|
79
|
+
}));
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.DynamicZone = DynamicZone;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["updateOrCreateTemplate","templates","template","templateIndex","findIndex","tpl","id","slice","DynamicZone","useModelField","field","useModelFieldEditor","updateField","newTemplateId","useRef","undefined","settings","onTemplate","current","useEffect","length","map","index"],"sources":["DynamicZone.tsx"],"sourcesContent":["import React, { useRef, useEffect } from \"react\";\nimport { Accordion } from \"@webiny/ui/Accordion\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { AddTemplateIcon, AddTemplateButton } from \"./AddTemplate\";\nimport { DynamicZoneTemplate } from \"./DynamicZoneTemplate\";\nimport { useModelField, useModelFieldEditor } from \"~/admin/hooks\";\n\nfunction updateOrCreateTemplate(\n templates: CmsDynamicZoneTemplate[],\n template: CmsDynamicZoneTemplate\n) {\n const templateIndex = templates.findIndex(tpl => tpl.id === template.id);\n\n if (templateIndex > -1) {\n return [\n ...templates.slice(0, templateIndex),\n template,\n ...templates.slice(templateIndex + 1)\n ];\n }\n\n return [...templates, template];\n}\n\nexport const DynamicZone = () => {\n const { field } = useModelField();\n const { updateField } = useModelFieldEditor();\n const newTemplateId = useRef<string | undefined>(undefined);\n\n const templates: CmsDynamicZoneTemplate[] = field.settings?.templates || [];\n\n const onTemplate = (template: CmsDynamicZoneTemplate) => {\n const templates = field.settings?.templates || [];\n\n newTemplateId.current = template.id;\n\n updateField({\n ...field,\n settings: {\n ...(field.settings || {}),\n templates: updateOrCreateTemplate(templates, template)\n }\n });\n };\n\n useEffect(() => {\n // We only want to open the accordion item on first mount of a new template.\n newTemplateId.current = undefined;\n }, []);\n\n return (\n <>\n {templates.length ? (\n <Accordion>\n {templates.map((template, index) => (\n <DynamicZoneTemplate\n key={template.id}\n open={template.id === newTemplateId.current}\n index={index}\n field={field}\n template={template}\n onChange={updateField}\n />\n ))}\n </Accordion>\n ) : null}\n {templates.length ? (\n <AddTemplateIcon onTemplate={onTemplate} />\n ) : (\n <AddTemplateButton onTemplate={onTemplate} />\n )}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AAEA,SAASA,sBAAT,CACIC,SADJ,EAEIC,QAFJ,EAGE;EACE,IAAMC,aAAa,GAAGF,SAAS,CAACG,SAAV,CAAoB,UAAAC,GAAG;IAAA,OAAIA,GAAG,CAACC,EAAJ,KAAWJ,QAAQ,CAACI,EAAxB;EAAA,CAAvB,CAAtB;;EAEA,IAAIH,aAAa,GAAG,CAAC,CAArB,EAAwB;IACpB,kDACOF,SAAS,CAACM,KAAV,CAAgB,CAAhB,EAAmBJ,aAAnB,CADP,IAEID,QAFJ,oCAGOD,SAAS,CAACM,KAAV,CAAgBJ,aAAa,GAAG,CAAhC,CAHP;EAKH;;EAED,kDAAWF,SAAX,IAAsBC,QAAtB;AACH;;AAEM,IAAMM,WAAW,GAAG,SAAdA,WAAc,GAAM;EAAA;;EAC7B,qBAAkB,IAAAC,oBAAA,GAAlB;EAAA,IAAQC,KAAR,kBAAQA,KAAR;;EACA,2BAAwB,IAAAC,0BAAA,GAAxB;EAAA,IAAQC,WAAR,wBAAQA,WAAR;;EACA,IAAMC,aAAa,GAAG,IAAAC,aAAA,EAA2BC,SAA3B,CAAtB;EAEA,IAAMd,SAAmC,GAAG,oBAAAS,KAAK,CAACM,QAAN,oEAAgBf,SAAhB,KAA6B,EAAzE;;EAEA,IAAMgB,UAAU,GAAG,SAAbA,UAAa,CAACf,QAAD,EAAsC;IAAA;;IACrD,IAAMD,SAAS,GAAG,qBAAAS,KAAK,CAACM,QAAN,sEAAgBf,SAAhB,KAA6B,EAA/C;IAEAY,aAAa,CAACK,OAAd,GAAwBhB,QAAQ,CAACI,EAAjC;IAEAM,WAAW,6DACJF,KADI;MAEPM,QAAQ,8DACAN,KAAK,CAACM,QAAN,IAAkB,EADlB;QAEJf,SAAS,EAAED,sBAAsB,CAACC,SAAD,EAAYC,QAAZ;MAF7B;IAFD,GAAX;EAOH,CAZD;;EAcA,IAAAiB,gBAAA,EAAU,YAAM;IACZ;IACAN,aAAa,CAACK,OAAd,GAAwBH,SAAxB;EACH,CAHD,EAGG,EAHH;EAKA,oBACI,4DACKd,SAAS,CAACmB,MAAV,gBACG,6BAAC,oBAAD,QACKnB,SAAS,CAACoB,GAAV,CAAc,UAACnB,QAAD,EAAWoB,KAAX;IAAA,oBACX,6BAAC,wCAAD;MACI,GAAG,EAAEpB,QAAQ,CAACI,EADlB;MAEI,IAAI,EAAEJ,QAAQ,CAACI,EAAT,KAAgBO,aAAa,CAACK,OAFxC;MAGI,KAAK,EAAEI,KAHX;MAII,KAAK,EAAEZ,KAJX;MAKI,QAAQ,EAAER,QALd;MAMI,QAAQ,EAAEU;IANd,EADW;EAAA,CAAd,CADL,CADH,GAaG,IAdR,EAeKX,SAAS,CAACmB,MAAV,gBACG,6BAAC,4BAAD;IAAiB,UAAU,EAAEH;EAA7B,EADH,gBAGG,6BAAC,8BAAD;IAAmB,UAAU,EAAEA;EAA/B,EAlBR,CADJ;AAuBH,CAjDM"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CmsDynamicZoneTemplate, CmsModelField } from "../../../../types";
|
|
3
|
+
interface DynamicZoneTemplateProps {
|
|
4
|
+
index: number;
|
|
5
|
+
field: CmsModelField;
|
|
6
|
+
template: CmsDynamicZoneTemplate;
|
|
7
|
+
onChange: (field: CmsModelField) => void;
|
|
8
|
+
open: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const DynamicZoneTemplate: ({ index, field, template, onChange, open }: DynamicZoneTemplateProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.DynamicZoneTemplate = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _dotPropImmutable = require("dot-prop-immutable");
|
|
19
|
+
|
|
20
|
+
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
21
|
+
|
|
22
|
+
var _edit = require("@material-design-icons/svg/outlined/edit.svg");
|
|
23
|
+
|
|
24
|
+
var _delete_outline = require("@material-design-icons/svg/outlined/delete_outline.svg");
|
|
25
|
+
|
|
26
|
+
var _expand_less = require("@material-design-icons/svg/round/expand_less.svg");
|
|
27
|
+
|
|
28
|
+
var _expand_more = require("@material-design-icons/svg/round/expand_more.svg");
|
|
29
|
+
|
|
30
|
+
var _Accordion = require("@webiny/ui/Accordion");
|
|
31
|
+
|
|
32
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
33
|
+
|
|
34
|
+
var _arrayUtils = require("../../arrayUtils");
|
|
35
|
+
|
|
36
|
+
var _TemplateDialog = require("./TemplateDialog");
|
|
37
|
+
|
|
38
|
+
var _FieldEditor = require("../../../components/FieldEditor");
|
|
39
|
+
|
|
40
|
+
var TEMPLATES_PATH = "settings.templates";
|
|
41
|
+
|
|
42
|
+
var DynamicZoneTemplate = function DynamicZoneTemplate(_ref) {
|
|
43
|
+
var _field$settings;
|
|
44
|
+
|
|
45
|
+
var index = _ref.index,
|
|
46
|
+
field = _ref.field,
|
|
47
|
+
template = _ref.template,
|
|
48
|
+
onChange = _ref.onChange,
|
|
49
|
+
open = _ref.open;
|
|
50
|
+
|
|
51
|
+
var _useConfirmationDialo = (0, _appAdmin.useConfirmationDialog)({
|
|
52
|
+
title: "Delete content template",
|
|
53
|
+
message: "Are you sure you want to delete this content template?",
|
|
54
|
+
acceptLabel: "Yes, I'm sure!"
|
|
55
|
+
}),
|
|
56
|
+
showConfirmation = _useConfirmationDialo.showConfirmation;
|
|
57
|
+
|
|
58
|
+
var _useState = (0, _react.useState)(undefined),
|
|
59
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
60
|
+
templateToEdit = _useState2[0],
|
|
61
|
+
setTemplateToEdit = _useState2[1];
|
|
62
|
+
|
|
63
|
+
var templates = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates) || [];
|
|
64
|
+
var isFirst = index === 0;
|
|
65
|
+
var isLast = index === templates.length - 1;
|
|
66
|
+
var callbackDeps = [onChange, field, index, template.id];
|
|
67
|
+
var onDialogClose = (0, _react.useCallback)(function () {
|
|
68
|
+
setTemplateToEdit(undefined);
|
|
69
|
+
}, []);
|
|
70
|
+
var editTemplate = (0, _react.useCallback)(function () {
|
|
71
|
+
setTemplateToEdit(template);
|
|
72
|
+
}, [template]);
|
|
73
|
+
var updateTemplate = (0, _react.useCallback)(function (params) {
|
|
74
|
+
onChange((0, _dotPropImmutable.set)(field, "".concat(TEMPLATES_PATH, ".").concat(index), function (tpl) {
|
|
75
|
+
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, tpl), params);
|
|
76
|
+
}));
|
|
77
|
+
}, callbackDeps);
|
|
78
|
+
var updateFieldsAndLayout = (0, _react.useCallback)(function (params) {
|
|
79
|
+
updateTemplate((0, _objectSpread2.default)((0, _objectSpread2.default)({}, template), params));
|
|
80
|
+
}, [updateTemplate]);
|
|
81
|
+
var moveTemplateUp = (0, _react.useCallback)(function () {
|
|
82
|
+
onChange((0, _dotPropImmutable.set)(field, TEMPLATES_PATH, (0, _arrayUtils.pullValueAtIndex)(templates, index)));
|
|
83
|
+
}, callbackDeps);
|
|
84
|
+
var moveTemplateDown = (0, _react.useCallback)(function () {
|
|
85
|
+
onChange((0, _dotPropImmutable.set)(field, TEMPLATES_PATH, (0, _arrayUtils.pushValueAtIndex)(templates, index)));
|
|
86
|
+
}, callbackDeps);
|
|
87
|
+
var deleteTemplate = (0, _react.useCallback)(function () {
|
|
88
|
+
showConfirmation(function () {
|
|
89
|
+
onChange((0, _dotPropImmutable.set)(field, TEMPLATES_PATH, (0, _arrayUtils.removeValueAtIndex)(templates, index)));
|
|
90
|
+
});
|
|
91
|
+
}, callbackDeps);
|
|
92
|
+
var icon = template.icon ? template.icon.split("/") : undefined;
|
|
93
|
+
return /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem, {
|
|
94
|
+
title: template.name,
|
|
95
|
+
description: template.description,
|
|
96
|
+
icon: icon ? /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
97
|
+
icon: icon
|
|
98
|
+
}) : undefined,
|
|
99
|
+
open: open,
|
|
100
|
+
actions: /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Actions, null, /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
|
|
101
|
+
icon: /*#__PURE__*/_react.default.createElement(_expand_less.ReactComponent, null),
|
|
102
|
+
onClick: moveTemplateUp,
|
|
103
|
+
disabled: isFirst
|
|
104
|
+
}), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
|
|
105
|
+
icon: /*#__PURE__*/_react.default.createElement(_expand_more.ReactComponent, null),
|
|
106
|
+
onClick: moveTemplateDown,
|
|
107
|
+
disabled: isLast
|
|
108
|
+
}), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Divider, null), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
|
|
109
|
+
icon: /*#__PURE__*/_react.default.createElement(_edit.ReactComponent, null),
|
|
110
|
+
onClick: editTemplate
|
|
111
|
+
}), /*#__PURE__*/_react.default.createElement(_Accordion.AccordionItem.Action, {
|
|
112
|
+
icon: /*#__PURE__*/_react.default.createElement(_delete_outline.ReactComponent, null),
|
|
113
|
+
onClick: deleteTemplate
|
|
114
|
+
}))
|
|
115
|
+
}, templateToEdit ? /*#__PURE__*/_react.default.createElement(_TemplateDialog.TemplateDialog, {
|
|
116
|
+
template: templateToEdit,
|
|
117
|
+
onTemplate: updateTemplate,
|
|
118
|
+
onClose: onDialogClose
|
|
119
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_FieldEditor.FieldEditor, {
|
|
120
|
+
parent: field,
|
|
121
|
+
fields: template.fields,
|
|
122
|
+
layout: template.layout,
|
|
123
|
+
onChange: updateFieldsAndLayout
|
|
124
|
+
}));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
exports.DynamicZoneTemplate = DynamicZoneTemplate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TEMPLATES_PATH","DynamicZoneTemplate","index","field","template","onChange","open","useConfirmationDialog","title","message","acceptLabel","showConfirmation","useState","undefined","templateToEdit","setTemplateToEdit","templates","settings","isFirst","isLast","length","callbackDeps","id","onDialogClose","useCallback","editTemplate","updateTemplate","params","set","tpl","updateFieldsAndLayout","moveTemplateUp","pullValueAtIndex","moveTemplateDown","pushValueAtIndex","deleteTemplate","removeValueAtIndex","icon","split","name","description","fields","layout"],"sources":["DynamicZoneTemplate.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete_outline.svg\";\nimport { ReactComponent as ArrowUpIcon } from \"@material-design-icons/svg/round/expand_less.svg\";\nimport { ReactComponent as ArrowDownIcon } from \"@material-design-icons/svg/round/expand_more.svg\";\nimport { AccordionItem } from \"@webiny/ui/Accordion\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\nimport { pullValueAtIndex, pushValueAtIndex, removeValueAtIndex } from \"~/admin/plugins/arrayUtils\";\nimport { CmsDynamicZoneTemplate, CmsEditorFieldsLayout, CmsModelField } from \"~/types\";\nimport { TemplateDialog } from \"./TemplateDialog\";\nimport { FieldEditor } from \"~/admin/components/FieldEditor\";\n\ninterface DynamicZoneTemplateProps {\n index: number;\n field: CmsModelField;\n template: CmsDynamicZoneTemplate;\n onChange: (field: CmsModelField) => void;\n open: boolean;\n}\n\ninterface UpdateTemplate {\n (template: CmsDynamicZoneTemplate): void;\n}\n\ninterface UpdateFieldsAndLayout {\n (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }): void;\n}\n\nconst TEMPLATES_PATH = \"settings.templates\";\n\nexport const DynamicZoneTemplate = ({\n index,\n field,\n template,\n onChange,\n open\n}: DynamicZoneTemplateProps) => {\n const { showConfirmation } = useConfirmationDialog({\n title: \"Delete content template\",\n message: \"Are you sure you want to delete this content template?\",\n acceptLabel: \"Yes, I'm sure!\"\n });\n\n const [templateToEdit, setTemplateToEdit] = useState<CmsDynamicZoneTemplate | undefined>(\n undefined\n );\n\n const templates = field.settings?.templates || [];\n const isFirst = index === 0;\n const isLast = index === templates.length - 1;\n\n const callbackDeps = [onChange, field, index, template.id];\n\n const onDialogClose = useCallback(() => {\n setTemplateToEdit(undefined);\n }, []);\n\n const editTemplate = useCallback(() => {\n setTemplateToEdit(template);\n }, [template]);\n\n const updateTemplate = useCallback<UpdateTemplate>(params => {\n onChange(\n set(field, `${TEMPLATES_PATH}.${index}`, (tpl: CmsDynamicZoneTemplate) => {\n return { ...tpl, ...params };\n })\n );\n }, callbackDeps);\n\n const updateFieldsAndLayout = useCallback<UpdateFieldsAndLayout>(\n params => {\n updateTemplate({ ...template, ...params });\n },\n [updateTemplate]\n );\n\n const moveTemplateUp = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pullValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const moveTemplateDown = useCallback(() => {\n onChange(set(field, TEMPLATES_PATH, pushValueAtIndex(templates, index)));\n }, callbackDeps);\n\n const deleteTemplate = useCallback(() => {\n showConfirmation(() => {\n onChange(set(field, TEMPLATES_PATH, removeValueAtIndex(templates, index)));\n });\n }, callbackDeps);\n\n const icon = template.icon ? (template.icon.split(\"/\") as IconProp) : undefined;\n\n return (\n <AccordionItem\n title={template.name}\n description={template.description}\n icon={icon ? <FontAwesomeIcon icon={icon} /> : undefined}\n open={open}\n actions={\n <AccordionItem.Actions>\n <AccordionItem.Action\n icon={<ArrowUpIcon />}\n onClick={moveTemplateUp}\n disabled={isFirst}\n />\n <AccordionItem.Action\n icon={<ArrowDownIcon />}\n onClick={moveTemplateDown}\n disabled={isLast}\n />\n <AccordionItem.Divider />\n <AccordionItem.Action icon={<EditIcon />} onClick={editTemplate} />\n <AccordionItem.Action icon={<DeleteIcon />} onClick={deleteTemplate} />\n </AccordionItem.Actions>\n }\n >\n {templateToEdit ? (\n <TemplateDialog\n template={templateToEdit}\n onTemplate={updateTemplate}\n onClose={onDialogClose}\n />\n ) : null}\n\n <FieldEditor\n parent={field}\n fields={template.fields}\n layout={template.layout}\n onChange={updateFieldsAndLayout}\n />\n </AccordionItem>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { CmsDynamicZoneTemplate } from "../../../../types";
|
|
3
|
+
interface TemplateDialogProps {
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
template?: CmsDynamicZoneTemplate;
|
|
6
|
+
onTemplate: (template: CmsDynamicZoneTemplate) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const TemplateDialog: (props: TemplateDialogProps) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.TemplateDialog = void 0;
|
|
11
|
+
|
|
12
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _Button = require("@webiny/ui/Button");
|
|
19
|
+
|
|
20
|
+
var _Grid = require("@webiny/ui/Grid");
|
|
21
|
+
|
|
22
|
+
var _Input = require("@webiny/ui/Input");
|
|
23
|
+
|
|
24
|
+
var _form = require("@webiny/form");
|
|
25
|
+
|
|
26
|
+
var _validation = require("@webiny/validation");
|
|
27
|
+
|
|
28
|
+
var _utils = require("@webiny/utils");
|
|
29
|
+
|
|
30
|
+
var _IconPicker = require("../../../components/IconPicker");
|
|
31
|
+
|
|
32
|
+
var _Dialog = require("../../../components/Dialog");
|
|
33
|
+
|
|
34
|
+
var _Alert = require("@webiny/ui/Alert");
|
|
35
|
+
|
|
36
|
+
var typeNameValidator = function typeNameValidator(value) {
|
|
37
|
+
var regex = new RegExp("^[A-Z]+[_0-9A-Za-z]+$");
|
|
38
|
+
|
|
39
|
+
if (regex.test(value)) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
throw Error("Must start with a capital letter, may contain numbers, and must not contain spaces.");
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var getGraphQLTypeName = function getGraphQLTypeName(value) {
|
|
47
|
+
var titleCase = value.charAt(0).toUpperCase() + value.slice(1);
|
|
48
|
+
return titleCase.replace(/[^a-zA-Z0-9]/g, "");
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var TemplateDialog = function TemplateDialog(props) {
|
|
52
|
+
var _useState = (0, _react.useState)(false),
|
|
53
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
54
|
+
showWarning = _useState2[0],
|
|
55
|
+
setWarning = _useState2[1];
|
|
56
|
+
|
|
57
|
+
var newTemplate = !Boolean(props.template);
|
|
58
|
+
var dialogTitle = newTemplate ? "Add Template" : "Edit Template";
|
|
59
|
+
var submitLabel = newTemplate ? "Add Template" : "Update Template";
|
|
60
|
+
|
|
61
|
+
var onSubmit = function onSubmit(template) {
|
|
62
|
+
if (template.id) {
|
|
63
|
+
props.onTemplate(template);
|
|
64
|
+
} else {
|
|
65
|
+
props.onTemplate((0, _objectSpread2.default)((0, _objectSpread2.default)({}, template), {}, {
|
|
66
|
+
id: (0, _utils.generateAlphaNumericLowerCaseId)(),
|
|
67
|
+
fields: [],
|
|
68
|
+
layout: []
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
props.onClose();
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var showGqlTypeNameWarning = function showGqlTypeNameWarning() {
|
|
76
|
+
setWarning(true);
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var hideGqlTypeNameWarning = function hideGqlTypeNameWarning() {
|
|
80
|
+
setWarning(false);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
var checkGqlType = function checkGqlType(data) {
|
|
84
|
+
var _props$template;
|
|
85
|
+
|
|
86
|
+
if (newTemplate) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (data.gqlTypeName !== ((_props$template = props.template) === null || _props$template === void 0 ? void 0 : _props$template.gqlTypeName)) {
|
|
91
|
+
showGqlTypeNameWarning();
|
|
92
|
+
} else {
|
|
93
|
+
hideGqlTypeNameWarning();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
var nameOnBlur = function nameOnBlur(form) {
|
|
98
|
+
return function () {
|
|
99
|
+
if (!form.data.gqlTypeName) {
|
|
100
|
+
/**
|
|
101
|
+
* There is a possibility that name is undefined, so let's check for it.
|
|
102
|
+
*/
|
|
103
|
+
var name = form.data.name;
|
|
104
|
+
|
|
105
|
+
if (!name) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
form.setValue("gqlTypeName", getGraphQLTypeName(name));
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
var onFormChange = function onFormChange(data, form) {
|
|
115
|
+
checkGqlType(data, form);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
return /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
|
|
119
|
+
open: true,
|
|
120
|
+
onClose: props.onClose
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
122
|
+
onSubmit: onSubmit,
|
|
123
|
+
data: props.template,
|
|
124
|
+
onChange: onFormChange
|
|
125
|
+
}, function (_ref) {
|
|
126
|
+
var Bind = _ref.Bind,
|
|
127
|
+
submit = _ref.submit,
|
|
128
|
+
form = _ref.form;
|
|
129
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, dialogTitle), /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, showWarning ? /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
130
|
+
span: 12
|
|
131
|
+
}, /*#__PURE__*/_react.default.createElement(_Alert.Alert, {
|
|
132
|
+
title: "GraphQL Schema Change",
|
|
133
|
+
type: "danger"
|
|
134
|
+
}, "You've changed the GraphQL schema type name! If your API is being queried by a 3rd party application, this will affect the GraphQL queries in those applications. Make sure your consumers are informed about this change!")) : null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
135
|
+
span: 12
|
|
136
|
+
}, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
137
|
+
name: "name",
|
|
138
|
+
validators: [_validation.validation.create("required")]
|
|
139
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.Input, {
|
|
140
|
+
label: "Name",
|
|
141
|
+
onBlur: nameOnBlur(form)
|
|
142
|
+
}))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
143
|
+
span: 12
|
|
144
|
+
}, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
145
|
+
name: "gqlTypeName",
|
|
146
|
+
validators: [_validation.validation.create("required"), typeNameValidator]
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.Input, {
|
|
148
|
+
autoFocus: false,
|
|
149
|
+
label: "GraphQL Type Name",
|
|
150
|
+
description: "This string will be used to generate the GraphQL schema. "
|
|
151
|
+
}))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
152
|
+
span: 12
|
|
153
|
+
}, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
154
|
+
name: "icon",
|
|
155
|
+
validators: [_validation.validation.create("required")]
|
|
156
|
+
}, /*#__PURE__*/_react.default.createElement(_IconPicker.IconPicker, {
|
|
157
|
+
label: "Icon"
|
|
158
|
+
}))), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
|
|
159
|
+
span: 12
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement(Bind, {
|
|
161
|
+
name: "description",
|
|
162
|
+
validators: [_validation.validation.create("required")]
|
|
163
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.Input, {
|
|
164
|
+
rows: 3,
|
|
165
|
+
label: "Description"
|
|
166
|
+
}))))), /*#__PURE__*/_react.default.createElement(_Dialog.DialogActions, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
|
|
167
|
+
onClick: props.onClose
|
|
168
|
+
}, "Cancel"), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
|
|
169
|
+
onClick: submit
|
|
170
|
+
}, submitLabel)));
|
|
171
|
+
}));
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
exports.TemplateDialog = TemplateDialog;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["typeNameValidator","value","regex","RegExp","test","Error","getGraphQLTypeName","titleCase","charAt","toUpperCase","slice","replace","TemplateDialog","props","useState","showWarning","setWarning","newTemplate","Boolean","template","dialogTitle","submitLabel","onSubmit","id","onTemplate","generateAlphaNumericLowerCaseId","fields","layout","onClose","showGqlTypeNameWarning","hideGqlTypeNameWarning","checkGqlType","data","gqlTypeName","nameOnBlur","form","name","setValue","onFormChange","Bind","submit","validation","create"],"sources":["TemplateDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { ButtonPrimary, ButtonDefault } from \"@webiny/ui/Button\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Form, FormAPI, FormOnSubmit } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsDynamicZoneTemplate } from \"~/types\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\nimport { IconPicker } from \"~/admin/components/IconPicker\";\nimport { Dialog, DialogTitle, DialogContent, DialogActions } from \"~/admin/components/Dialog\";\nimport { Alert } from \"@webiny/ui/Alert\";\n\nconst typeNameValidator = (value: string) => {\n const regex = new RegExp(\"^[A-Z]+[_0-9A-Za-z]+$\");\n if (regex.test(value)) {\n return true;\n }\n\n throw Error(\n `Must start with a capital letter, may contain numbers, and must not contain spaces.`\n );\n};\n\nconst getGraphQLTypeName = (value: string) => {\n const titleCase = value.charAt(0).toUpperCase() + value.slice(1);\n return titleCase.replace(/[^a-zA-Z0-9]/g, \"\");\n};\n\ninterface TemplateDialogProps {\n onClose: () => void;\n template?: CmsDynamicZoneTemplate;\n onTemplate: (template: CmsDynamicZoneTemplate) => void;\n}\n\nexport const TemplateDialog = (props: TemplateDialogProps) => {\n const [showWarning, setWarning] = useState(false);\n const newTemplate = !Boolean(props.template);\n const dialogTitle = newTemplate ? \"Add Template\" : \"Edit Template\";\n const submitLabel = newTemplate ? \"Add Template\" : \"Update Template\";\n\n const onSubmit: FormOnSubmit<CmsDynamicZoneTemplate> = template => {\n if (template.id) {\n props.onTemplate(template);\n } else {\n props.onTemplate({\n ...template,\n id: generateAlphaNumericLowerCaseId(),\n fields: [],\n layout: []\n });\n }\n props.onClose();\n };\n\n const showGqlTypeNameWarning = () => {\n setWarning(true);\n };\n\n const hideGqlTypeNameWarning = () => {\n setWarning(false);\n };\n\n const checkGqlType: FormOnSubmit<CmsDynamicZoneTemplate> = data => {\n if (newTemplate) {\n return;\n }\n\n if (data.gqlTypeName !== props.template?.gqlTypeName) {\n showGqlTypeNameWarning();\n } else {\n hideGqlTypeNameWarning();\n }\n };\n\n const nameOnBlur = (form: FormAPI<CmsDynamicZoneTemplate>) => () => {\n if (!form.data.gqlTypeName) {\n /**\n * There is a possibility that name is undefined, so let's check for it.\n */\n const name = form.data.name;\n if (!name) {\n return;\n }\n form.setValue(\"gqlTypeName\", getGraphQLTypeName(name));\n }\n };\n\n const onFormChange: FormOnSubmit<CmsDynamicZoneTemplate> = (data, form) => {\n checkGqlType(data, form);\n };\n\n return (\n <Dialog open={true} onClose={props.onClose}>\n <Form<CmsDynamicZoneTemplate>\n onSubmit={onSubmit}\n data={props.template}\n onChange={onFormChange}\n >\n {({ Bind, submit, form }) => (\n <>\n <DialogTitle>{dialogTitle}</DialogTitle>\n <DialogContent>\n <Grid>\n {showWarning ? (\n <Cell span={12}>\n <Alert title={\"GraphQL Schema Change\"} type={\"danger\"}>\n You've changed the GraphQL schema type name! If\n your API is being queried by a 3rd party application,\n this will affect the GraphQL queries in those\n applications. Make sure your consumers are informed\n about this change!\n </Alert>\n </Cell>\n ) : null}\n <Cell span={12}>\n <Bind\n name={\"name\"}\n validators={[validation.create(\"required\")]}\n >\n <Input label={\"Name\"} onBlur={nameOnBlur(form)} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"gqlTypeName\"}\n validators={[\n validation.create(\"required\"),\n typeNameValidator\n ]}\n >\n <Input\n autoFocus={false}\n label={\"GraphQL Type Name\"}\n description={\n \"This string will be used to generate the GraphQL schema. \"\n }\n />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"icon\"}\n validators={[validation.create(\"required\")]}\n >\n <IconPicker label={\"Icon\"} />\n </Bind>\n </Cell>\n <Cell span={12}>\n <Bind\n name={\"description\"}\n validators={[validation.create(\"required\")]}\n >\n <Input rows={3} label={\"Description\"} />\n </Bind>\n </Cell>\n </Grid>\n </DialogContent>\n <DialogActions>\n <ButtonDefault onClick={props.onClose}>Cancel</ButtonDefault>\n <ButtonPrimary onClick={submit}>{submitLabel}</ButtonPrimary>\n </DialogActions>\n </>\n )}\n </Form>\n </Dialog>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.commonValidators = void 0;
|
|
7
|
+
var commonValidators = [{
|
|
8
|
+
name: "minLength",
|
|
9
|
+
label: "Minimum number of entries",
|
|
10
|
+
description: "Define the minimum number of entries a user must create.",
|
|
11
|
+
defaultMessage: "You must create at least {value} entries.",
|
|
12
|
+
variables: [{
|
|
13
|
+
name: "value",
|
|
14
|
+
description: "This defines the minimum number of entries a user must create."
|
|
15
|
+
}]
|
|
16
|
+
}, {
|
|
17
|
+
name: "maxLength",
|
|
18
|
+
label: "Maximum number of entries",
|
|
19
|
+
description: "Define the maximum number of entries a user can create.",
|
|
20
|
+
defaultMessage: "You have too many entries (max: {value}).",
|
|
21
|
+
variables: [{
|
|
22
|
+
name: "value",
|
|
23
|
+
description: "This defines the maximum number of entries a user can create."
|
|
24
|
+
}]
|
|
25
|
+
}];
|
|
26
|
+
exports.commonValidators = commonValidators;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["commonValidators","name","label","description","defaultMessage","variables"],"sources":["commonValidators.ts"],"sourcesContent":["import { CmsModelFieldValidatorConfig } from \"~/types\";\n\nexport const commonValidators: CmsModelFieldValidatorConfig[] = [\n {\n name: \"minLength\",\n label: \"Minimum number of entries\",\n description: \"Define the minimum number of entries a user must create.\",\n defaultMessage: \"You must create at least {value} entries.\",\n variables: [\n {\n name: \"value\",\n description: \"This defines the minimum number of entries a user must create.\"\n }\n ]\n },\n {\n name: \"maxLength\",\n label: \"Maximum number of entries\",\n description: \"Define the maximum number of entries a user can create.\",\n defaultMessage: \"You have too many entries (max: {value}).\",\n variables: [\n {\n name: \"value\",\n description: \"This defines the maximum number of entries a user can create.\"\n }\n ]\n }\n];\n"],"mappings":";;;;;;AAEO,IAAMA,gBAAgD,GAAG,CAC5D;EACIC,IAAI,EAAE,WADV;EAEIC,KAAK,EAAE,2BAFX;EAGIC,WAAW,EAAE,0DAHjB;EAIIC,cAAc,EAAE,2CAJpB;EAKIC,SAAS,EAAE,CACP;IACIJ,IAAI,EAAE,OADV;IAEIE,WAAW,EAAE;EAFjB,CADO;AALf,CAD4D,EAa5D;EACIF,IAAI,EAAE,WADV;EAEIC,KAAK,EAAE,2BAFX;EAGIC,WAAW,EAAE,yDAHjB;EAIIC,cAAc,EAAE,2CAJpB;EAKIC,SAAS,EAAE,CACP;IACIJ,IAAI,EAAE,OADV;IAEIE,WAAW,EAAE;EAFjB,CADO;AALf,CAb4D,CAAzD"}
|