@webiny/app-headless-cms 5.24.0 → 5.25.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HeadlessCMS.d.ts +4 -3
- package/HeadlessCMS.js.map +1 -0
- package/admin/components/ContentEntryForm/ContentEntryForm.js +27 -6
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -0
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +18 -2
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -0
- package/admin/components/ContentEntryForm/Fields.d.ts +1 -2
- package/admin/components/ContentEntryForm/Fields.js +1 -1
- package/admin/components/ContentEntryForm/Fields.js.map +1 -0
- package/admin/components/ContentEntryForm/Label.js.map +1 -0
- package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +1 -2
- package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -0
- package/admin/components/ContentEntryForm/functions/createValidators.d.ts +2 -1
- package/admin/components/ContentEntryForm/functions/createValidators.js +8 -5
- package/admin/components/ContentEntryForm/functions/createValidators.js.map +1 -0
- package/admin/components/ContentEntryForm/functions/getValue.d.ts +4 -3
- package/admin/components/ContentEntryForm/functions/getValue.js +0 -1
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -0
- package/admin/components/ContentEntryForm/functions/setValue.d.ts +4 -3
- package/admin/components/ContentEntryForm/functions/setValue.js +0 -1
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -0
- package/admin/components/ContentEntryForm/useBind.d.ts +3 -7
- package/admin/components/ContentEntryForm/useBind.js +6 -0
- package/admin/components/ContentEntryForm/useBind.js.map +1 -0
- package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +2 -4
- package/admin/components/ContentEntryForm/useContentEntryForm.js +75 -26
- package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -0
- package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -0
- package/admin/components/ContentModelEditor/Context.d.ts +9 -7
- package/admin/components/ContentModelEditor/Context.js +158 -36
- package/admin/components/ContentModelEditor/Context.js.map +1 -0
- package/admin/components/ContentModelEditor/Editor.d.ts +1 -1
- package/admin/components/ContentModelEditor/Editor.js +5 -3
- package/admin/components/ContentModelEditor/Editor.js.map +1 -0
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -0
- package/admin/components/ContentModelEditor/Header.js.map +1 -0
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -0
- package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +1 -1
- package/admin/components/ContentModelEditor/useContentModelEditor.js.map +1 -0
- package/admin/components/DragPreview.js +6 -1
- package/admin/components/DragPreview.js.map +1 -0
- package/admin/components/Draggable.js.map +1 -0
- package/admin/components/DropZone/Center.js.map +1 -0
- package/admin/components/DropZone/Horizontal.js +1 -1
- package/admin/components/DropZone/Horizontal.js.map +1 -0
- package/admin/components/DropZone/Vertical.js +1 -1
- package/admin/components/DropZone/Vertical.js.map +1 -0
- package/admin/components/DropZone/index.js.map +1 -0
- package/admin/components/Droppable.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +14 -4
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +5 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +9 -4
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +13 -6
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.d.ts +2 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.d.ts +2 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +0 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -0
- package/admin/components/FieldEditor/EditFieldDialog.d.ts +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.js +35 -18
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -0
- package/admin/components/FieldEditor/Field.js +2 -2
- package/admin/components/FieldEditor/Field.js.map +1 -0
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -0
- package/admin/components/FieldEditor/FieldEditorContext.d.ts +9 -9
- package/admin/components/FieldEditor/FieldEditorContext.js +43 -15
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -0
- package/admin/components/FieldEditor/Styled.d.ts +2 -3
- package/admin/components/FieldEditor/Styled.js.map +1 -0
- package/admin/components/FieldEditor/index.js.map +1 -0
- package/admin/components/FieldEditor/useFieldEditor.js.map +1 -0
- package/admin/components/FieldEditor/utils/deleteField.d.ts +5 -5
- package/admin/components/FieldEditor/utils/deleteField.js +4 -0
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -0
- package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
- package/admin/components/FieldEditor/utils/getFieldPosition.js +3 -2
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -0
- package/admin/components/FieldEditor/utils/index.js.map +1 -0
- package/admin/components/FieldEditor/utils/moveField.d.ts +2 -2
- package/admin/components/FieldEditor/utils/moveField.js +3 -1
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -0
- package/admin/components/FieldEditor/utils/moveRow.js.map +1 -0
- package/admin/constants/statusLabels.js.map +1 -0
- package/admin/contexts/Cms/NetworkError.js.map +1 -0
- package/admin/contexts/Cms/index.js +22 -7
- package/admin/contexts/Cms/index.js.map +1 -0
- package/admin/elements/ContentGroupMenuElement.js.map +1 -0
- package/admin/elements/ContentModelMenuElement.js.map +1 -0
- package/admin/elements/NothingToShowElement.js.map +1 -0
- package/admin/graphql/contentEntries.d.ts +8 -8
- package/admin/graphql/contentEntries.js.map +1 -0
- package/admin/graphql/contentModels.d.ts +2 -2
- package/admin/graphql/contentModels.js.map +1 -0
- package/admin/graphql/createFieldsList.js.map +1 -0
- package/admin/hooks/index.js.map +1 -0
- package/admin/hooks/useApolloClient.js.map +1 -0
- package/admin/hooks/useCms.js.map +1 -0
- package/admin/hooks/useLazyQuery.d.ts +2 -1
- package/admin/hooks/useLazyQuery.js.map +1 -0
- package/admin/hooks/useMutation.d.ts +2 -1
- package/admin/hooks/useMutation.js.map +1 -0
- package/admin/hooks/usePermission.js +20 -19
- package/admin/hooks/usePermission.js.map +1 -0
- package/admin/hooks/useQuery.d.ts +2 -2
- package/admin/hooks/useQuery.js.map +1 -0
- package/admin/hooks/useQueryLocale.d.ts +2 -2
- package/admin/hooks/useQueryLocale.js.map +1 -0
- package/admin/menus/CmsMenuLoader.js.map +1 -0
- package/admin/menus/ContentGroupsMenuItems.js +1 -1
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -0
- package/admin/menus/GlobalSearchPlugins.d.ts +0 -1
- package/admin/menus/GlobalSearchPlugins.js +1 -1
- package/admin/menus/GlobalSearchPlugins.js.map +1 -0
- package/admin/menus/NothingToShowElement.js.map +1 -0
- package/admin/plugins/apiInformation/index.js +3 -3
- package/admin/plugins/apiInformation/index.js.map +1 -0
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -0
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -0
- package/admin/plugins/editor/defaultBar/BackButton.js +4 -2
- package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -0
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -0
- package/admin/plugins/editor/defaultBar/Divider.d.ts +1 -2
- package/admin/plugins/editor/defaultBar/Divider.js.map +1 -0
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +11 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -0
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -0
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.d.ts +2 -2
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -0
- package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -0
- package/admin/plugins/editor/defaultBar/Name/Name.js +1 -1
- package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -0
- package/admin/plugins/editor/defaultBar/Name/NameStyled.d.ts +3 -4
- package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -0
- package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -0
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +37 -32
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -0
- package/admin/plugins/editor/defaultBar/index.d.ts +0 -1
- package/admin/plugins/editor/defaultBar/index.js.map +1 -0
- package/admin/plugins/editor/formSettings/components/GeneralSettings.d.ts +0 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -0
- package/admin/plugins/editor/formSettings/components/GroupSelect.d.ts +0 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.js +1 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -0
- package/admin/plugins/editor/formSettings/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/Accordion.d.ts +1 -1
- package/admin/plugins/fieldRenderers/Accordion.js +1 -1
- package/admin/plugins/fieldRenderers/Accordion.js.map +1 -0
- package/admin/plugins/fieldRenderers/DynamicSection.d.ts +7 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +7 -4
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -0
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +0 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -0
- package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/checkboxes.js +11 -6
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +40 -9
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +74 -18
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +72 -16
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +4 -4
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +15 -10
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +3 -3
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/File.d.ts +4 -4
- package/admin/plugins/fieldRenderers/file/File.js +9 -3
- package/admin/plugins/fieldRenderers/file/File.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/fileField.js +4 -4
- package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/fileFields.js +10 -5
- package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/file/utils.d.ts +0 -1
- package/admin/plugins/fieldRenderers/file/utils.js +2 -2
- package/admin/plugins/fieldRenderers/file/utils.js.map +1 -0
- package/admin/plugins/fieldRenderers/longText/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/longText/longText.js +0 -1
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -0
- package/admin/plugins/fieldRenderers/longText/longTexts.js +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -0
- package/admin/plugins/fieldRenderers/number/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/number/numberInput.js +0 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -0
- package/admin/plugins/fieldRenderers/number/numberInputs.js +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/multipleObjects.js +5 -5
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -0
- package/admin/plugins/fieldRenderers/object/singleObject.js +3 -2
- package/admin/plugins/fieldRenderers/object/singleObject.js.map +1 -0
- package/admin/plugins/fieldRenderers/radioButtons.js +11 -5
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +2 -4
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.d.ts +3 -2
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +14 -8
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/getOptions.d.ts +4 -3
- package/admin/plugins/fieldRenderers/ref/components/getOptions.js +1 -1
- package/admin/plugins/fieldRenderers/ref/components/getOptions.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/graphql.d.ts +4 -14
- package/admin/plugins/fieldRenderers/ref/components/graphql.js +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +6 -11
- package/admin/plugins/fieldRenderers/ref/components/useReference.js +4 -3
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +3 -9
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js +1 -2
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +4 -3
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +6 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/refInput.js +0 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/refInputs.js +1 -2
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -0
- package/admin/plugins/fieldRenderers/richText/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/richText/richTextInput.js +5 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -0
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js +9 -3
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -0
- package/admin/plugins/fieldRenderers/select.js +28 -7
- package/admin/plugins/fieldRenderers/select.js.map +1 -0
- package/admin/plugins/fieldRenderers/text/index.js.map +1 -0
- package/admin/plugins/fieldRenderers/text/textInput.js +0 -1
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -0
- package/admin/plugins/fieldRenderers/text/textInputs.js +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -0
- package/admin/plugins/fieldValidators/date/availableValidators.d.ts +1 -1
- package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -0
- package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +0 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.js +5 -3
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -0
- package/admin/plugins/fieldValidators/dateGte.js +1 -1
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -0
- package/admin/plugins/fieldValidators/dateLte.js +1 -1
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -0
- package/admin/plugins/fieldValidators/gte.js.map +1 -0
- package/admin/plugins/fieldValidators/in.js.map +1 -0
- package/admin/plugins/fieldValidators/lte.js.map +1 -0
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -0
- package/admin/plugins/fieldValidators/minLength.js.map +1 -0
- package/admin/plugins/fieldValidators/pattern.js +6 -0
- package/admin/plugins/fieldValidators/pattern.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -0
- package/admin/plugins/fieldValidators/required.js.map +1 -0
- package/admin/plugins/fieldValidators/unique.js.map +1 -0
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -0
- package/admin/plugins/fields/boolean.js.map +1 -0
- package/admin/plugins/fields/dateTime.js.map +1 -0
- package/admin/plugins/fields/file.js +2 -2
- package/admin/plugins/fields/file.js.map +1 -0
- package/admin/plugins/fields/longText.js.map +1 -0
- package/admin/plugins/fields/number.js.map +1 -0
- package/admin/plugins/fields/object/ObjectFields.js +2 -2
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -0
- package/admin/plugins/fields/object.js +1 -1
- package/admin/plugins/fields/object.js.map +1 -0
- package/admin/plugins/fields/ref.js +5 -5
- package/admin/plugins/fields/ref.js.map +1 -0
- package/admin/plugins/fields/richText.js.map +1 -0
- package/admin/plugins/fields/text.js.map +1 -0
- package/admin/plugins/getObjectId.js.map +1 -0
- package/admin/plugins/icons.js +10 -3
- package/admin/plugins/icons.js.map +1 -0
- package/admin/plugins/index.d.ts +0 -1
- package/admin/plugins/index.js.map +1 -0
- package/admin/plugins/install.js +11 -7
- package/admin/plugins/install.js.map +1 -0
- package/admin/plugins/permissionRenderer/CmsPermissions.js +14 -9
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +7 -6
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +7 -6
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.d.ts +2 -2
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +7 -6
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/PermissionSelector.d.ts +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js +13 -1
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/StyledComponents.d.ts +1 -2
- package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/types.js.map +1 -0
- package/admin/plugins/permissionRenderer/components/useCmsData.js +4 -6
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -0
- package/admin/plugins/permissionRenderer/index.js.map +1 -0
- package/admin/plugins/routes.js.map +1 -0
- package/admin/plugins/transformers/dateTransformer.js +20 -24
- package/admin/plugins/transformers/dateTransformer.js.map +1 -0
- package/admin/plugins/transformers/index.js.map +1 -0
- package/admin/plugins/transformers/numberTransformer.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +2 -2
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +2 -2
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +1 -0
- package/admin/plugins/upgrades/5.19.0/types.js.map +1 -0
- package/admin/plugins/upgrades/v5.0.0.d.ts +0 -1
- package/admin/plugins/upgrades/v5.0.0.js.map +1 -0
- package/admin/plugins/upgrades/v5.19.0.d.ts +0 -1
- package/admin/plugins/upgrades/v5.19.0.js.map +1 -0
- package/admin/plugins/upgrades/v5.5.0.d.ts +0 -1
- package/admin/plugins/upgrades/v5.5.0.js.map +1 -0
- package/admin/plugins/upgrades/v5.8.0.d.ts +0 -1
- package/admin/plugins/upgrades/v5.8.0.js.map +1 -0
- package/admin/plugins/validators/dateGte.js.map +1 -0
- package/admin/plugins/validators/dateLte.js.map +1 -0
- package/admin/plugins/validators/gte.js.map +1 -0
- package/admin/plugins/validators/in.js.map +1 -0
- package/admin/plugins/validators/lte.js.map +1 -0
- package/admin/plugins/validators/maxLength.js.map +1 -0
- package/admin/plugins/validators/minLength.js.map +1 -0
- package/admin/plugins/validators/pattern.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/email.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/lowerCase.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/upperCase.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -0
- package/admin/plugins/validators/patternPlugins/url.js.map +1 -0
- package/admin/plugins/validators/required.js.map +1 -0
- package/admin/plugins/validators/timeGte.js.map +1 -0
- package/admin/plugins/validators/timeLte.js.map +1 -0
- package/admin/plugins/validators/unique.js.map +1 -0
- package/admin/plugins/welcomeScreenWidget.js.map +1 -0
- package/admin/views/contentEntries/ContentEntries.js +2 -2
- package/admin/views/contentEntries/ContentEntries.js.map +1 -0
- package/admin/views/contentEntries/ContentEntriesContext.js +13 -4
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -0
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +10 -7
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +85 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +4 -2
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/cache.js +19 -23
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +15 -8
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -2
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +8 -7
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +2 -2
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +2 -2
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js +2 -1
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/useRevision.js +105 -47
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -2
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +4 -4
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -0
- package/admin/views/contentModelGroups/ContentModelGroups.js +4 -3
- package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -0
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +6 -3
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -0
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +23 -8
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -0
- package/admin/views/contentModelGroups/DelayedOnChange.js.map +1 -0
- package/admin/views/contentModelGroups/IconPicker.js +11 -3
- package/admin/views/contentModelGroups/IconPicker.js.map +1 -0
- package/admin/views/contentModelGroups/graphql.js.map +1 -0
- package/admin/views/contentModels/CloneContentModelDialog.js +25 -34
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -0
- package/admin/views/contentModels/ContentModelEditor.js +2 -2
- package/admin/views/contentModels/ContentModelEditor.js.map +1 -0
- package/admin/views/contentModels/ContentModels.js +5 -4
- package/admin/views/contentModels/ContentModels.js.map +1 -0
- package/admin/views/contentModels/ContentModelsDataList.js +9 -2
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -0
- package/admin/views/contentModels/NewContentModelDialog.js +17 -3
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -0
- package/admin/views/contentModels/cache.js +38 -12
- package/admin/views/contentModels/cache.js.map +1 -0
- package/admin/views/contentModels/types.js.map +1 -0
- package/admin/views/utils.js.map +1 -0
- package/admin/viewsGraphql.js.map +1 -0
- package/index.js.map +1 -0
- package/package.json +26 -25
- package/types.d.ts +41 -7
- package/types.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useLazyQuery.ts"],"names":["useLazyQuery","apolloUseLazyQuery","useCms","query","options","apolloClient","client"],"mappings":";AAAA,SAASA,YAAY,IAAIC,kBAAzB,QAAmD,qBAAnD;AACA,OAAOC,MAAP;;AAKA,IAAMF,YAAY,GAAG,SAAfA,YAAe,CACjBG,KADiB,EAGY;AAAA,MAD7BC,OAC6B,uEADsB,EACtB;;AAC7B,gBAAyBF,MAAM,EAA/B;AAAA,MAAQG,YAAR,WAAQA,YAAR;;AAEA,SAAOJ,kBAAkB,CAAoBE,KAApB;AACrBG,IAAAA,MAAM,EAAED;AADa,KAElBD,OAFkB,EAAzB;AAIH,CAVD;;AAYA,eAAeJ,YAAf","sourcesContent":["import { useLazyQuery as apolloUseLazyQuery } from \"@apollo/react-hooks\";\nimport useCms from \"./useCms\";\nimport { DocumentNode } from \"graphql\";\nimport { OperationVariables } from \"@apollo/react-common\";\nimport { LazyQueryHookOptions, QueryTuple } from \"@apollo/react-hooks/lib/types\";\n\nconst useLazyQuery = function <TData = any, TVariables = OperationVariables>(\n query: DocumentNode,\n options: LazyQueryHookOptions<TData, TVariables> = {}\n): QueryTuple<TData, TVariables> {\n const { apolloClient } = useCms();\n\n return apolloUseLazyQuery<TData, TVariables>(query, {\n client: apolloClient,\n ...options\n });\n};\n\nexport default useLazyQuery;\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DocumentNode } from "graphql";
|
|
2
|
+
import { OperationVariables } from "@apollo/react-common";
|
|
2
3
|
import { MutationHookOptions, MutationTuple } from "@apollo/react-hooks/lib/types";
|
|
3
|
-
declare const useMutation: <TData = any, TVariables =
|
|
4
|
+
declare const useMutation: <TData = any, TVariables = OperationVariables>(mutation: DocumentNode, options?: MutationHookOptions<TData, TVariables>) => MutationTuple<TData, TVariables>;
|
|
4
5
|
export default useMutation;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useMutation.ts"],"names":["useCms","useMutation","apolloUseMutation","mutation","options","apolloClient","client"],"mappings":";AAAA,OAAOA,MAAP;AACA,SAASC,WAAW,IAAIC,iBAAxB,QAAiD,qBAAjD;;AAKA,IAAMD,WAAW,GAAG,SAAdA,WAAc,CAChBE,QADgB,EAGgB;AAAA,MADhCC,OACgC,uEADkB,EAClB;;AAChC,gBAAyBJ,MAAM,EAA/B;AAAA,MAAQK,YAAR,WAAQA,YAAR;;AAEA,SAAOH,iBAAiB,CAAoBC,QAApB;AACpBG,IAAAA,MAAM,EAAED;AADY,KAEjBD,OAFiB,EAAxB;AAIH,CAVD;;AAYA,eAAeH,WAAf","sourcesContent":["import useCms from \"./useCms\";\nimport { useMutation as apolloUseMutation } from \"@apollo/react-hooks\";\nimport { DocumentNode } from \"graphql\";\nimport { OperationVariables } from \"@apollo/react-common\";\nimport { MutationHookOptions, MutationTuple } from \"@apollo/react-hooks/lib/types\";\n\nconst useMutation = function <TData = any, TVariables = OperationVariables>(\n mutation: DocumentNode,\n options: MutationHookOptions<TData, TVariables> = {}\n): MutationTuple<TData, TVariables> {\n const { apolloClient } = useCms();\n\n return apolloUseMutation<TData, TVariables>(mutation, {\n client: apolloClient,\n ...options\n });\n};\n\nexport default useMutation;\n"]}
|
|
@@ -4,17 +4,18 @@ import get from "lodash/get";
|
|
|
4
4
|
import { useI18N } from "@webiny/app-i18n/hooks/useI18N";
|
|
5
5
|
export var usePermission = function usePermission() {
|
|
6
6
|
var _useSecurity = useSecurity(),
|
|
7
|
-
identity = _useSecurity.identity
|
|
7
|
+
identity = _useSecurity.identity,
|
|
8
|
+
getPermission = _useSecurity.getPermission;
|
|
8
9
|
|
|
9
10
|
var _useI18N = useI18N(),
|
|
10
11
|
getCurrentLocale = _useI18N.getCurrentLocale;
|
|
11
12
|
|
|
12
13
|
var currentLocale = getCurrentLocale("content");
|
|
13
14
|
var hasFullAccess = useMemo(function () {
|
|
14
|
-
return
|
|
15
|
-
}, []);
|
|
15
|
+
return getPermission("cms.*");
|
|
16
|
+
}, [identity]);
|
|
16
17
|
var canRead = useCallback(function (permissionName) {
|
|
17
|
-
var permission =
|
|
18
|
+
var permission = getPermission(permissionName);
|
|
18
19
|
|
|
19
20
|
if (!permission) {
|
|
20
21
|
return false;
|
|
@@ -25,7 +26,7 @@ export var usePermission = function usePermission() {
|
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
return permission.rwd.includes("r");
|
|
28
|
-
}, []);
|
|
29
|
+
}, [identity]);
|
|
29
30
|
var canReadEntries = useCallback(function (_ref) {
|
|
30
31
|
var contentModelGroup = _ref.contentModelGroup,
|
|
31
32
|
contentModel = _ref.contentModel;
|
|
@@ -34,9 +35,9 @@ export var usePermission = function usePermission() {
|
|
|
34
35
|
return true;
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
var permission =
|
|
38
|
-
var contentModelPermission =
|
|
39
|
-
var contentModelGroupPermission =
|
|
38
|
+
var permission = getPermission("cms.contentEntry");
|
|
39
|
+
var contentModelPermission = getPermission("cms.contentModel");
|
|
40
|
+
var contentModelGroupPermission = getPermission("cms.contentModelGroup");
|
|
40
41
|
|
|
41
42
|
if (!permission) {
|
|
42
43
|
return false;
|
|
@@ -63,9 +64,9 @@ export var usePermission = function usePermission() {
|
|
|
63
64
|
return true;
|
|
64
65
|
}, [identity, hasFullAccess, currentLocale]);
|
|
65
66
|
var canEdit = useCallback(function (item, permissionName) {
|
|
66
|
-
var permission =
|
|
67
|
+
var permission = getPermission(permissionName);
|
|
67
68
|
|
|
68
|
-
if (!permission) {
|
|
69
|
+
if (!permission || !identity) {
|
|
69
70
|
return false;
|
|
70
71
|
}
|
|
71
72
|
|
|
@@ -93,7 +94,7 @@ export var usePermission = function usePermission() {
|
|
|
93
94
|
* */
|
|
94
95
|
|
|
95
96
|
var canCreate = useCallback(function (permissionName) {
|
|
96
|
-
var permission =
|
|
97
|
+
var permission = getPermission(permissionName);
|
|
97
98
|
|
|
98
99
|
if (!permission) {
|
|
99
100
|
return false;
|
|
@@ -104,16 +105,16 @@ export var usePermission = function usePermission() {
|
|
|
104
105
|
}
|
|
105
106
|
|
|
106
107
|
return permission.rwd.includes("w");
|
|
107
|
-
}, []);
|
|
108
|
+
}, [identity]);
|
|
108
109
|
var canDelete = useCallback(function (item, permissionName) {
|
|
109
|
-
var permission =
|
|
110
|
+
var permission = getPermission(permissionName);
|
|
110
111
|
|
|
111
112
|
if (!permission) {
|
|
112
113
|
return false;
|
|
113
114
|
}
|
|
114
115
|
|
|
115
116
|
if (permission.own) {
|
|
116
|
-
return get(item, "createdBy.id") === identity.login;
|
|
117
|
+
return get(item, "createdBy.id") === (identity ? identity.login : null);
|
|
117
118
|
}
|
|
118
119
|
|
|
119
120
|
if (typeof permission.rwd === "string") {
|
|
@@ -127,7 +128,7 @@ export var usePermission = function usePermission() {
|
|
|
127
128
|
return true;
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
var permission =
|
|
131
|
+
var permission = getPermission(permissionName);
|
|
131
132
|
|
|
132
133
|
if (!permission) {
|
|
133
134
|
return false;
|
|
@@ -144,7 +145,7 @@ export var usePermission = function usePermission() {
|
|
|
144
145
|
return true;
|
|
145
146
|
}
|
|
146
147
|
|
|
147
|
-
var permission =
|
|
148
|
+
var permission = getPermission(permissionName);
|
|
148
149
|
|
|
149
150
|
if (!permission) {
|
|
150
151
|
return false;
|
|
@@ -161,7 +162,7 @@ export var usePermission = function usePermission() {
|
|
|
161
162
|
return true;
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
var permission =
|
|
165
|
+
var permission = getPermission(permissionName);
|
|
165
166
|
|
|
166
167
|
if (!permission) {
|
|
167
168
|
return false;
|
|
@@ -178,7 +179,7 @@ export var usePermission = function usePermission() {
|
|
|
178
179
|
return true;
|
|
179
180
|
}
|
|
180
181
|
|
|
181
|
-
var permission =
|
|
182
|
+
var permission = getPermission(permissionName);
|
|
182
183
|
|
|
183
184
|
if (!permission) {
|
|
184
185
|
return false;
|
|
@@ -195,7 +196,7 @@ export var usePermission = function usePermission() {
|
|
|
195
196
|
var canCreateContentModels = canCreate("cms.contentModel");
|
|
196
197
|
var canCreateContentModelGroups = canCreate("cms.contentModelGroup");
|
|
197
198
|
var canAccessManageEndpoint = useMemo(function () {
|
|
198
|
-
return
|
|
199
|
+
return getPermission("cms.endpoint.manage") !== undefined;
|
|
199
200
|
}, [identity]);
|
|
200
201
|
return {
|
|
201
202
|
canReadEntries: canReadEntries,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["usePermission.ts"],"names":["useCallback","useMemo","useSecurity","get","useI18N","usePermission","identity","getPermission","getCurrentLocale","currentLocale","hasFullAccess","canRead","permissionName","permission","rwd","includes","canReadEntries","contentModelGroup","contentModel","contentModelPermission","contentModelGroupPermission","models","Array","isArray","modelId","groups","id","canEdit","item","own","createdBy","login","canCreate","canDelete","canPublish","pw","canUnpublish","canRequestReview","canRequestChange","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","canAccessManageEndpoint","undefined"],"mappings":"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","sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport get from \"lodash/get\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CmsCreatedBy, CmsGroup, CmsModel, CmsSecurityPermission } from \"~/types\";\n\ninterface CreatableItem {\n createdBy: Pick<CmsCreatedBy, \"id\">;\n}\n\ninterface CanReadEntriesCallableParams {\n contentModelGroup: CmsGroup;\n contentModel: CmsModel;\n}\n\nexport const usePermission = () => {\n const { identity, getPermission } = useSecurity();\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n const hasFullAccess = useMemo((): CmsSecurityPermission | null => {\n return getPermission(\"cms.*\");\n }, [identity]);\n\n const canRead = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n },\n [identity]\n );\n\n const canReadEntries = useCallback(\n ({ contentModelGroup, contentModel }: CanReadEntriesCallableParams): boolean => {\n if (hasFullAccess) {\n return true;\n }\n\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n const contentModelPermission = getPermission(\"cms.contentModel\");\n const contentModelGroupPermission = getPermission(\"cms.contentModelGroup\");\n\n if (!permission) {\n return false;\n }\n\n // Check \"contentModel\" list.\n const models = get(contentModelPermission, `models.${currentLocale}`);\n if (Array.isArray(models)) {\n return models.includes(contentModel.modelId);\n }\n // Check \"contentModelGroup\" list.\n const groups = get(contentModelGroupPermission, `groups.${currentLocale}`);\n if (Array.isArray(groups)) {\n return groups.includes(contentModelGroup.id);\n }\n\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"r\");\n }\n\n return true;\n },\n [identity, hasFullAccess, currentLocale]\n );\n\n const canEdit = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission || !identity) {\n return false;\n }\n if (permission.own) {\n /**\n * There will be no \"createdBy\" field for a new entry therefore we enable the access.\n */\n if (!item.createdBy) {\n return true;\n }\n return get(item, \"createdBy.id\") === identity.login;\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"w\");\n }\n return true;\n },\n [identity]\n );\n\n /**\n * @description This checks whether the user has the \"write\" access for given permission;\n * without talking the \"own\" property in account.\n * @param {string} permissionName\n * */\n const canCreate = useCallback(\n (permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n },\n [identity]\n );\n\n const canDelete = useCallback(\n (item: CreatableItem, permissionName: string): boolean => {\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (permission.own) {\n return get(item, \"createdBy.id\") === (identity ? identity.login : null);\n }\n if (typeof permission.rwd === \"string\") {\n return permission.rwd.includes(\"d\");\n }\n return true;\n },\n [identity]\n );\n\n const canPublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"p\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canUnpublish = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"u\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canRequestReview = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"r\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canRequestChange = useCallback(\n (permissionName: string): boolean => {\n if (hasFullAccess) {\n return true;\n }\n const permission = getPermission<CmsSecurityPermission>(permissionName);\n\n if (!permission) {\n return false;\n }\n if (typeof permission.pw === \"string\") {\n return permission.pw.includes(\"c\");\n }\n\n return false;\n },\n [identity, hasFullAccess]\n );\n\n const canReadContentModels = canRead(\"cms.contentModel\");\n const canReadContentModelGroups = canRead(\"cms.contentModelGroup\");\n const canCreateContentModels = canCreate(\"cms.contentModel\");\n const canCreateContentModelGroups = canCreate(\"cms.contentModelGroup\");\n const canAccessManageEndpoint = useMemo(() => {\n return getPermission(\"cms.endpoint.manage\") !== undefined;\n }, [identity]);\n\n return {\n canReadEntries,\n canEdit,\n canCreate,\n canDelete,\n canPublish,\n canUnpublish,\n canRequestReview,\n canRequestChange,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups,\n canAccessManageEndpoint\n };\n};\n/**\n * Default export is deprecated, use the named one.\n * @deprecated\n */\nexport default usePermission;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DocumentNode } from "graphql";
|
|
2
|
-
import { QueryResult } from "@apollo/react-common";
|
|
2
|
+
import { OperationVariables, QueryResult } from "@apollo/react-common";
|
|
3
3
|
import { QueryHookOptions } from "@apollo/react-hooks/lib/types";
|
|
4
|
-
declare const useQuery: <TData = any, TVariables =
|
|
4
|
+
declare const useQuery: <TData = any, TVariables = OperationVariables>(query: DocumentNode, options?: QueryHookOptions<TData, TVariables>) => QueryResult<TData, TVariables>;
|
|
5
5
|
export default useQuery;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useQuery.ts"],"names":["useQuery","apolloUseQuery","useCms","query","options","apolloClient","client","skip"],"mappings":";AAAA,SAASA,QAAQ,IAAIC,cAArB,QAA2C,qBAA3C;AACA,OAAOC,MAAP;;AAKA,IAAMF,QAAQ,GAAG,SAAXA,QAAW,CACbG,KADa,EAGiB;AAAA,MAD9BC,OAC8B,uEADiB,EACjB;;AAC9B,gBAAyBF,MAAM,EAA/B;AAAA,MAAQG,YAAR,WAAQA,YAAR;;AAEA,SAAOJ,cAAc,CAAoBE,KAApB;AACjBG,IAAAA,MAAM,EAAED,YADS;AAEjBE,IAAAA,IAAI,EAAE,CAACF;AAFU,KAGdD,OAHc,EAArB;AAKH,CAXD;;AAaA,eAAeJ,QAAf","sourcesContent":["import { useQuery as apolloUseQuery } from \"@apollo/react-hooks\";\nimport useCms from \"./useCms\";\nimport { DocumentNode } from \"graphql\";\nimport { OperationVariables, QueryResult } from \"@apollo/react-common\";\nimport { QueryHookOptions } from \"@apollo/react-hooks/lib/types\";\n\nconst useQuery = function <TData = any, TVariables = OperationVariables>(\n query: DocumentNode,\n options: QueryHookOptions<TData, TVariables> = {}\n): QueryResult<TData, TVariables> {\n const { apolloClient } = useCms();\n\n return apolloUseQuery<TData, TVariables>(query, {\n client: apolloClient,\n skip: !apolloClient,\n ...options\n });\n};\n\nexport default useQuery;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { DocumentNode } from "graphql";
|
|
2
|
-
import { QueryResult } from "@apollo/react-common";
|
|
2
|
+
import { OperationVariables, QueryResult } from "@apollo/react-common";
|
|
3
3
|
import { QueryHookOptions } from "@apollo/react-hooks/lib/types";
|
|
4
|
-
export declare const useQueryLocale: <TData = any, TVariables =
|
|
4
|
+
export declare const useQueryLocale: <TData = any, TVariables = OperationVariables>(query: DocumentNode, locale: string, options?: QueryHookOptions<TData, TVariables>) => QueryResult<TData, TVariables>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useQueryLocale.ts"],"names":["useCms","useQuery","apolloUseQuery","useQueryLocale","query","locale","options","getApolloClient","client","skip"],"mappings":";AAAA,OAAOA,MAAP;AACA,SAASC,QAAQ,IAAIC,cAArB,QAA2C,qBAA3C;AAKA,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAC1BC,KAD0B,EAE1BC,MAF0B,EAII;AAAA,MAD9BC,OAC8B,uEADiB,EACjB;;AAC9B,gBAA4BN,MAAM,EAAlC;AAAA,MAAQO,eAAR,WAAQA,eAAR;;AACA,MAAMC,MAAM,GAAGD,eAAe,CAACF,MAAD,CAA9B;AAEA,SAAOH,cAAc,CAAoBE,KAApB;AACjBI,IAAAA,MAAM,EAANA,MADiB;AAEjBC,IAAAA,IAAI,EAAE,CAACD;AAFU,KAGdF,OAHc,EAArB;AAKH,CAbM","sourcesContent":["import useCms from \"./useCms\";\nimport { useQuery as apolloUseQuery } from \"@apollo/react-hooks\";\nimport { DocumentNode } from \"graphql\";\nimport { OperationVariables, QueryResult } from \"@apollo/react-common\";\nimport { QueryHookOptions } from \"@apollo/react-hooks/lib/types\";\n\nexport const useQueryLocale = function <TData = any, TVariables = OperationVariables>(\n query: DocumentNode,\n locale: string,\n options: QueryHookOptions<TData, TVariables> = {}\n): QueryResult<TData, TVariables> {\n const { getApolloClient } = useCms();\n const client = getApolloClient(locale);\n\n return apolloUseQuery<TData, TVariables>(query, {\n client,\n skip: !client,\n ...options\n });\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CmsMenuLoader.tsx"],"names":["React","Fragment","AddMenu","Menu","ReactComponent","HeadlessCmsIcon","GlobalSearchPlugins","usePermission","ContentGroupsMenuItems","CmsMenuLoaderComponent","canAccessManageEndpoint","canReadContentModels","canReadContentModelGroups","canCreateContentModels","canCreateContentModelGroups","hasAccess","CmsMenuLoader","memo","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,OAAO,IAAIC,IAApB,QAAgC,mBAAhC;AACA,SAASC,cAAc,IAAIC,eAA3B;AACA,OAAOC,mBAAP;AACA,OAAOC,aAAP;AACA,SAASC,sBAAT;;AAEA,IAAMC,sBAAgC,GAAG,SAAnCA,sBAAmC,GAAM;AAC3C,uBAMIF,aAAa,EANjB;AAAA,MACIG,uBADJ,kBACIA,uBADJ;AAAA,MAEIC,oBAFJ,kBAEIA,oBAFJ;AAAA,MAGIC,yBAHJ,kBAGIA,yBAHJ;AAAA,MAIIC,sBAJJ,kBAIIA,sBAJJ;AAAA,MAKIC,2BALJ,kBAKIA,2BALJ;;AAQA,MAAMC,SAAS,GACXL,uBAAuB,KAAKC,oBAAoB,IAAIC,yBAA7B,CAD3B;;AAGA,MAAI,CAACG,SAAL,EAAgB;AACZ,WAAO,IAAP;AACH;;AAED,sBACI,oBAAC,QAAD,qBACI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAE,aAAZ;AAA2B,IAAA,KAAK,EAAE,cAAlC;AAAkD,IAAA,IAAI,eAAE,oBAAC,eAAD;AAAxD,KACK,CAACF,sBAAsB,IAAIC,2BAA3B,kBACG,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAE,2BAAZ;AAAyC,IAAA,KAAK,EAAE,gBAAhD;AAAkE,IAAA,GAAG,EAAE;AAAvE,KACKD,sBAAsB,iBACnB,oBAAC,IAAD;AACI,IAAA,IAAI,EAAE,kCADV;AAEI,IAAA,KAAK,EAAE,QAFX;AAGI,IAAA,IAAI,EAAE;AAHV,IAFR,EAQKC,2BAA2B,iBACxB,oBAAC,IAAD;AACI,IAAA,IAAI,EAAE,kCADV;AAEI,IAAA,KAAK,EAAE,QAFX;AAGI,IAAA,IAAI,EAAE;AAHV,IATR,CAFR,eAmBI,oBAAC,sBAAD,OAnBJ,CADJ,eAsBI,oBAAC,mBAAD,OAtBJ,CADJ;AA0BH,CA1CD;;AA4CA,OAAO,IAAME,aAAuB,gBAAGhB,KAAK,CAACiB,IAAN,CAAWR,sBAAX,CAAhC;AAEPO,aAAa,CAACE,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { Fragment } from \"react\";\nimport { AddMenu as Menu } from \"@webiny/app-admin\";\nimport { ReactComponent as HeadlessCmsIcon } from \"~/admin/icons/devices_other-black-24px.svg\";\nimport GlobalSearchPlugins from \"./GlobalSearchPlugins\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { ContentGroupsMenuItems } from \"./ContentGroupsMenuItems\";\n\nconst CmsMenuLoaderComponent: React.FC = () => {\n const {\n canAccessManageEndpoint,\n canReadContentModels,\n canReadContentModelGroups,\n canCreateContentModels,\n canCreateContentModelGroups\n } = usePermission();\n\n const hasAccess =\n canAccessManageEndpoint && (canReadContentModels || canReadContentModelGroups);\n\n if (!hasAccess) {\n return null;\n }\n\n return (\n <Fragment>\n <Menu name={\"headlessCMS\"} label={\"Headless CMS\"} icon={<HeadlessCmsIcon />}>\n {(canCreateContentModels || canCreateContentModelGroups) && (\n <Menu name={\"headlessCMS.contentModels\"} label={\"Content Models\"} pin={\"first\"}>\n {canCreateContentModels && (\n <Menu\n name={\"headlessCMS.contentModels.models\"}\n label={\"Models\"}\n path={\"/cms/content-models\"}\n />\n )}\n {canCreateContentModelGroups && (\n <Menu\n name={\"headlessCMS.contentModels.groups\"}\n label={\"Groups\"}\n path={\"/cms/content-model-groups\"}\n />\n )}\n </Menu>\n )}\n <ContentGroupsMenuItems />\n </Menu>\n <GlobalSearchPlugins />\n </Fragment>\n );\n};\n\nexport const CmsMenuLoader: React.FC = React.memo(CmsMenuLoaderComponent);\n\nCmsMenuLoader.displayName = \"CmsMenuLoader\";\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["ContentGroupsMenuItems.tsx"],"names":["React","get","pluralize","FontAwesomeIcon","LIST_MENU_CONTENT_GROUPS_MODELS","useQuery","usePermission","AddMenu","Menu","NothingToShow","HasContentEntryPermissions","group","contentModel","children","canReadEntries","contentModelGroup","hasContentEntryPermission","contentModels","some","length","Icon","color","icon","split","ContentGroupsMenuItems","response","groups","map","id","name","modelId"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport pluralize from \"pluralize\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n LIST_MENU_CONTENT_GROUPS_MODELS,\n ListMenuCmsGroupsQueryResponse\n} from \"~/admin/viewsGraphql\";\nimport useQuery from \"~/admin/hooks/useQuery\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { AddMenu as Menu } from \"@webiny/app-admin\";\nimport { NothingToShow } from \"./NothingToShowElement\";\nimport { CmsGroup, CmsModel } from \"~/types\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\n\ninterface HasContentEntryPermissionsProps {\n group: CmsGroup;\n contentModel?: CmsModel;\n children: JSX.Element;\n}\n\nconst HasContentEntryPermissions: React.FC<HasContentEntryPermissionsProps> = ({\n group,\n contentModel,\n children\n}) => {\n const { canReadEntries } = usePermission();\n\n if (contentModel) {\n if (!canReadEntries({ contentModelGroup: group, contentModel })) {\n return null;\n }\n } else {\n const hasContentEntryPermission = group.contentModels.some(contentModel =>\n canReadEntries({\n contentModelGroup: group,\n contentModel\n })\n );\n\n if (group.contentModels.length > 0 && !hasContentEntryPermission) {\n return null;\n }\n }\n\n return children;\n};\n\ninterface IconProps {\n group: CmsGroup;\n}\nconst Icon: React.FC<IconProps> = ({ group }) => {\n return (\n <FontAwesomeIcon\n style={{ color: \"var(--mdc-theme-text-secondary-on-background)\" }}\n icon={(group.icon || \"\").split(\"/\") as IconProp}\n />\n );\n};\n\nexport const ContentGroupsMenuItems: React.FC = () => {\n const response = useQuery<ListMenuCmsGroupsQueryResponse>(LIST_MENU_CONTENT_GROUPS_MODELS);\n const groups: CmsGroup[] = get(response, \"data.listContentModelGroups.data\") || [];\n\n if (!groups || groups.length === 0) {\n return null;\n }\n\n return (\n <>\n {groups.map(group => {\n return (\n <HasContentEntryPermissions key={group.id} group={group}>\n <Menu\n name={group.id}\n label={group.name}\n tags={[\"headlessCMS\"]}\n icon={<Icon group={group} />}\n >\n {group.contentModels.length === 0 && (\n <Menu name={`${group.id}-empty`} element={<NothingToShow />} />\n )}\n {group.contentModels.length > 0 &&\n group.contentModels.map(contentModel => (\n <HasContentEntryPermissions\n key={contentModel.modelId}\n group={group}\n contentModel={contentModel}\n >\n <Menu\n name={contentModel.modelId}\n label={pluralize(contentModel.name)}\n path={`/cms/content-entries/${contentModel.modelId}`}\n />\n </HasContentEntryPermissions>\n ))}\n </Menu>\n </HasContentEntryPermissions>\n );\n })}\n </>\n );\n};\n"]}
|
|
@@ -27,7 +27,7 @@ var GlobalSearchPlugins = function GlobalSearchPlugins() {
|
|
|
27
27
|
useEffect(function () {
|
|
28
28
|
// 1. Unregister all previously registered plugins.
|
|
29
29
|
plugins.byType("admin-global-search").filter(function (item) {
|
|
30
|
-
return item.name.startsWith("admin-global-search-headless-cms");
|
|
30
|
+
return item.name && item.name.startsWith("admin-global-search-headless-cms");
|
|
31
31
|
}).forEach(function (item) {
|
|
32
32
|
return plugins.unregister(item.name);
|
|
33
33
|
}); // 2. Register a new set of plugins via the latest list of content models.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["GlobalSearchPlugins.tsx"],"names":["useEffect","get","useI18N","plugins","useQuery","LIST_MENU_CONTENT_GROUPS_MODELS","GlobalSearchPlugins","getCurrentLocale","response","locale","contentModelGroups","cmgHash","reduce","returnValue","currentValue","contentModels","modelId","byType","filter","item","name","startsWith","forEach","unregister","group","contentModel","pluginName","byName","register","type","route","label"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AACA,OAAOC,GAAP,MAAgB,YAAhB;AACA,SAASC,OAAT,QAAwB,gCAAxB;AAEA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,QAAT;AACA,SACIC,+BADJ;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,mBAA6B,GAAG,SAAhCA,mBAAgC,GAAM;AACxC,iBAA6BJ,OAAO,EAApC;AAAA,MAAQK,gBAAR,YAAQA,gBAAR;;AACA,MAAMC,QAAQ,GAAGJ,QAAQ,CAAiCC,+BAAjC,CAAzB;AAEA,MAAMI,MAAM,GAAGF,gBAAgB,CAAC,SAAD,CAA/B;AAEA,MAAMG,kBAA8B,GAChCT,GAAG,CAACO,QAAD,EAAW,kCAAX,EAA+C,EAA/C,CAAH,IAAyD,EAD7D;AAGA,MAAMG,OAAO,GAAGD,kBAAkB,CAACE,MAAnB,CAA0B,UAACC,WAAD,EAAsBC,YAAtB,EAAuC;AAC7E,WACID,WAAW,GACXC,YAAY,CAACC,aAAb,CAA2BH,MAA3B,CAAkC,UAACC,WAAD,EAAsBC,YAAtB,EAAuC;AACrE,aAAOD,WAAW,GAAGC,YAAY,CAACE,OAAlC;AACH,KAFD,EAEG,EAFH,CAFJ;AAMH,GAPe,EAOb,EAPa,CAAhB,CATwC,CAkBxC;;AACAhB,EAAAA,SAAS,CAAC,YAAM;AACZ;AACAG,IAAAA,OAAO,CACFc,MADL,CACqC,qBADrC,EAEKC,MAFL,CAEY,UAAAC,IAAI;AAAA,aAAIA,IAAI,CAACC,IAAL,IAAaD,IAAI,CAACC,IAAL,CAAUC,UAAV,CAAqB,kCAArB,CAAjB;AAAA,KAFhB,EAGKC,OAHL,CAGa,UAAAH,IAAI;AAAA,aAAIhB,OAAO,CAACoB,UAAR,CAAmBJ,IAAI,CAACC,IAAxB,CAAJ;AAAA,KAHjB,EAFY,CAOZ;;AACAV,IAAAA,kBAAkB,CAACY,OAAnB,CAA2B,UAAAE,KAAK,EAAI;AAChCA,MAAAA,KAAK,CAACT,aAAN,CAAoBO,OAApB,CAA4B,UAAAG,YAAY,EAAI;AACxC,YAAMC,UAAU,GAAG,sCAAsCD,YAAY,CAACT,OAAtE;;AACA,YAAI,CAACb,OAAO,CAACwB,MAAR,CAAeD,UAAf,CAAL,EAAiC;AAC7BvB,UAAAA,OAAO,CAACyB,QAAR,CAAiB;AACbC,YAAAA,IAAI,EAAE,qBADO;AAEbT,YAAAA,IAAI,EAAE,sCAAsCK,YAAY,CAACT,OAF5C;AAGbc,YAAAA,KAAK,EAAE,0BAA0BL,YAAY,CAACT,OAHjC;AAIbe,YAAAA,KAAK,EAAEN,YAAY,CAACL;AAJP,WAAjB;AAMH;AACJ,OAVD;AAWH,KAZD;AAaH,GArBQ,EAqBN,CAACX,MAAD,EAASE,OAAT,CArBM,CAAT;AAuBA,SAAO,IAAP;AACH,CA3CD;;AA6CA,eAAeL,mBAAf","sourcesContent":["import { useEffect } from \"react\";\nimport get from \"lodash/get\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { AdminGlobalSearchPlugin } from \"@webiny/app-admin/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport { useQuery } from \"~/admin/hooks\";\nimport {\n LIST_MENU_CONTENT_GROUPS_MODELS,\n ListMenuCmsGroupsQueryResponse\n} from \"~/admin/viewsGraphql\";\nimport { CmsGroup } from \"~/types\";\n\n/**\n * DISCLAIMER!\n * This file is OLD and needs refactoring into something that makes more sense in the context of the new UI Composer.\n * Even if we keep a dedicated `AdminGlobalSearchPlugin`, it needs to be converted to a proper class.\n * This can be a \"good first issue\" for community to solve.\n */\nconst GlobalSearchPlugins: React.FC = () => {\n const { getCurrentLocale } = useI18N();\n const response = useQuery<ListMenuCmsGroupsQueryResponse>(LIST_MENU_CONTENT_GROUPS_MODELS);\n\n const locale = getCurrentLocale(\"content\");\n\n const contentModelGroups: CmsGroup[] =\n get(response, \"data.listContentModelGroups.data\", []) || [];\n\n const cmgHash = contentModelGroups.reduce((returnValue: string, currentValue) => {\n return (\n returnValue +\n currentValue.contentModels.reduce((returnValue: string, currentValue) => {\n return returnValue + currentValue.modelId;\n }, \"\")\n );\n }, \"\");\n\n // Generate \"admin-global-search\" plugins - enables the user to search content via the global search bar.\n useEffect(() => {\n // 1. Unregister all previously registered plugins.\n plugins\n .byType<AdminGlobalSearchPlugin>(\"admin-global-search\")\n .filter(item => item.name && item.name.startsWith(\"admin-global-search-headless-cms\"))\n .forEach(item => plugins.unregister(item.name as string));\n\n // 2. Register a new set of plugins via the latest list of content models.\n contentModelGroups.forEach(group => {\n group.contentModels.forEach(contentModel => {\n const pluginName = \"admin-global-search-headless-cms-\" + contentModel.modelId;\n if (!plugins.byName(pluginName)) {\n plugins.register({\n type: \"admin-global-search\",\n name: \"admin-global-search-headless-cms-\" + contentModel.modelId,\n route: \"/cms/content-entries/\" + contentModel.modelId,\n label: contentModel.name\n });\n }\n });\n });\n }, [locale, cmgHash]);\n\n return null;\n};\n\nexport default GlobalSearchPlugins;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["NothingToShowElement.tsx"],"names":["React","css","List","ListItem","linkStyle","color","textDecoration","display","alignItems","width","height","outline","paddingLeft","submenuItems","margin","submenuList","padding","NothingToShow","opacity"],"mappings":"AAAA;AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,IAAT,EAAeC,QAAf,QAA+B,iBAA/B;AAEA,IAAMC,SAAS,gBAAGH,GAAG,CAAC;AAClBI,EAAAA,KAAK,EAAE,6CADW;AAElBC,EAAAA,cAAc,EAAE,MAFE;AAGlBC,EAAAA,OAAO,EAAE,MAHS;AAIlBC,EAAAA,UAAU,EAAE,QAJM;AAKlBC,EAAAA,KAAK,EAAE,MALW;AAMlBC,EAAAA,MAAM,EAAE,MANU;AAOlBC,EAAAA,OAAO,EAAE,MAPS;AAQlBC,EAAAA,WAAW,EAAE,EARK;AASlB,aAAW;AACPN,IAAAA,cAAc,EAAE;AADT;AATO,CAAD,qBAArB;AAcA,IAAMO,YAAY,gBAAGZ,GAAG,CAAC;AACrB,iCAA+B;AAC3Ba,IAAAA,MAAM,EAAE,CADmB;AAE3BF,IAAAA,WAAW,EAAE;AAFc;AADV,CAAD,wBAAxB;AAOA,IAAMG,WAAW,gBAAGd,GAAG,CAAC;AACpB,gBAAc;AACVe,IAAAA,OAAO,EAAE;AADC;AADM,CAAD,uBAAvB;AAMA,OAAO,IAAMC,aAAuB,GAAG,SAA1BA,aAA0B,GAAM;AACzC,sBACI,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEF,WAAjB;AAA8B,IAAA,KAAK,EAAE;AAAEG,MAAAA,OAAO,EAAE;AAAX;AAArC,kBACI,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAEL,YAArB;AAAmC,IAAA,MAAM,EAAE,KAA3C;AAAkD,IAAA,QAAQ;AAA1D,kBACI;AAAM,IAAA,SAAS,EAAET;AAAjB,wBADJ,CADJ,CADJ;AAOH,CARM","sourcesContent":["// TODO: implement this without relying on the `ui` package\nimport React from \"react\";\nimport { css } from \"emotion\";\nimport { List, ListItem } from \"@webiny/ui/List\";\n\nconst linkStyle = css({\n color: \"var(--mdc-theme-text-primary-on-background)\",\n textDecoration: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n height: \"100%\",\n outline: \"none\",\n paddingLeft: 72,\n \"&:hover\": {\n textDecoration: \"none\"\n }\n});\n\nconst submenuItems = css({\n \".mdc-drawer &.mdc-list-item\": {\n margin: 0,\n paddingLeft: 0\n }\n});\n\nconst submenuList = css({\n \"&.mdc-list\": {\n padding: 0\n }\n});\n\nexport const NothingToShow: React.FC = () => {\n return (\n <List className={submenuList} style={{ opacity: 0.4 }}>\n <ListItem className={submenuItems} ripple={false} disabled>\n <span className={linkStyle}>Nothing to show.</span>\n </ListItem>\n </List>\n );\n};\n"]}
|
|
@@ -10,7 +10,7 @@ var plugins = [{
|
|
|
10
10
|
identity = _ref.identity;
|
|
11
11
|
var apiUrl = appConfig.getKey("API_URL", process.env.REACT_APP_API_URL);
|
|
12
12
|
|
|
13
|
-
if (!identity.getPermission("cms.endpoint.manage")) {
|
|
13
|
+
if (!identity || !identity.getPermission || !identity.getPermission("cms.endpoint.manage")) {
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -29,7 +29,7 @@ var plugins = [{
|
|
|
29
29
|
identity = _ref2.identity;
|
|
30
30
|
var apiUrl = appConfig.getKey("API_URL", process.env.REACT_APP_API_URL);
|
|
31
31
|
|
|
32
|
-
if (!identity.getPermission("cms.endpoint.read")) {
|
|
32
|
+
if (!identity || !identity.getPermission || !identity.getPermission("cms.endpoint.read")) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -48,7 +48,7 @@ var plugins = [{
|
|
|
48
48
|
identity = _ref3.identity;
|
|
49
49
|
var apiUrl = appConfig.getKey("API_URL", process.env.REACT_APP_API_URL);
|
|
50
50
|
|
|
51
|
-
if (!identity.getPermission("cms.endpoint.preview")) {
|
|
51
|
+
if (!identity || !identity.getPermission || !identity.getPermission("cms.endpoint.preview")) {
|
|
52
52
|
return null;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["manageQuery","readQuery","previewQuery","config","appConfig","plugins","type","name","tab","locale","identity","apiUrl","getKey","process","env","REACT_APP_API_URL","getPermission","endpoint","headers","query"],"mappings":"AAEA,IAAMA,WAAW,0eAAjB;AACA,IAAMC,SAAS,2ZAAf;AACA,IAAMC,YAAY,mbAAlB;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAEA,IAAMC,OAAqC,GAAG,CAC1C;AACIC,EAAAA,IAAI,EAAE,wBADV;AAEIC,EAAAA,IAAI,EAAE,+BAFV;AAGIC,EAAAA,GAHJ,qBAG8B;AAAA,QAApBC,MAAoB,QAApBA,MAAoB;AAAA,QAAZC,QAAY,QAAZA,QAAY;AACtB,QAAMC,MAAM,GAAGP,SAAS,CAACQ,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,QACI,CAACL,QAAD,IACA,CAACA,QAAQ,CAACM,aADV,IAEA,CAACN,QAAQ,CAACM,aAAT,CAAuB,qBAAvB,CAHL,EAIE;AACE,aAAO,IAAP;AACH;;AAED,WAAO;AACHT,MAAAA,IAAI,EAAE,2BADH;AAEHU,MAAAA,QAAQ,EAAEN,MAAM,GAAG,cAAT,GAA0BF,MAFjC;AAGHS,MAAAA,OAAO,EAAE,EAHN;AAIHC,MAAAA,KAAK,EAAEnB;AAJJ,KAAP;AAMH;AAnBL,CAD0C,EAsB1C;AACIM,EAAAA,IAAI,EAAE,wBADV;AAEIC,EAAAA,IAAI,EAAE,6BAFV;AAGIC,EAAAA,GAHJ,sBAG8B;AAAA,QAApBC,MAAoB,SAApBA,MAAoB;AAAA,QAAZC,QAAY,SAAZA,QAAY;AACtB,QAAMC,MAAM,GAAGP,SAAS,CAACQ,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,QACI,CAACL,QAAD,IACA,CAACA,QAAQ,CAACM,aADV,IAEA,CAACN,QAAQ,CAACM,aAAT,CAAuB,mBAAvB,CAHL,EAIE;AACE,aAAO,IAAP;AACH;;AAED,WAAO;AACHT,MAAAA,IAAI,EAAE,yBADH;AAEHU,MAAAA,QAAQ,EAAEN,MAAM,GAAG,YAAT,GAAwBF,MAF/B;AAGHS,MAAAA,OAAO,EAAE,EAHN;AAIHC,MAAAA,KAAK,EAAElB;AAJJ,KAAP;AAMH;AAnBL,CAtB0C,EA2C1C;AACIK,EAAAA,IAAI,EAAE,wBADV;AAEIC,EAAAA,IAAI,EAAE,gCAFV;AAGIC,EAAAA,GAHJ,sBAG8B;AAAA,QAApBC,MAAoB,SAApBA,MAAoB;AAAA,QAAZC,QAAY,SAAZA,QAAY;AACtB,QAAMC,MAAM,GAAGP,SAAS,CAACQ,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,QACI,CAACL,QAAD,IACA,CAACA,QAAQ,CAACM,aADV,IAEA,CAACN,QAAQ,CAACM,aAAT,CAAuB,sBAAvB,CAHL,EAIE;AACE,aAAO,IAAP;AACH;;AAED,WAAO;AACHT,MAAAA,IAAI,EAAE,4BADH;AAEHU,MAAAA,QAAQ,EAAEN,MAAM,GAAG,eAAT,GAA2BF,MAFlC;AAGHS,MAAAA,OAAO,EAAE,EAHN;AAIHC,MAAAA,KAAK,EAAEjB;AAJJ,KAAP;AAMH;AAnBL,CA3C0C,CAA9C;AAkEA,eAAeG,OAAf","sourcesContent":["import { GraphQLPlaygroundTabPlugin } from \"@webiny/app-graphql-playground/types\";\nimport raw from \"raw.macro\";\nconst manageQuery = raw(\"./placeholder.manage.graphql\");\nconst readQuery = raw(\"./placeholder.read.graphql\");\nconst previewQuery = raw(\"./placeholder.preview.graphql\");\nimport { config as appConfig } from \"@webiny/app/config\";\n\nconst plugins: GraphQLPlaygroundTabPlugin[] = [\n {\n type: \"graphql-playground-tab\",\n name: \"graphql-playground-tab-manage\",\n tab({ locale, identity }) {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n if (\n !identity ||\n !identity.getPermission ||\n !identity.getPermission(\"cms.endpoint.manage\")\n ) {\n return null;\n }\n\n return {\n name: \"Headless CMS - Manage API\",\n endpoint: apiUrl + \"/cms/manage/\" + locale,\n headers: {},\n query: manageQuery\n };\n }\n },\n {\n type: \"graphql-playground-tab\",\n name: \"graphql-playground-tab-read\",\n tab({ locale, identity }) {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n if (\n !identity ||\n !identity.getPermission ||\n !identity.getPermission(\"cms.endpoint.read\")\n ) {\n return null;\n }\n\n return {\n name: \"Headless CMS - Read API\",\n endpoint: apiUrl + \"/cms/read/\" + locale,\n headers: {},\n query: readQuery\n };\n }\n },\n {\n type: \"graphql-playground-tab\",\n name: \"graphql-playground-tab-preview\",\n tab({ locale, identity }) {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n if (\n !identity ||\n !identity.getPermission ||\n !identity.getPermission(\"cms.endpoint.preview\")\n ) {\n return null;\n }\n\n return {\n name: \"Headless CMS - Preview API\",\n endpoint: apiUrl + \"/cms/preview/\" + locale,\n headers: {},\n query: previewQuery\n };\n }\n }\n];\n\nexport default plugins;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CmsEditorFieldValidatorFileTypePlugin.ts"],"names":["Plugin","CmsEditorFieldValidatorFileTypePlugin","config","_settings","settings","setSettings","name","label","message"],"mappings":";;;;;;AAAA,SAASA,MAAT,QAAuB,wBAAvB;AAUA,WAAaC,qCAAb;AAAA;;AAAA;;AAcI,iDAAmBC,MAAnB,EAAmC;AAAA;;AAAA;;AAC/B;;AAD+B;;AAAA;;AAE/B,UAAKA,MAAL,GAAcA,MAAd;AAF+B;AAGlC;;AAjBL;AAAA;AAAA,SAUI,eAAgC;AAC5B,aAAO,KAAKC,SAAZ;AACH,KAZL;AAAA,SAMI,aAAoBC,QAApB,EAAwC;AACpC,WAAKC,WAAL,CAAiBD,QAAjB;AACH;AARL;AAAA;AAAA,WAmBI,mBAAyB;AACrB,aAAO,KAAKF,MAAL,CAAYI,IAAnB;AACH;AArBL;AAAA;AAAA,WAuBI,oBAA0B;AACtB,aAAO,KAAKJ,MAAL,CAAYK,KAAnB;AACH;AAzBL;AAAA;AAAA,WA2BI,sBAA4B;AACxB,aAAO,KAAKL,MAAL,CAAYM,OAAnB;AACH;AA7BL;AAAA;AAAA,WA+BI,qBAAoBJ,QAApB,EAA8C;AAC1C,WAAKD,SAAL,GAAiBC,QAAjB;AACH;AAjCL;;AAAA;AAAA,EAA2DJ,MAA3D;;gBAAaC,qC,UACsC,qC","sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\n\nexport interface Config {\n name: string;\n message: string;\n label: string;\n}\nexport interface Settings {\n fileType: \"all\" | \"image\" | \"document\" | string;\n}\nexport class CmsEditorFieldValidatorFileTypePlugin extends Plugin {\n public static override readonly type: string = \"cms-editor-field-validator-fileType\";\n\n private readonly config: Config;\n private _settings: Settings | undefined;\n\n public set settings(settings: Settings) {\n this.setSettings(settings);\n }\n\n public get settings(): Settings {\n return this._settings as Settings;\n }\n\n public constructor(config: Config) {\n super();\n this.config = config;\n }\n\n public getName(): string {\n return this.config.name;\n }\n\n public getLabel(): string {\n return this.config.label;\n }\n\n public getMessage(): string {\n return this.config.message;\n }\n\n private setSettings(settings: Settings): void {\n this._settings = settings;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CmsFieldValidatorFileTypePlugin.ts"],"names":["Plugin","CmsFieldValidatorFileTypePlugin","config","name"],"mappings":";;;;;;AAAA,SAASA,MAAT,QAAuB,wBAAvB;AAKA,WAAaC,+BAAb;AAAA;;AAAA;;AAKI,2CAAmBC,MAAnB,EAAmC;AAAA;;AAAA;;AAC/B;;AAD+B;;AAE/B,UAAKA,MAAL,GAAcA,MAAd;AAF+B;AAGlC;;AARL;AAAA;AAAA,WAUI,mBAAyB;AACrB,aAAO,KAAKA,MAAL,CAAYC,IAAnB;AACH;AAZL;;AAAA;AAAA,EAAqDH,MAArD;;gBAAaC,+B,UACsC,oC","sourcesContent":["import { Plugin } from \"@webiny/plugins/Plugin\";\n\nexport interface Config {\n name: string;\n}\nexport class CmsFieldValidatorFileTypePlugin extends Plugin {\n public static override readonly type: string = \"cms-model-field-validator-fileType\";\n\n private readonly config: Config;\n\n public constructor(config: Config) {\n super();\n this.config = config;\n }\n\n public getName(): string {\n return this.config.name;\n }\n}\n"]}
|
|
@@ -7,12 +7,14 @@ var backStyles = /*#__PURE__*/css({
|
|
|
7
7
|
marginLeft: -10
|
|
8
8
|
}, "label:backStyles;");
|
|
9
9
|
var BackButton = /*#__PURE__*/React.memo(function () {
|
|
10
|
-
var
|
|
10
|
+
var _useRouter = useRouter(),
|
|
11
|
+
history = _useRouter.history;
|
|
12
|
+
|
|
11
13
|
return /*#__PURE__*/React.createElement(IconButton, {
|
|
12
14
|
"data-testid": "cms-editor-back-button",
|
|
13
15
|
className: backStyles,
|
|
14
16
|
onClick: function onClick() {
|
|
15
|
-
return
|
|
17
|
+
return history.push("/cms/content-models");
|
|
16
18
|
},
|
|
17
19
|
icon: /*#__PURE__*/React.createElement(BackIcon, null)
|
|
18
20
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["BackButton.tsx"],"names":["React","css","IconButton","useRouter","ReactComponent","BackIcon","backStyles","marginLeft","BackButton","memo","history","push","displayName"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,cAAc,IAAIC,QAA3B;AAEA,IAAMC,UAAU,gBAAGL,GAAG,CAAC;AACnBM,EAAAA,UAAU,EAAE,CAAC;AADM,CAAD,sBAAtB;AAIA,IAAMC,UAAoB,gBAAGR,KAAK,CAACS,IAAN,CAAW,YAAM;AAC1C,mBAAoBN,SAAS,EAA7B;AAAA,MAAQO,OAAR,cAAQA,OAAR;;AAEA,sBACI,oBAAC,UAAD;AACI,mBAAY,wBADhB;AAEI,IAAA,SAAS,EAAEJ,UAFf;AAGI,IAAA,OAAO,EAAE;AAAA,aAAMI,OAAO,CAACC,IAAR,uBAAN;AAAA,KAHb;AAII,IAAA,IAAI,eAAE,oBAAC,QAAD;AAJV,IADJ;AAQH,CAX4B,CAA7B;AAaAH,UAAU,CAACI,WAAX,GAAyB,YAAzB;AAEA,eAAeJ,UAAf","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { ReactComponent as BackIcon } from \"./icons/round-arrow_back-24px.svg\";\n\nconst backStyles = css({\n marginLeft: -10\n});\n\nconst BackButton: React.FC = React.memo(() => {\n const { history } = useRouter();\n\n return (\n <IconButton\n data-testid=\"cms-editor-back-button\"\n className={backStyles}\n onClick={() => history.push(`/cms/content-models`)}\n icon={<BackIcon />}\n />\n );\n});\n\nBackButton.displayName = \"BackButton\";\n\nexport default BackButton;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CreateContentButton.tsx"],"names":["React","get","useRouter","i18n","IconButton","Tooltip","ReactComponent","ViewListIcon","GET_CONTENT_MODEL","useContentModelEditor","t","namespace","CreateContentButton","router","data","apolloClient","getQuery","readQuery","query","variables","modelId","fields","disableViewContent","length","message","history","push"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,GAAP,MAAgB,YAAhB;AACA,SAASC,SAAT,QAA0B,sBAA1B;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,cAAc,IAAIC,YAA3B;AACA,SACIC,iBADJ;AAKA,SAASC,qBAAT;AAEA,IAAMC,CAAC,GAAGP,IAAI,CAACQ,SAAL,CAAe,mDAAf,CAAV;;AAEA,IAAMC,mBAA6B,GAAG,SAAhCA,mBAAgC,GAAM;AACxC,MAAMC,MAAM,GAAGX,SAAS,EAAxB;;AACA,8BAA+BO,qBAAqB,EAApD;AAAA,MAAQK,IAAR,yBAAQA,IAAR;AAAA,MAAcC,YAAd,yBAAcA,YAAd;;AAEA,MAAMC,QAAQ,GAAGD,YAAY,CAACE,SAAb,CAA4E;AACzFC,IAAAA,KAAK,EAAEV,iBADkF;AAEzFW,IAAAA,SAAS,EAAE;AACPC,MAAAA,OAAO,EAAEN,IAAI,CAACM;AADP;AAF8E,GAA5E,CAAjB;AAMA,MAAMC,MAAM,GAAGpB,GAAG,CAACe,QAAD,EAAW,6BAAX,EAA0C,EAA1C,CAAlB;AACA,MAAMM,kBAAkB,GAAGD,MAAM,CAACE,MAAP,KAAkB,CAA7C;AACA,MAAMC,OAAO,GAAGF,kBAAkB,GAC5B,sEAD4B,GAE5B,cAFN;AAIA,sBACI,oBAAC,OAAD;AAAS,IAAA,OAAO,EAAEZ,CAAC,8EAAD,CAAa;AAAEc,MAAAA,OAAO,EAAPA;AAAF,KAAb,CAAlB;AAA6C,IAAA,SAAS,EAAE;AAAxD,kBACI,oBAAC,UAAD;AACI,IAAA,IAAI,eAAE,oBAAC,YAAD,OADV;AAEI,IAAA,OAAO,EAAE;AAAA,aAAMX,MAAM,CAACY,OAAP,CAAeC,IAAf,gCAA4CZ,IAAI,CAACM,OAAjD,EAAN;AAAA,KAFb;AAGI,IAAA,QAAQ,EAAEE;AAHd,IADJ,CADJ;AASH,CAzBD;;AA2BA,eAAeV,mBAAf","sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as ViewListIcon } from \"~/admin/icons/view_list.svg\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/editor/top-bar/save-button\");\n\nconst CreateContentButton: React.FC = () => {\n const router = useRouter();\n const { data, apolloClient } = useContentModelEditor();\n\n const getQuery = apolloClient.readQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>({\n query: GET_CONTENT_MODEL,\n variables: {\n modelId: data.modelId\n }\n });\n const fields = get(getQuery, \"getContentModel.data.fields\", []);\n const disableViewContent = fields.length === 0;\n const message = disableViewContent\n ? \"To view the content, you first need to add a field and save the form\"\n : \"View content\";\n\n return (\n <Tooltip content={t`{message}`({ message })} placement={\"bottom\"}>\n <IconButton\n icon={<ViewListIcon />}\n onClick={() => router.history.push(`/cms/content-entries/${data.modelId}`)}\n disabled={disableViewContent}\n />\n </Tooltip>\n );\n};\n\nexport default CreateContentButton;\n"]}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
declare const Divider: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
|
|
1
|
+
declare const Divider: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
3
2
|
export default Divider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Divider.tsx"],"names":["styled","Divider","width","margin","height","backgroundColor"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,iBAAnB;AAEA,IAAMC,OAAO,gBAAGD,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAC1BE,EAAAA,KAAK,EAAE,CADmB;AAE1BC,EAAAA,MAAM,EAAE,OAFkB;AAG1BC,EAAAA,MAAM,EAAE,MAHkB;AAI1BC,EAAAA,eAAe,EAAE;AAJS,CAAjB,CAAb;AAOA,eAAeJ,OAAf","sourcesContent":["import styled from \"@emotion/styled\";\n\nconst Divider = styled(\"div\")({\n width: 1,\n margin: \"0 5px\",\n height: \"100%\",\n backgroundColor: \"var(--mdc-theme-on-background)\"\n});\n\nexport default Divider;\n"]}
|
|
@@ -74,15 +74,25 @@ var FormSettings = function FormSettings(_ref) {
|
|
|
74
74
|
return /*#__PURE__*/React.createElement(SF.SimpleForm, null, /*#__PURE__*/React.createElement(SF.SimpleFormHeader, {
|
|
75
75
|
title: activePlugin.title
|
|
76
76
|
}, typeof activePlugin.renderHeaderActions === "function" && activePlugin.renderHeaderActions({
|
|
77
|
+
/**
|
|
78
|
+
* TODO @ts-refactor
|
|
79
|
+
* Figure out type for Bind
|
|
80
|
+
*/
|
|
77
81
|
Bind: Bind,
|
|
78
82
|
form: form,
|
|
79
83
|
formData: formData
|
|
80
84
|
})), /*#__PURE__*/React.createElement(SF.SimpleFormContent, null, activePlugin ? activePlugin.render({
|
|
85
|
+
/**
|
|
86
|
+
* TODO @ts-refactor
|
|
87
|
+
* Figure out type for Bind
|
|
88
|
+
*/
|
|
81
89
|
Bind: Bind,
|
|
82
90
|
form: form,
|
|
83
91
|
formData: formData
|
|
84
92
|
}) : null), /*#__PURE__*/React.createElement(SF.SimpleFormFooter, null, /*#__PURE__*/React.createElement(ButtonPrimary, {
|
|
85
|
-
onClick:
|
|
93
|
+
onClick: function onClick(ev) {
|
|
94
|
+
submit(ev);
|
|
95
|
+
}
|
|
86
96
|
}, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Save settings"]))))));
|
|
87
97
|
}))));
|
|
88
98
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FormSettings.tsx"],"names":["React","useState","plugins","OverlayLayout","SplitView","LeftPanel","RightPanel","Typography","Form","Icon","ButtonPrimary","List","ListItem","ListItemGraphic","useSnackbar","i18n","SF","Title","listItem","ListItemTitle","listStyle","TitleContent","useContentModelEditor","t","namespace","FormSettings","onExited","cmsEditorFormSettingsPlugins","byType","data","setData","showSnackbar","activePlugin","setActivePlugin","map","pl","name","icon","title","description","Bind","submit","form","formData","renderHeaderActions","render","ev"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { OverlayLayout } from \"@webiny/app-admin/components/OverlayLayout\";\nimport { SplitView, LeftPanel, RightPanel } from \"@webiny/app-admin/components/SplitView\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Form } from \"@webiny/form\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { List, ListItem, ListItemGraphic } from \"@webiny/ui/List\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport * as SF from \"@webiny/app-admin/components/SimpleForm\";\nimport { CmsEditorFormSettingsPlugin } from \"~/types\";\nimport { Title, listItem, ListItemTitle, listStyle, TitleContent } from \"./FormSettingsStyled\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"FormsApp.Editor.FormSettings\");\n\ninterface FormSettingsProps {\n onExited: () => void;\n}\n\nconst FormSettings: React.FC<FormSettingsProps> = ({ onExited }) => {\n const cmsEditorFormSettingsPlugins = plugins.byType<CmsEditorFormSettingsPlugin>(\n \"cms-editor-form-settings\"\n );\n const { data, setData } = useContentModelEditor();\n const { showSnackbar } = useSnackbar();\n\n const [activePlugin, setActivePlugin] = useState(cmsEditorFormSettingsPlugins[0]);\n\n return (\n <OverlayLayout barMiddle={Title} onExited={onExited}>\n <SplitView>\n <LeftPanel span={5}>\n <List twoLine className={listStyle}>\n {cmsEditorFormSettingsPlugins.map(pl => (\n <ListItem\n key={pl.name}\n className={listItem}\n onClick={() => setActivePlugin(pl)}\n >\n <ListItemGraphic>\n <Icon icon={pl.icon} />\n </ListItemGraphic>\n <TitleContent>\n <ListItemTitle>{pl.title}</ListItemTitle>\n <Typography use={\"subtitle2\"}>{pl.description}</Typography>\n </TitleContent>\n </ListItem>\n ))}\n </List>\n </LeftPanel>\n <RightPanel span={7}>\n <Form\n data={data}\n onSubmit={data => {\n setData(() => data);\n onExited();\n showSnackbar(t`Content model settings updated successfully.`);\n }}\n >\n {({ Bind, submit, form, data: formData }) => (\n <SF.SimpleForm>\n <SF.SimpleFormHeader title={activePlugin.title}>\n {typeof activePlugin.renderHeaderActions === \"function\" &&\n activePlugin.renderHeaderActions({\n /**\n * TODO @ts-refactor\n * Figure out type for Bind\n */\n Bind: Bind as any,\n form,\n formData\n })}\n </SF.SimpleFormHeader>\n <SF.SimpleFormContent>\n {activePlugin\n ? activePlugin.render({\n /**\n * TODO @ts-refactor\n * Figure out type for Bind\n */\n Bind: Bind as any,\n form,\n formData\n })\n : null}\n </SF.SimpleFormContent>\n <SF.SimpleFormFooter>\n <ButtonPrimary\n onClick={ev => {\n submit(ev);\n }}\n >{t`Save settings`}</ButtonPrimary>\n </SF.SimpleFormFooter>\n </SF.SimpleForm>\n )}\n </Form>\n </RightPanel>\n </SplitView>\n </OverlayLayout>\n );\n};\n\nexport default FormSettings;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FormSettingsButton.tsx"],"names":["React","useState","useCallback","IconButton","FormSettings","ReactComponent","SettingsIcon","FormSettingsButton","opened","setOpened","open","close"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,WAA1B,QAA6C,OAA7C;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,YAAP;AAEA,SAASC,cAAc,IAAIC,YAA3B;;AAEA,IAAMC,kBAA4B,GAAG,SAA/BA,kBAA+B,GAAM;AACvC,kBAA4BN,QAAQ,CAAC,KAAD,CAApC;AAAA;AAAA,MAAOO,MAAP;AAAA,MAAeC,SAAf;;AACA,MAAMC,IAAI,GAAGR,WAAW,CAAC;AAAA,WAAMO,SAAS,CAAC,IAAD,CAAf;AAAA,GAAD,EAAwB,EAAxB,CAAxB;AACA,MAAME,KAAK,GAAGT,WAAW,CAAC;AAAA,WAAMO,SAAS,CAAC,KAAD,CAAf;AAAA,GAAD,EAAyB,EAAzB,CAAzB;AAEA,sBACI,uDACI,oBAAC,UAAD;AAAY,IAAA,OAAO,EAAEC,IAArB;AAA2B,IAAA,IAAI,eAAE,oBAAC,YAAD;AAAjC,IADJ,EAEKF,MAAM,iBAAI,oBAAC,YAAD;AAAc,IAAA,QAAQ,EAAEG;AAAxB,IAFf,CADJ;AAMH,CAXD;;AAaA,eAAeJ,kBAAf","sourcesContent":["import React, { useState, useCallback } from \"react\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport FormSettings from \"./FormSettings\";\n\nimport { ReactComponent as SettingsIcon } from \"./../icons/settings.svg\";\n\nconst FormSettingsButton: React.FC = () => {\n const [opened, setOpened] = useState(false);\n const open = useCallback(() => setOpened(true), []);\n const close = useCallback(() => setOpened(false), []);\n\n return (\n <>\n <IconButton onClick={open} icon={<SettingsIcon />} />\n {opened && <FormSettings onExited={close} />}\n </>\n );\n};\n\nexport default FormSettingsButton;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
export declare const listStyle: string;
|
|
3
3
|
export declare const listItem: string;
|
|
4
|
-
export declare const ListItemTitle: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<React.
|
|
4
|
+
export declare const ListItemTitle: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement>>, object>;
|
|
5
5
|
export declare const Title: JSX.Element;
|
|
6
|
-
export declare const TitleContent: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<React.
|
|
6
|
+
export declare const TitleContent: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement>>, object>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FormSettingsStyled.tsx"],"names":["React","css","styled","Typography","listStyle","padding","backgroundColor","listItem","cursor","borderBottom","marginRight","ListItemTitle","fontWeight","marginBottom","Title","margin","color","TitleContent","display","flexDirection"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,GAAT,QAAoB,SAApB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,UAAT,QAA2B,uBAA3B;AAEA,OAAO,IAAMC,SAAS,gBAAGH,GAAG,CAAC;AACzB,gBAAc;AACVI,IAAAA,OAAO,EAAE,CADC;AAEVC,IAAAA,eAAe,EAAE;AAFP;AADW,CAAD,qBAArB;AAOP,OAAO,IAAMC,QAAQ,gBAAGN,GAAG,CAAC;AACxBI,EAAAA,OAAO,EAAE,WADe;AAExBG,EAAAA,MAAM,EAAE,SAFgB;AAGxBC,EAAAA,YAAY,EAAE,uCAHU;AAIxB,kBAAgB;AACZA,IAAAA,YAAY,EAAE;AADF,GAJQ;AAOxB,6BAA2B;AACvBC,IAAAA,WAAW,EAAE;AADU;AAPH,CAAD,oBAApB;AAYP,OAAO,IAAMC,aAAa,gBAAGT,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACvCU,EAAAA,UAAU,EAAE,GAD2B;AAEvCC,EAAAA,YAAY,EAAE;AAFyB,CAAjB,CAAnB;AAKP,OAAO,IAAMC,KAAK,gBACd,oBAAC,UAAD;AACI,EAAA,KAAK,EAAE;AAAEC,IAAAA,MAAM,EAAE,QAAV;AAAoBC,IAAAA,KAAK,EAAE;AAA3B,GADX;AAEI,EAAA,GAAG,EAAE;AAFT,4BADG;AASP,OAAO,IAAMC,YAAY,gBAAGf,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACtCgB,EAAAA,OAAO,EAAE,MAD6B;AAEtCC,EAAAA,aAAa,EAAE;AAFuB,CAAjB,CAAlB","sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nexport const listStyle = css({\n \"&.mdc-list\": {\n padding: 0,\n backgroundColor: \"var(--mdc-theme-surface)\"\n }\n});\n\nexport const listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nexport const ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nexport const Title = (\n <Typography\n style={{ margin: \"0 auto\", color: \"var(--mdc-theme-on-surface)\" }}\n use={\"headline6\"}\n >\n Content model settings\n </Typography>\n);\n\nexport const TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["default","FormSettingsButton"],"mappings":"AAAA,SAASA,OAAO,IAAIC,kBAApB","sourcesContent":["export { default as FormSettingsButton } from \"./FormSettingsButton\";\n"]}
|
|
@@ -21,7 +21,7 @@ export var Name = function Name() {
|
|
|
21
21
|
data = _useContentModelEdito.data,
|
|
22
22
|
setData = _useContentModelEdito.setData;
|
|
23
23
|
|
|
24
|
-
var _useState = useState(
|
|
24
|
+
var _useState = useState(""),
|
|
25
25
|
_useState2 = _slicedToArray(_useState, 2),
|
|
26
26
|
localName = _useState2[0],
|
|
27
27
|
setLocalName = _useState2[1];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Name.tsx"],"names":["React","useCallback","useState","Input","Tooltip","useHotkeys","FormName","formNameWrapper","NameInputWrapper","NameWrapper","i18n","useContentModelEditor","t","namespace","Name","data","setData","localName","setLocalName","editingEnabled","setEditing","cancelChanges","startEditing","name","saveName","event","preventDefault","zIndex","keys","disabled","esc","enter","autoFocus","window","Cypress"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,QAA7B,QAA6C,OAA7C;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA;AACA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,QAAT,EAAmBC,eAAnB,EAAoCC,gBAApC,EAAsDC,WAAtD;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,qBAAT;AAEA,IAAMC,CAAC,GAAGF,IAAI,CAACG,SAAL,CAAe,yBAAf,CAAV;AAQA,OAAO,IAAMC,IAAc,GAAG,SAAjBA,IAAiB,GAAM;AAChC,8BAA0BH,qBAAqB,EAA/C;AAAA,MAAQI,IAAR,yBAAQA,IAAR;AAAA,MAAcC,OAAd,yBAAcA,OAAd;;AACA,kBAAkCd,QAAQ,CAAS,EAAT,CAA1C;AAAA;AAAA,MAAOe,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAAqChB,QAAQ,CAAU,KAAV,CAA7C;AAAA;AAAA,MAAOiB,cAAP;AAAA,MAAuBC,UAAvB;;AAEA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AACxBD,IAAAA,UAAU,CAAC,KAAD,CAAV;AACH,GAFD;;AAIA,MAAME,YAAY,GAAG,SAAfA,YAAe,GAAY;AAC7BJ,IAAAA,YAAY,CAACH,IAAI,CAACQ,IAAN,CAAZ;AACAH,IAAAA,UAAU,CAAC,IAAD,CAAV;AACH,GAHD;;AAKA,MAAMI,QAAQ,GAAGvB,WAAW,CACxB,UAACwB,KAAD,EAAiC;AAC7BA,IAAAA,KAAK,CAACC,cAAN;AACAV,IAAAA,OAAO,CAAC,UAAAD,IAAI,EAAI;AACZA,MAAAA,IAAI,CAACQ,IAAL,GAAYN,SAAZ;AACA,aAAOF,IAAP;AACH,KAHM,CAAP;AAIAK,IAAAA,UAAU,CAAC,KAAD,CAAV;AACH,GARuB,EASxB,CAACH,SAAD,CATwB,CAA5B;AAYAZ,EAAAA,UAAU,CAAC;AACPsB,IAAAA,MAAM,EAAE,GADD;AAEPC,IAAAA,IAAI,EAAE;AACF,uBAAiBN;AADf;AAFC,GAAD,CAAV;AAOAjB,EAAAA,UAAU,CAAC;AACPsB,IAAAA,MAAM,EAAE,GADD;AAEPE,IAAAA,QAAQ,EAAE,CAACV,cAFJ;AAGPS,IAAAA,IAAI,EAAE;AACFE,MAAAA,GAAG,EAAE,aAACL,KAAD,EAAiC;AAClCA,QAAAA,KAAK,CAACC,cAAN;AACAL,QAAAA,aAAa;AAChB,OAJC;AAKFU,MAAAA,KAAK,EAAEP;AALL;AAHC,GAAD,CAAV,CAjCgC,CA6ChC;AACA;;AACA,MAAMQ,SAAS,GAAG,CAACC,MAAM,CAACC,OAA1B;AAEA,SAAOf,cAAc,gBACjB,oBAAC,gBAAD,qBACI,oBAAC,KAAD;AACI,IAAA,SAAS,EAAEa,SADf;AAEI,IAAA,SAAS,MAFb;AAGI,IAAA,KAAK,EAAEf,SAHX;AAII,IAAA,QAAQ,EAAEC,YAJd;AAKI,IAAA,MAAM,EAAEM;AALZ,IADJ,CADiB,gBAWjB,oBAAC,WAAD,qBACI,oBAAC,OAAD;AACI,IAAA,SAAS,EAAEjB,eADf;AAEI,IAAA,SAAS,EAAE,QAFf;AAGI,IAAA,OAAO,eAAE,kCAAOK,CAAP;AAHb,kBAKI,oBAAC,QAAD;AAAU,mBAAY,wBAAtB;AAA+C,IAAA,OAAO,EAAEU;AAAxD,KACKP,IAAI,CAACQ,IADV,CALJ,CADJ,CAXJ;AAuBH,CAxEM","sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { useHotkeys } from \"react-hotkeyz\";\nimport { FormName, formNameWrapper, NameInputWrapper, NameWrapper } from \"./NameStyled\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"ContentModelEditor.Name\");\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nexport const Name: React.FC = () => {\n const { data, setData } = useContentModelEditor();\n const [localName, setLocalName] = useState<string>(\"\");\n const [editingEnabled, setEditing] = useState<boolean>(false);\n\n const cancelChanges = () => {\n setEditing(false);\n };\n\n const startEditing = (): void => {\n setLocalName(data.name);\n setEditing(true);\n };\n\n const saveName = useCallback(\n (event: React.SyntheticEvent) => {\n event.preventDefault();\n setData(data => {\n data.name = localName;\n return data;\n });\n setEditing(false);\n },\n [localName]\n );\n\n useHotkeys({\n zIndex: 100,\n keys: {\n \"alt+cmd+enter\": startEditing\n }\n });\n\n useHotkeys({\n zIndex: 101,\n disabled: !editingEnabled,\n keys: {\n esc: (event: React.SyntheticEvent) => {\n event.preventDefault();\n cancelChanges();\n },\n enter: saveName\n }\n });\n\n // Disable autoFocus because for some reason, blur event would automatically be triggered when clicking\n // on the page title when doing Cypress testing. Not sure if this is RMWC or Cypress related issue.\n const autoFocus = !window.Cypress;\n\n return editingEnabled ? (\n <NameInputWrapper>\n <Input\n autoFocus={autoFocus}\n fullwidth\n value={localName}\n onChange={setLocalName}\n onBlur={saveName}\n />\n </NameInputWrapper>\n ) : (\n <NameWrapper>\n <Tooltip\n className={formNameWrapper}\n placement={\"bottom\"}\n content={<span>{t`rename`}</span>}\n >\n <FormName data-testid=\"cms-editor-model-title\" onClick={startEditing}>\n {data.name}\n </FormName>\n </Tooltip>\n </NameWrapper>\n );\n};\n"]}
|