@webiny/app-headless-cms 5.27.0-beta.0 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HeadlessCMS.js +33 -13
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.js +61 -34
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +41 -18
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
- package/admin/components/ContentEntryForm/Fields.js +22 -9
- package/admin/components/ContentEntryForm/Fields.js.map +1 -1
- package/admin/components/ContentEntryForm/Label.js +23 -9
- package/admin/components/ContentEntryForm/Label.js.map +1 -1
- package/admin/components/ContentEntryForm/RenderFieldElement.js +31 -15
- package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/createValidators.js +23 -8
- package/admin/components/ContentEntryForm/functions/createValidators.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/getValue.js +11 -2
- package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
- package/admin/components/ContentEntryForm/functions/setValue.js +16 -4
- package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
- package/admin/components/ContentEntryForm/useBind.js +31 -27
- package/admin/components/ContentEntryForm/useBind.js.map +1 -1
- package/admin/components/ContentEntryForm/useContentEntryForm.js +77 -52
- package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/useRenderPlugins.js +14 -5
- package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -1
- package/admin/components/ContentModelEditor/Context.js +73 -43
- package/admin/components/ContentModelEditor/Context.js.map +1 -1
- package/admin/components/ContentModelEditor/Editor.js +85 -50
- package/admin/components/ContentModelEditor/Editor.js.map +1 -1
- package/admin/components/ContentModelEditor/FieldsSidebar.js +37 -19
- package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
- package/admin/components/ContentModelEditor/Header.js +24 -10
- package/admin/components/ContentModelEditor/Header.js.map +1 -1
- package/admin/components/ContentModelEditor/PreviewTab.js +36 -17
- package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
- package/admin/components/ContentModelEditor/useContentModelEditor.js +15 -4
- package/admin/components/ContentModelEditor/useContentModelEditor.js.map +1 -1
- package/admin/components/DragPreview.js +27 -12
- package/admin/components/DragPreview.js.map +1 -1
- package/admin/components/Draggable.js +22 -8
- package/admin/components/Draggable.js.map +1 -1
- package/admin/components/DropZone/Center.js +26 -12
- package/admin/components/DropZone/Center.js.map +1 -1
- package/admin/components/DropZone/Horizontal.js +31 -17
- package/admin/components/DropZone/Horizontal.js.map +1 -1
- package/admin/components/DropZone/Vertical.js +29 -15
- package/admin/components/DropZone/Vertical.js.map +1 -1
- package/admin/components/DropZone/index.js +31 -4
- package/admin/components/DropZone/index.js.map +1 -1
- package/admin/components/Droppable.js +20 -6
- package/admin/components/Droppable.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +50 -27
- package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +55 -36
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +60 -21
- package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +50 -32
- package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js +13 -3
- package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +16 -6
- package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog.js +105 -69
- package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
- package/admin/components/FieldEditor/Field.js +86 -51
- package/admin/components/FieldEditor/Field.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditor.js +66 -40
- package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/FieldEditorContext.js +51 -27
- package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
- package/admin/components/FieldEditor/Styled.js +24 -8
- package/admin/components/FieldEditor/Styled.js.map +1 -1
- package/admin/components/FieldEditor/index.js +21 -2
- package/admin/components/FieldEditor/index.js.map +1 -1
- package/admin/components/FieldEditor/useFieldEditor.js +13 -4
- package/admin/components/FieldEditor/useFieldEditor.js.map +1 -1
- package/admin/components/FieldEditor/utils/deleteField.js +19 -5
- package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
- package/admin/components/FieldEditor/utils/getFieldPosition.js +11 -2
- package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
- package/admin/components/FieldEditor/utils/index.js +39 -4
- package/admin/components/FieldEditor/utils/index.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveField.js +30 -20
- package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
- package/admin/components/FieldEditor/utils/moveRow.js +19 -6
- package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
- package/admin/constants/statusLabels.js +21 -9
- package/admin/constants/statusLabels.js.map +1 -1
- package/admin/contexts/Cms/NetworkError.js +14 -4
- package/admin/contexts/Cms/NetworkError.js.map +1 -1
- package/admin/contexts/Cms/index.js +29 -11
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/elements/ContentGroupMenuElement.js +27 -12
- package/admin/elements/ContentGroupMenuElement.js.map +1 -1
- package/admin/elements/ContentModelMenuElement.js +27 -12
- package/admin/elements/ContentModelMenuElement.js.map +1 -1
- package/admin/elements/NothingToShowElement.js +51 -30
- package/admin/elements/NothingToShowElement.js.map +1 -1
- package/admin/graphql/contentEntries.js +84 -40
- package/admin/graphql/contentEntries.js.map +1 -1
- package/admin/graphql/contentModels.js +20 -6
- package/admin/graphql/contentModels.js.map +1 -1
- package/admin/graphql/createFieldsList.js +19 -6
- package/admin/graphql/createFieldsList.js.map +1 -1
- package/admin/hooks/index.js +68 -6
- package/admin/hooks/index.js.map +1 -1
- package/admin/hooks/useApolloClient.js +13 -3
- package/admin/hooks/useApolloClient.js.map +1 -1
- package/admin/hooks/useCms.js +13 -4
- package/admin/hooks/useCms.js.map +1 -1
- package/admin/hooks/useLazyQuery.js +18 -6
- package/admin/hooks/useLazyQuery.js.map +1 -1
- package/admin/hooks/useMutation.js +18 -6
- package/admin/hooks/useMutation.js.map +1 -1
- package/admin/hooks/usePermission.js +39 -23
- package/admin/hooks/usePermission.js.map +1 -1
- package/admin/hooks/useQuery.js +18 -6
- package/admin/hooks/useQuery.js.map +1 -1
- package/admin/hooks/useQueryLocale.js +21 -7
- package/admin/hooks/useQueryLocale.js.map +1 -1
- package/admin/menus/CmsMenuLoader.js +32 -14
- package/admin/menus/CmsMenuLoader.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +43 -24
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/menus/GlobalSearchPlugins.js +31 -15
- package/admin/menus/GlobalSearchPlugins.js.map +1 -1
- package/admin/menus/NothingToShowElement.js +26 -11
- package/admin/menus/NothingToShowElement.js.map +1 -1
- package/admin/plugins/apiInformation/index.js +17 -5
- package/admin/plugins/apiInformation/index.js.map +1 -1
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js +33 -21
- package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js +33 -20
- package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -1
- package/admin/plugins/editor/defaultBar/BackButton.js +28 -11
- package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/CreateContentButton.js +39 -20
- package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Divider.js +14 -3
- package/admin/plugins/editor/defaultBar/Divider.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +67 -39
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js +29 -13
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js +30 -10
- package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js +15 -1
- package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/Name.js +47 -30
- package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/NameStyled.js +22 -7
- package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -1
- package/admin/plugins/editor/defaultBar/Name/index.js +13 -1
- package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -1
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +40 -20
- package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
- package/admin/plugins/editor/defaultBar/index.js +32 -15
- package/admin/plugins/editor/defaultBar/index.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js +33 -19
- package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
- package/admin/plugins/editor/formSettings/components/GroupSelect.js +27 -10
- package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -1
- package/admin/plugins/editor/formSettings/index.js +21 -6
- package/admin/plugins/editor/formSettings/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/Accordion.js +43 -25
- package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/DynamicSection.js +42 -24
- package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +27 -12
- package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/index.js +13 -2
- package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/checkboxes.js +30 -15
- package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +34 -15
- package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +59 -36
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +50 -30
- package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Input.js +24 -8
- package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Select.js +18 -5
- package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/Time.js +34 -15
- package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +36 -18
- package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +47 -26
- package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/index.js +15 -3
- package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js +48 -17
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/File.js +34 -16
- package/admin/plugins/fieldRenderers/file/File.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/fileField.js +30 -14
- package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/fileFields.js +54 -33
- package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/index.js +15 -3
- package/admin/plugins/fieldRenderers/file/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/utils.js +27 -10
- package/admin/plugins/fieldRenderers/file/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/index.js +15 -3
- package/admin/plugins/fieldRenderers/longText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longText.js +27 -12
- package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
- package/admin/plugins/fieldRenderers/longText/longTexts.js +33 -16
- package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/index.js +15 -3
- package/admin/plugins/fieldRenderers/number/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInput.js +27 -12
- package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/number/numberInputs.js +33 -16
- package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/StyledComponents.js +17 -5
- package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/index.js +15 -3
- package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js +51 -29
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/singleObject.js +35 -17
- package/admin/plugins/fieldRenderers/object/singleObject.js.map +1 -1
- package/admin/plugins/fieldRenderers/radioButtons.js +29 -14
- package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +61 -36
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +58 -35
- package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js +37 -18
- package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js +38 -18
- package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +87 -53
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js +15 -3
- package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/graphql.js +18 -5
- package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/helpers.js +23 -5
- package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js +42 -19
- package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js +5 -1
- package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReference.js +59 -41
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js +60 -41
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +27 -10
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +30 -10
- package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.js +15 -3
- package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInput.js +26 -11
- package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/refInputs.js +25 -11
- package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/index.js +15 -3
- package/admin/plugins/fieldRenderers/richText/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInput.js +32 -15
- package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js +43 -22
- package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
- package/admin/plugins/fieldRenderers/select.js +26 -12
- package/admin/plugins/fieldRenderers/select.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/index.js +15 -3
- package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInput.js +27 -12
- package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
- package/admin/plugins/fieldRenderers/text/textInputs.js +33 -16
- package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
- package/admin/plugins/fieldValidators/date/availableValidators.js +11 -2
- package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
- package/admin/plugins/fieldValidators/date/createDateInputField.js +27 -11
- package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
- package/admin/plugins/fieldValidators/dateGte.js +32 -15
- package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
- package/admin/plugins/fieldValidators/dateLte.js +32 -15
- package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
- package/admin/plugins/fieldValidators/gte.js +23 -9
- package/admin/plugins/fieldValidators/gte.js.map +1 -1
- package/admin/plugins/fieldValidators/in.js +23 -9
- package/admin/plugins/fieldValidators/in.js.map +1 -1
- package/admin/plugins/fieldValidators/lte.js +23 -9
- package/admin/plugins/fieldValidators/lte.js.map +1 -1
- package/admin/plugins/fieldValidators/maxLength.js +23 -9
- package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
- package/admin/plugins/fieldValidators/minLength.js +23 -9
- package/admin/plugins/fieldValidators/minLength.js.map +1 -1
- package/admin/plugins/fieldValidators/pattern.js +40 -22
- package/admin/plugins/fieldValidators/pattern.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js +8 -1
- package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/fieldValidators/required.js +8 -1
- package/admin/plugins/fieldValidators/required.js.map +1 -1
- package/admin/plugins/fieldValidators/unique.js +11 -2
- package/admin/plugins/fieldValidators/unique.js.map +1 -1
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +72 -46
- package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
- package/admin/plugins/fields/boolean.js +34 -18
- package/admin/plugins/fields/boolean.js.map +1 -1
- package/admin/plugins/fields/dateTime.js +60 -44
- package/admin/plugins/fields/dateTime.js.map +1 -1
- package/admin/plugins/fields/file.js +33 -17
- package/admin/plugins/fields/file.js.map +1 -1
- package/admin/plugins/fields/longText.js +33 -17
- package/admin/plugins/fields/longText.js.map +1 -1
- package/admin/plugins/fields/number.js +39 -22
- package/admin/plugins/fields/number.js.map +1 -1
- package/admin/plugins/fields/object/ObjectFields.js +28 -11
- package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
- package/admin/plugins/fields/object.js +30 -14
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/fields/ref.js +60 -34
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/plugins/fields/richText.js +33 -17
- package/admin/plugins/fields/richText.js.map +1 -1
- package/admin/plugins/fields/text.js +37 -20
- package/admin/plugins/fields/text.js.map +1 -1
- package/admin/plugins/getObjectId.js +8 -1
- package/admin/plugins/getObjectId.js.map +1 -1
- package/admin/plugins/icons.js +25 -10
- package/admin/plugins/icons.js.map +1 -1
- package/admin/plugins/index.d.ts +1 -1
- package/admin/plugins/index.js +32 -12
- package/admin/plugins/index.js.map +1 -1
- package/admin/plugins/install.js +55 -30
- package/admin/plugins/install.js.map +1 -1
- package/admin/plugins/permissionRenderer/CmsPermissions.js +74 -50
- package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +70 -46
- package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +54 -34
- package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelList.js +38 -20
- package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +71 -46
- package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js +27 -12
- package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js +44 -23
- package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/StyledComponents.js +14 -3
- package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/types.js +5 -1
- package/admin/plugins/permissionRenderer/components/types.js.map +1 -1
- package/admin/plugins/permissionRenderer/components/useCmsData.js +43 -22
- package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
- package/admin/plugins/permissionRenderer/index.js +22 -8
- package/admin/plugins/permissionRenderer/index.js.map +1 -1
- package/admin/plugins/routes.js +66 -37
- package/admin/plugins/routes.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.js +24 -11
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/plugins/transformers/index.js +18 -5
- package/admin/plugins/transformers/index.js.map +1 -1
- package/admin/plugins/transformers/numberTransformer.js +11 -2
- package/admin/plugins/transformers/numberTransformer.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +19 -7
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +33 -15
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +23 -9
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +17 -5
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +20 -7
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +17 -5
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +27 -13
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/types.js +5 -1
- package/admin/plugins/upgrades/5.19.0/types.js.map +1 -1
- package/admin/plugins/upgrades/v5.0.0.js +58 -33
- package/admin/plugins/upgrades/v5.0.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.19.0.js +118 -82
- package/admin/plugins/upgrades/v5.19.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.5.0.js +58 -33
- package/admin/plugins/upgrades/v5.5.0.js.map +1 -1
- package/admin/plugins/upgrades/v5.8.0.js +58 -33
- package/admin/plugins/upgrades/v5.8.0.js.map +1 -1
- package/admin/plugins/validators/dateGte.js +23 -9
- package/admin/plugins/validators/dateGte.js.map +1 -1
- package/admin/plugins/validators/dateLte.js +23 -9
- package/admin/plugins/validators/dateLte.js.map +1 -1
- package/admin/plugins/validators/gte.js +20 -7
- package/admin/plugins/validators/gte.js.map +1 -1
- package/admin/plugins/validators/in.js +20 -7
- package/admin/plugins/validators/in.js.map +1 -1
- package/admin/plugins/validators/lte.js +20 -7
- package/admin/plugins/validators/lte.js.map +1 -1
- package/admin/plugins/validators/maxLength.js +20 -7
- package/admin/plugins/validators/maxLength.js.map +1 -1
- package/admin/plugins/validators/minLength.js +20 -7
- package/admin/plugins/validators/minLength.js.map +1 -1
- package/admin/plugins/validators/pattern.js +20 -7
- package/admin/plugins/validators/pattern.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/email.js +8 -1
- package/admin/plugins/validators/patternPlugins/email.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/lowerCase.js +8 -1
- package/admin/plugins/validators/patternPlugins/lowerCase.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +8 -1
- package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/upperCase.js +8 -1
- package/admin/plugins/validators/patternPlugins/upperCase.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +8 -1
- package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/admin/plugins/validators/patternPlugins/url.js +8 -1
- package/admin/plugins/validators/patternPlugins/url.js.map +1 -1
- package/admin/plugins/validators/required.js +12 -3
- package/admin/plugins/validators/required.js.map +1 -1
- package/admin/plugins/validators/timeGte.js +22 -8
- package/admin/plugins/validators/timeGte.js.map +1 -1
- package/admin/plugins/validators/timeLte.js +22 -8
- package/admin/plugins/validators/timeLte.js.map +1 -1
- package/admin/plugins/validators/unique.js +18 -6
- package/admin/plugins/validators/unique.js.map +1 -1
- package/admin/plugins/welcomeScreenWidget.js +23 -9
- package/admin/plugins/welcomeScreenWidget.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +57 -31
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +43 -21
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +102 -75
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +72 -41
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +95 -67
- package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList.js +38 -19
- package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js +65 -31
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/Header.js +31 -16
- package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +90 -55
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/index.js +33 -14
- package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +47 -26
- package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +50 -27
- package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +47 -26
- package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +45 -24
- package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +27 -12
- package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js +19 -7
- package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/useRevision.js +57 -36
- package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry.js +62 -35
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js +42 -25
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +29 -9
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +51 -29
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
- package/admin/views/contentEntries/experiment/Property.js +74 -58
- package/admin/views/contentEntries/experiment/Property.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntries.js +13 -4
- package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +59 -39
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/hooks/useContentEntry.js +13 -4
- package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroups.js +28 -12
- package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +114 -77
- package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js +117 -78
- package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
- package/admin/views/contentModelGroups/DelayedOnChange.js +49 -48
- package/admin/views/contentModelGroups/DelayedOnChange.js.map +1 -1
- package/admin/views/contentModelGroups/IconPicker.js +56 -33
- package/admin/views/contentModelGroups/IconPicker.js.map +1 -1
- package/admin/views/contentModelGroups/graphql.js +22 -7
- package/admin/views/contentModelGroups/graphql.js.map +1 -1
- package/admin/views/contentModels/CloneContentModelDialog.js +104 -71
- package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/ContentModelEditor.js +30 -14
- package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
- package/admin/views/contentModels/ContentModels.js +49 -30
- package/admin/views/contentModels/ContentModels.js.map +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +144 -108
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +107 -70
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/admin/views/contentModels/cache.js +41 -19
- package/admin/views/contentModels/cache.js.map +1 -1
- package/admin/views/contentModels/types.js +5 -1
- package/admin/views/contentModels/types.js.map +1 -1
- package/admin/views/utils.js +16 -4
- package/admin/views/utils.js.map +1 -1
- package/admin/viewsGraphql.js +22 -7
- package/admin/viewsGraphql.js.map +1 -1
- package/index.js +30 -11
- package/index.js.map +1 -1
- package/package.json +22 -22
- package/types.d.ts +3 -3
- package/types.js +5 -1
- package/types.js.map +1 -1
|
@@ -1,29 +1,47 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.ContentEntriesViewRenderer = exports.ContentEntriesViewConfig = exports.ContentEntriesView = void 0;
|
|
11
|
+
exports.useContentEntriesViewConfig = useContentEntriesViewConfig;
|
|
12
|
+
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
|
+
|
|
15
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
16
|
+
|
|
17
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
18
|
+
|
|
19
|
+
var _Property = require("./Property");
|
|
20
|
+
|
|
21
|
+
var ContentEntriesViewConfigApply = (0, _appAdmin.makeComposable)("ContentEntriesViewConfigApply", function (_ref) {
|
|
6
22
|
var children = _ref.children;
|
|
7
|
-
return /*#__PURE__*/
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
8
24
|
});
|
|
9
25
|
|
|
10
26
|
var createHOC = function createHOC(newChildren) {
|
|
11
27
|
return function (BaseComponent) {
|
|
12
28
|
return function ConfigHOC(_ref2) {
|
|
13
29
|
var children = _ref2.children;
|
|
14
|
-
return /*#__PURE__*/
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(BaseComponent, null, newChildren, children);
|
|
15
31
|
};
|
|
16
32
|
};
|
|
17
33
|
};
|
|
18
34
|
|
|
19
|
-
|
|
35
|
+
var ContentEntriesViewConfig = function ContentEntriesViewConfig(_ref3) {
|
|
20
36
|
var children = _ref3.children;
|
|
21
|
-
return /*#__PURE__*/
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_appAdmin.Compose, {
|
|
22
38
|
component: ContentEntriesViewConfigApply,
|
|
23
39
|
with: createHOC(children)
|
|
24
40
|
});
|
|
25
41
|
};
|
|
26
42
|
|
|
43
|
+
exports.ContentEntriesViewConfig = ContentEntriesViewConfig;
|
|
44
|
+
|
|
27
45
|
var Filter = function Filter(_ref4) {
|
|
28
46
|
var name = _ref4.name,
|
|
29
47
|
element = _ref4.element,
|
|
@@ -31,20 +49,20 @@ var Filter = function Filter(_ref4) {
|
|
|
31
49
|
modelIds = _ref4$modelIds === void 0 ? [] : _ref4$modelIds,
|
|
32
50
|
_ref4$remove = _ref4.remove,
|
|
33
51
|
remove = _ref4$remove === void 0 ? false : _ref4$remove;
|
|
34
|
-
return /*#__PURE__*/
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
35
53
|
id: name,
|
|
36
54
|
name: "filter",
|
|
37
55
|
merge: true,
|
|
38
56
|
remove: remove
|
|
39
|
-
}, /*#__PURE__*/
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
40
58
|
id: "name",
|
|
41
59
|
name: "name",
|
|
42
60
|
value: name
|
|
43
|
-
}), /*#__PURE__*/
|
|
61
|
+
}), /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
44
62
|
id: "modelIds",
|
|
45
63
|
name: "modelIds",
|
|
46
64
|
value: modelIds
|
|
47
|
-
}), element ? /*#__PURE__*/
|
|
65
|
+
}), element ? /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
48
66
|
id: "element",
|
|
49
67
|
name: "element",
|
|
50
68
|
value: element
|
|
@@ -58,20 +76,20 @@ var Sorter = function Sorter(_ref5) {
|
|
|
58
76
|
modelIds = _ref5$modelIds === void 0 ? [] : _ref5$modelIds,
|
|
59
77
|
_ref5$remove = _ref5.remove,
|
|
60
78
|
remove = _ref5$remove === void 0 ? false : _ref5$remove;
|
|
61
|
-
return /*#__PURE__*/
|
|
79
|
+
return /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
62
80
|
id: name,
|
|
63
81
|
name: "sorter",
|
|
64
82
|
merge: true,
|
|
65
83
|
remove: remove
|
|
66
|
-
}, /*#__PURE__*/
|
|
84
|
+
}, /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
67
85
|
id: "name",
|
|
68
86
|
name: "name",
|
|
69
87
|
value: name
|
|
70
|
-
}), /*#__PURE__*/
|
|
88
|
+
}), /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
71
89
|
id: "label",
|
|
72
90
|
name: "label",
|
|
73
91
|
value: label
|
|
74
|
-
}), /*#__PURE__*/
|
|
92
|
+
}), /*#__PURE__*/_react.default.createElement(_Property.Property, {
|
|
75
93
|
id: "modelIds",
|
|
76
94
|
name: "modelIds",
|
|
77
95
|
value: modelIds
|
|
@@ -83,10 +101,12 @@ ContentEntriesViewConfig.Sorter = Sorter;
|
|
|
83
101
|
var defaultContext = {
|
|
84
102
|
properties: []
|
|
85
103
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
104
|
+
|
|
105
|
+
var ViewContext = /*#__PURE__*/_react.default.createContext(defaultContext);
|
|
106
|
+
|
|
107
|
+
var ContentEntriesView = (0, _appAdmin.makeComposable)("ContentEntriesView", function () {
|
|
108
|
+
var _useState = (0, _react.useState)([]),
|
|
109
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
90
110
|
properties = _useState2[0],
|
|
91
111
|
setProperties = _useState2[1];
|
|
92
112
|
|
|
@@ -98,14 +118,16 @@ export var ContentEntriesView = makeComposable("ContentEntriesView", function ()
|
|
|
98
118
|
setProperties(properties);
|
|
99
119
|
};
|
|
100
120
|
|
|
101
|
-
return /*#__PURE__*/
|
|
121
|
+
return /*#__PURE__*/_react.default.createElement(ViewContext.Provider, {
|
|
102
122
|
value: context
|
|
103
|
-
}, /*#__PURE__*/
|
|
123
|
+
}, /*#__PURE__*/_react.default.createElement(_Property.PropertyContainer, {
|
|
104
124
|
name: "view",
|
|
105
125
|
onChange: stateUpdater
|
|
106
|
-
}, /*#__PURE__*/
|
|
126
|
+
}, /*#__PURE__*/_react.default.createElement(ContentEntriesViewConfigApply, null), /*#__PURE__*/_react.default.createElement(ContentEntriesViewRenderer, null)));
|
|
107
127
|
});
|
|
108
|
-
|
|
128
|
+
exports.ContentEntriesView = ContentEntriesView;
|
|
129
|
+
var ContentEntriesViewRenderer = (0, _appAdmin.makeComposable)("ContentEntriesViewRenderer");
|
|
130
|
+
exports.ContentEntriesViewRenderer = ContentEntriesViewRenderer;
|
|
109
131
|
|
|
110
132
|
function byName(name) {
|
|
111
133
|
return function (obj) {
|
|
@@ -113,15 +135,15 @@ function byName(name) {
|
|
|
113
135
|
};
|
|
114
136
|
}
|
|
115
137
|
|
|
116
|
-
|
|
117
|
-
var _useContext = useContext(ViewContext),
|
|
138
|
+
function useContentEntriesViewConfig() {
|
|
139
|
+
var _useContext = (0, _react.useContext)(ViewContext),
|
|
118
140
|
properties = _useContext.properties;
|
|
119
141
|
|
|
120
142
|
var filters = properties.filter(byName("filter")).map(function (f) {
|
|
121
|
-
return toObject(f);
|
|
143
|
+
return (0, _Property.toObject)(f);
|
|
122
144
|
});
|
|
123
145
|
var sorters = properties.filter(byName("sorter")).map(function (f) {
|
|
124
|
-
return toObject(f);
|
|
146
|
+
return (0, _Property.toObject)(f);
|
|
125
147
|
});
|
|
126
148
|
return {
|
|
127
149
|
filters: filters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ContentEntriesViewConfigApply","makeComposable","children","createHOC","newChildren","BaseComponent","ConfigHOC","ContentEntriesViewConfig","Filter","name","element","modelIds","remove","Sorter","label","defaultContext","properties","ViewContext","React","createContext","ContentEntriesView","useState","setProperties","context","stateUpdater","ContentEntriesViewRenderer","byName","obj","useContentEntriesViewConfig","useContext","filters","filter","map","f","toObject","sorters"],"sources":["ContentEntriesViewConfig.tsx"],"sourcesContent":["import { makeComposable, Compose, HigherOrderComponent } from \"@webiny/app-admin\";\nimport React, { useContext, useState } from \"react\";\nimport { Property, PropertyContainer, toObject } from \"./Property\";\n\ninterface ContentEntriesViewConfig extends React.FC<unknown> {\n Filter: React.FC<ContentEntriesViewConfigFilterProps>;\n Sorter: React.FC<ContentEntriesViewConfigSorterProps>;\n}\n\nconst ContentEntriesViewConfigApply = makeComposable(\n \"ContentEntriesViewConfigApply\",\n ({ children }) => {\n return <>{children}</>;\n }\n);\n\nconst createHOC =\n (newChildren: React.ReactNode): HigherOrderComponent =>\n BaseComponent => {\n return function ConfigHOC({ children }) {\n return (\n <BaseComponent>\n {newChildren}\n {children}\n </BaseComponent>\n );\n };\n };\n\nexport const ContentEntriesViewConfig: ContentEntriesViewConfig = ({ children }) => {\n return <Compose component={ContentEntriesViewConfigApply} with={createHOC(children)} />;\n};\n\nexport interface ContentEntriesViewConfigFilterProps {\n name: string;\n element?: React.ReactElement<unknown>;\n modelIds?: string[];\n remove?: boolean;\n}\n\nconst Filter: React.FC<ContentEntriesViewConfigFilterProps> = ({\n name,\n element,\n modelIds = [],\n remove = false\n}) => {\n return (\n <Property id={name} name={\"filter\"} merge={true} remove={remove}>\n <Property id={\"name\"} name={\"name\"} value={name} />\n <Property id={\"modelIds\"} name={\"modelIds\"} value={modelIds} />\n {element ? <Property id={\"element\"} name={\"element\"} value={element} /> : null}\n </Property>\n );\n};\n\nexport interface ContentEntriesViewConfigSorterProps {\n name: string;\n label: string;\n modelIds?: string[];\n remove?: boolean;\n}\n\nconst Sorter: React.FC<ContentEntriesViewConfigSorterProps> = ({\n name,\n label,\n modelIds = [],\n remove = false\n}) => {\n return (\n <Property id={name} name={\"sorter\"} merge={true} remove={remove}>\n <Property id={\"name\"} name={\"name\"} value={name} />\n <Property id={\"label\"} name={\"label\"} value={label} />\n <Property id={\"modelIds\"} name={\"modelIds\"} value={modelIds} />\n </Property>\n );\n};\n\nContentEntriesViewConfig.Filter = Filter;\nContentEntriesViewConfig.Sorter = Sorter;\n\ninterface ViewContext {\n properties: Property[];\n}\n\nconst defaultContext = { properties: [] };\n\nconst ViewContext = React.createContext<ViewContext>(defaultContext);\n\nexport const ContentEntriesView = makeComposable(\"ContentEntriesView\", () => {\n const [properties, setProperties] = useState<Property[]>([]);\n const context = { properties };\n\n const stateUpdater = (properties: Property[]) => {\n setProperties(properties);\n };\n\n return (\n <ViewContext.Provider value={context}>\n <PropertyContainer name={\"view\"} onChange={stateUpdater}>\n <ContentEntriesViewConfigApply />\n <ContentEntriesViewRenderer />\n </PropertyContainer>\n </ViewContext.Provider>\n );\n});\n\nexport const ContentEntriesViewRenderer = makeComposable(\"ContentEntriesViewRenderer\");\n\nfunction byName(name: string) {\n return (obj: Property) => obj.name === name;\n}\n\nexport interface ContentEntriesViewConfigFilter {\n name: string;\n element: React.ReactElement;\n modelIds: string[];\n}\n\nexport interface ContentEntriesViewConfigSorter {\n name: string;\n label: string;\n modelIds: string[];\n}\n\nexport function useContentEntriesViewConfig(): {\n filters: ContentEntriesViewConfigFilter[];\n sorters: ContentEntriesViewConfigSorter[];\n} {\n const { properties } = useContext(ViewContext);\n\n const filters = properties\n .filter(byName(\"filter\"))\n .map(f => toObject<ContentEntriesViewConfigFilter>(f));\n\n const sorters = properties\n .filter(byName(\"sorter\"))\n .map(f => toObject<ContentEntriesViewConfigSorter>(f));\n\n return {\n filters,\n sorters\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,27 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.PropertyContainer = exports.Property = void 0;
|
|
11
|
+
exports.toArray = toArray;
|
|
12
|
+
exports.toObject = toObject;
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
19
|
+
|
|
20
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
25
|
+
|
|
26
|
+
var _nanoid = require("nanoid");
|
|
27
|
+
|
|
28
|
+
var _useDeepCompareEffect = _interopRequireDefault(require("use-deep-compare-effect"));
|
|
29
|
+
|
|
6
30
|
var _excluded = ["children", "name", "value"];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Note by @pavel910:
|
|
11
|
-
*
|
|
12
|
-
* TS is disabled in this file, as this is a wild experiment, and I need to come back and fix some types, which are not very
|
|
13
|
-
* obvious. I don't have time to do it right now. If the experiment is successful, I'll come back and clean this up, and
|
|
14
|
-
* extract this whole logic into a separate package, as this is a tiny framework for building data objects using React, and
|
|
15
|
-
* we might want to use it in many more places (all views, Page Builder Editor, etc.).
|
|
16
|
-
*
|
|
17
|
-
* More on this a bit later, if the experiment is successful.
|
|
18
|
-
*/
|
|
19
|
-
import React, { createContext, useContext, useMemo, useRef, useState } from "react";
|
|
20
|
-
import { nanoid } from "nanoid";
|
|
21
|
-
import useDeepCompareEffect from "use-deep-compare-effect";
|
|
22
|
-
export function toObject(property) {
|
|
31
|
+
|
|
32
|
+
function toObject(property) {
|
|
23
33
|
if (property.value !== undefined) {
|
|
24
|
-
return
|
|
34
|
+
return (0, _defineProperty2.default)({}, property.name, property.value);
|
|
25
35
|
}
|
|
26
36
|
|
|
27
37
|
var obj = {};
|
|
@@ -32,12 +42,12 @@ export function toObject(property) {
|
|
|
32
42
|
}).length === 1;
|
|
33
43
|
|
|
34
44
|
if (prop.value !== undefined) {
|
|
35
|
-
obj[prop.name] = isSingle ? prop.value : [].concat(
|
|
45
|
+
obj[prop.name] = isSingle ? prop.value : [].concat((0, _toConsumableArray2.default)(obj[prop.name] || []), [prop.value]);
|
|
36
46
|
} else {
|
|
37
47
|
var asObject = toObject(prop);
|
|
38
48
|
|
|
39
49
|
if (!isSingle) {
|
|
40
|
-
obj[prop.name] = [].concat(
|
|
50
|
+
obj[prop.name] = [].concat((0, _toConsumableArray2.default)(obj[prop.name] || []), [asObject[prop.name]]);
|
|
41
51
|
} else {
|
|
42
52
|
obj[prop.name] = asObject[prop.name];
|
|
43
53
|
}
|
|
@@ -45,29 +55,30 @@ export function toObject(property) {
|
|
|
45
55
|
});
|
|
46
56
|
return obj;
|
|
47
57
|
}
|
|
48
|
-
|
|
58
|
+
|
|
59
|
+
function toArray(objects) {
|
|
49
60
|
return objects.map(function (obj) {
|
|
50
61
|
return obj.properties.reduce(function (acc, item) {
|
|
51
|
-
return
|
|
62
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, acc), toObject(item));
|
|
52
63
|
}, {});
|
|
53
64
|
});
|
|
54
65
|
}
|
|
55
66
|
|
|
56
67
|
function mergeProperties(properties1, properties2) {
|
|
57
|
-
var temp = [].concat(
|
|
68
|
+
var temp = [].concat((0, _toConsumableArray2.default)(properties1), (0, _toConsumableArray2.default)(properties2));
|
|
58
69
|
return Object.values(temp.reduce(function (acc, item) {
|
|
59
|
-
return
|
|
70
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, acc), {}, (0, _defineProperty2.default)({}, item.id, item));
|
|
60
71
|
}, {}));
|
|
61
72
|
}
|
|
62
73
|
|
|
63
|
-
var PropertyContext = /*#__PURE__*/createContext(null);
|
|
74
|
+
var PropertyContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
64
75
|
PropertyContext.displayName = "PropertyContext";
|
|
65
76
|
|
|
66
77
|
var useProperty = function useProperty() {
|
|
67
|
-
return useContext(PropertyContext);
|
|
78
|
+
return (0, _react.useContext)(PropertyContext);
|
|
68
79
|
};
|
|
69
80
|
|
|
70
|
-
var PropertyContainerContext = /*#__PURE__*/createContext();
|
|
81
|
+
var PropertyContainerContext = /*#__PURE__*/(0, _react.createContext)();
|
|
71
82
|
|
|
72
83
|
function cleanup(properties) {
|
|
73
84
|
return properties.map(function (property) {
|
|
@@ -75,19 +86,20 @@ function cleanup(properties) {
|
|
|
75
86
|
return null;
|
|
76
87
|
}
|
|
77
88
|
|
|
78
|
-
return
|
|
89
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, property), {}, {
|
|
79
90
|
properties: cleanup(property.properties)
|
|
80
91
|
});
|
|
81
92
|
}).filter(Boolean);
|
|
82
93
|
}
|
|
83
94
|
|
|
84
95
|
var store = new Map();
|
|
85
|
-
|
|
96
|
+
|
|
97
|
+
var PropertyContainer = function PropertyContainer(_ref2) {
|
|
86
98
|
var name = _ref2.name,
|
|
87
99
|
onChange = _ref2.onChange,
|
|
88
100
|
children = _ref2.children;
|
|
89
|
-
var ref = useRef(store);
|
|
90
|
-
var context = useMemo(function () {
|
|
101
|
+
var ref = (0, _react.useRef)(store);
|
|
102
|
+
var context = (0, _react.useMemo)(function () {
|
|
91
103
|
return {
|
|
92
104
|
updateContainer: function updateContainer(updater) {
|
|
93
105
|
var current = store.get(name) || [];
|
|
@@ -97,24 +109,26 @@ export var PropertyContainer = function PropertyContainer(_ref2) {
|
|
|
97
109
|
}
|
|
98
110
|
};
|
|
99
111
|
}, [ref]);
|
|
100
|
-
return /*#__PURE__*/
|
|
112
|
+
return /*#__PURE__*/_react.default.createElement(PropertyContainerContext.Provider, {
|
|
101
113
|
value: context
|
|
102
114
|
}, children);
|
|
103
115
|
};
|
|
104
|
-
|
|
116
|
+
|
|
117
|
+
exports.PropertyContainer = PropertyContainer;
|
|
118
|
+
|
|
119
|
+
var Property = function Property(_ref3) {
|
|
105
120
|
var children = _ref3.children,
|
|
106
121
|
name = _ref3.name,
|
|
107
122
|
value = _ref3.value,
|
|
108
|
-
props =
|
|
109
|
-
|
|
110
|
-
var id = useRef(props.id || nanoid());
|
|
123
|
+
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
124
|
+
var id = (0, _react.useRef)(props.id || (0, _nanoid.nanoid)());
|
|
111
125
|
|
|
112
|
-
var _useState = useState([]),
|
|
113
|
-
_useState2 =
|
|
126
|
+
var _useState = (0, _react.useState)([]),
|
|
127
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
114
128
|
properties = _useState2[0],
|
|
115
129
|
setProperties = _useState2[1];
|
|
116
130
|
|
|
117
|
-
var _useContext = useContext(PropertyContainerContext),
|
|
131
|
+
var _useContext = (0, _react.useContext)(PropertyContainerContext),
|
|
118
132
|
updateContainer = _useContext.updateContainer;
|
|
119
133
|
|
|
120
134
|
var parentProperty = useProperty();
|
|
@@ -126,9 +140,9 @@ export var Property = function Property(_ref3) {
|
|
|
126
140
|
});
|
|
127
141
|
|
|
128
142
|
if (index > -1) {
|
|
129
|
-
return [].concat(
|
|
143
|
+
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread3.default)((0, _objectSpread3.default)({}, properties[index]), {}, {
|
|
130
144
|
$remove: true
|
|
131
|
-
})],
|
|
145
|
+
})], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
132
146
|
}
|
|
133
147
|
|
|
134
148
|
return properties;
|
|
@@ -141,10 +155,10 @@ export var Property = function Property(_ref3) {
|
|
|
141
155
|
});
|
|
142
156
|
|
|
143
157
|
if (index > -1) {
|
|
144
|
-
return [].concat(
|
|
158
|
+
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread3.default)((0, _objectSpread3.default)({}, properties[index]), property)], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
145
159
|
}
|
|
146
160
|
|
|
147
|
-
return [].concat(
|
|
161
|
+
return [].concat((0, _toConsumableArray2.default)(properties), [property]);
|
|
148
162
|
});
|
|
149
163
|
}
|
|
150
164
|
};
|
|
@@ -164,9 +178,9 @@ export var Property = function Property(_ref3) {
|
|
|
164
178
|
|
|
165
179
|
if (props.remove) {
|
|
166
180
|
if (index > -1) {
|
|
167
|
-
return [].concat(
|
|
181
|
+
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread3.default)((0, _objectSpread3.default)({}, properties[index]), {}, {
|
|
168
182
|
$remove: true
|
|
169
|
-
})],
|
|
183
|
+
})], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
170
184
|
}
|
|
171
185
|
|
|
172
186
|
return properties;
|
|
@@ -174,25 +188,25 @@ export var Property = function Property(_ref3) {
|
|
|
174
188
|
|
|
175
189
|
if (props.replace) {
|
|
176
190
|
if (index > -1) {
|
|
177
|
-
return [].concat(
|
|
191
|
+
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread3.default)({}, property)], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
178
192
|
}
|
|
179
193
|
|
|
180
|
-
return [].concat(
|
|
194
|
+
return [].concat((0, _toConsumableArray2.default)(properties), [property]);
|
|
181
195
|
}
|
|
182
196
|
|
|
183
197
|
if (props.merge) {
|
|
184
198
|
if (index > -1) {
|
|
185
|
-
return [].concat(
|
|
199
|
+
return [].concat((0, _toConsumableArray2.default)(properties.slice(0, index)), [(0, _objectSpread3.default)((0, _objectSpread3.default)((0, _objectSpread3.default)({}, properties[index]), property), {}, {
|
|
186
200
|
properties: mergeProperties(properties[index].properties, property.properties)
|
|
187
|
-
})],
|
|
201
|
+
})], (0, _toConsumableArray2.default)(properties.slice(index + 1)));
|
|
188
202
|
}
|
|
189
203
|
}
|
|
190
204
|
|
|
191
|
-
return [].concat(
|
|
205
|
+
return [].concat((0, _toConsumableArray2.default)(properties), [property]);
|
|
192
206
|
});
|
|
193
207
|
};
|
|
194
208
|
|
|
195
|
-
|
|
209
|
+
(0, _useDeepCompareEffect.default)(function () {
|
|
196
210
|
var property = {
|
|
197
211
|
id: id.current,
|
|
198
212
|
name: name,
|
|
@@ -206,7 +220,7 @@ export var Property = function Property(_ref3) {
|
|
|
206
220
|
|
|
207
221
|
parentProperty.updateProperty(property);
|
|
208
222
|
}, [properties]);
|
|
209
|
-
|
|
223
|
+
(0, _useDeepCompareEffect.default)(function () {
|
|
210
224
|
// On mount, we need to report to our parent.
|
|
211
225
|
if (parentProperty) {
|
|
212
226
|
if (props.remove) {
|
|
@@ -226,7 +240,9 @@ export var Property = function Property(_ref3) {
|
|
|
226
240
|
return null;
|
|
227
241
|
}
|
|
228
242
|
|
|
229
|
-
return /*#__PURE__*/
|
|
243
|
+
return /*#__PURE__*/_react.default.createElement(PropertyContext.Provider, {
|
|
230
244
|
value: context
|
|
231
245
|
}, children);
|
|
232
|
-
};
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
exports.Property = Property;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Property.tsx"],"names":["React","createContext","useContext","useMemo","useRef","useState","nanoid","useDeepCompareEffect","toObject","property","value","undefined","name","obj","properties","forEach","prop","isSingle","filter","p","length","asObject","toArray","objects","map","reduce","acc","item","mergeProperties","properties1","properties2","temp","Object","values","id","PropertyContext","displayName","useProperty","PropertyContainerContext","cleanup","Boolean","store","Map","PropertyContainer","onChange","children","ref","context","updateContainer","updater","current","get","set","Property","props","setProperties","parentProperty","removeProperty","index","findIndex","slice","$remove","updateProperty","indexById","indexByName","updateParentContainer","remove","replace","merge"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * Note by @pavel910:\n *\n * TS is disabled in this file, as this is a wild experiment, and I need to come back and fix some types, which are not very\n * obvious. I don't have time to do it right now. If the experiment is successful, I'll come back and clean this up, and\n * extract this whole logic into a separate package, as this is a tiny framework for building data objects using React, and\n * we might want to use it in many more places (all views, Page Builder Editor, etc.).\n *\n * More on this a bit later, if the experiment is successful.\n */\nimport React, { createContext, FC, useContext, useMemo, useRef, useState } from \"react\";\nimport { nanoid } from \"nanoid\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nexport function toObject<T = unknown>(property: Property): T {\n if (property.value !== undefined) {\n return { [property.name]: property.value };\n }\n\n const obj = {};\n property.properties.forEach(prop => {\n // Check if this is a single occurrence of this property\n const isSingle = property.properties.filter(p => p.name === prop.name).length === 1;\n if (prop.value !== undefined) {\n obj[prop.name] = isSingle ? prop.value : [...(obj[prop.name] || []), prop.value];\n } else {\n const asObject = toObject(prop);\n\n if (!isSingle) {\n obj[prop.name] = [...(obj[prop.name] || []), asObject[prop.name]];\n } else {\n obj[prop.name] = asObject[prop.name];\n }\n }\n });\n\n return obj;\n}\n\nexport function toArray(objects: Property[]) {\n return objects.map(obj =>\n obj.properties.reduce((acc, item) => {\n return { ...acc, ...toObject(item) };\n }, {})\n );\n}\n\nfunction mergeProperties(properties1: Property[], properties2: Property[]) {\n const temp: Property[] = [...properties1, ...properties2];\n\n return Object.values(\n temp.reduce((acc, item) => {\n return { ...acc, [item.id]: item };\n }, {})\n );\n}\n\ninterface PropertyContext {\n removeProperty(id: string): void;\n updateProperty(property: Property): void;\n}\n\nconst PropertyContext = createContext<PropertyContext>(null);\nPropertyContext.displayName = \"PropertyContext\";\n\nconst useProperty = () => {\n return useContext(PropertyContext);\n};\n\ninterface PropertyContainerContext {\n updateContainer(update): void;\n}\n\nexport interface Property<TValue = unknown> {\n id?: string;\n name: string;\n value?: TValue;\n properties?: Property[];\n}\n\nconst PropertyContainerContext = createContext<PropertyContainerContext>();\n\nfunction cleanup(properties: Property[]): Property[] {\n return properties\n .map(property => {\n if (\"$remove\" in property) {\n return null;\n }\n\n return {\n ...property,\n properties: cleanup(property.properties)\n };\n })\n .filter(Boolean);\n}\n\nconst store = new Map<string, any>();\n\ninterface PropertyContainerProps {\n name: string;\n // TODO: create a proper type\n onChange: any;\n}\n\nexport const PropertyContainer: FC<PropertyContainerProps> = ({ name, onChange, children }) => {\n const ref = useRef(store);\n const context = useMemo(\n () => ({\n updateContainer(updater) {\n const current = store.get(name) || [];\n const properties = cleanup(updater(current));\n store.set(name, properties);\n onChange(properties);\n }\n }),\n [ref]\n );\n\n return (\n <PropertyContainerContext.Provider value={context}>\n {children}\n </PropertyContainerContext.Provider>\n );\n};\n\ninterface PropertyProps {\n id?: string;\n name: string;\n value?: unknown;\n merge?: boolean;\n replace?: boolean;\n remove?: boolean;\n}\n\nexport const Property: FC<PropertyProps> = ({ children, name, value, ...props }) => {\n const id = useRef(props.id || nanoid());\n const [properties, setProperties] = useState([]);\n const { updateContainer } = useContext(PropertyContainerContext);\n const parentProperty = useProperty();\n\n const context: PropertyContext = {\n removeProperty(id: string) {\n setProperties(properties => {\n const index = properties.findIndex(p => p.id === id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], $remove: true },\n ...properties.slice(index + 1)\n ];\n }\n return properties;\n });\n },\n updateProperty(property) {\n setProperties(properties => {\n const index = properties.findIndex(p => p.id === property.id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], ...property },\n ...properties.slice(index + 1)\n ];\n }\n return [...properties, property];\n });\n }\n };\n\n const indexById = p => p.id === props.id;\n const indexByName = p => p.name === name;\n\n const updateParentContainer = property => {\n updateContainer((properties: Property[]) => {\n // Check if this property already exists in the parent container.\n const index = properties.findIndex(props.id ? indexById : indexByName);\n\n if (props.remove) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], $remove: true },\n ...properties.slice(index + 1)\n ];\n }\n\n return properties;\n }\n\n if (props.replace) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...property },\n ...properties.slice(index + 1)\n ];\n }\n\n return [...properties, property];\n }\n\n if (props.merge) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n {\n ...properties[index],\n ...property,\n properties: mergeProperties(\n properties[index].properties,\n property.properties\n )\n },\n ...properties.slice(index + 1)\n ];\n }\n }\n\n return [...properties, property];\n });\n };\n\n useDeepCompareEffect(() => {\n const property = { id: id.current, name, value, properties };\n\n if (!parentProperty) {\n return updateParentContainer(property);\n }\n\n parentProperty.updateProperty(property);\n }, [properties]);\n\n useDeepCompareEffect(() => {\n // On mount, we need to report to our parent.\n if (parentProperty) {\n if (props.remove) {\n parentProperty.removeProperty(id.current);\n } else {\n parentProperty.updateProperty({ id: id.current, name, value, properties });\n }\n }\n }, [props.remove, properties]);\n\n if (!children) {\n return null;\n }\n\n return <PropertyContext.Provider value={context}>{children}</PropertyContext.Provider>;\n};\n"]}
|
|
1
|
+
{"version":3,"names":["toObject","property","value","undefined","name","obj","properties","forEach","prop","isSingle","filter","p","length","asObject","toArray","objects","map","reduce","acc","item","mergeProperties","properties1","properties2","temp","Object","values","id","PropertyContext","createContext","displayName","useProperty","useContext","PropertyContainerContext","cleanup","Boolean","store","Map","PropertyContainer","onChange","children","ref","useRef","context","useMemo","updateContainer","updater","current","get","set","Property","props","nanoid","useState","setProperties","parentProperty","removeProperty","index","findIndex","slice","$remove","updateProperty","indexById","indexByName","updateParentContainer","remove","replace","merge","useDeepCompareEffect"],"sources":["Property.tsx"],"sourcesContent":["// @ts-nocheck\n/**\n * Note by @pavel910:\n *\n * TS is disabled in this file, as this is a wild experiment, and I need to come back and fix some types, which are not very\n * obvious. I don't have time to do it right now. If the experiment is successful, I'll come back and clean this up, and\n * extract this whole logic into a separate package, as this is a tiny framework for building data objects using React, and\n * we might want to use it in many more places (all views, Page Builder Editor, etc.).\n *\n * More on this a bit later, if the experiment is successful.\n */\nimport React, { createContext, FC, useContext, useMemo, useRef, useState } from \"react\";\nimport { nanoid } from \"nanoid\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\n\nexport function toObject<T = unknown>(property: Property): T {\n if (property.value !== undefined) {\n return { [property.name]: property.value };\n }\n\n const obj = {};\n property.properties.forEach(prop => {\n // Check if this is a single occurrence of this property\n const isSingle = property.properties.filter(p => p.name === prop.name).length === 1;\n if (prop.value !== undefined) {\n obj[prop.name] = isSingle ? prop.value : [...(obj[prop.name] || []), prop.value];\n } else {\n const asObject = toObject(prop);\n\n if (!isSingle) {\n obj[prop.name] = [...(obj[prop.name] || []), asObject[prop.name]];\n } else {\n obj[prop.name] = asObject[prop.name];\n }\n }\n });\n\n return obj;\n}\n\nexport function toArray(objects: Property[]) {\n return objects.map(obj =>\n obj.properties.reduce((acc, item) => {\n return { ...acc, ...toObject(item) };\n }, {})\n );\n}\n\nfunction mergeProperties(properties1: Property[], properties2: Property[]) {\n const temp: Property[] = [...properties1, ...properties2];\n\n return Object.values(\n temp.reduce((acc, item) => {\n return { ...acc, [item.id]: item };\n }, {})\n );\n}\n\ninterface PropertyContext {\n removeProperty(id: string): void;\n updateProperty(property: Property): void;\n}\n\nconst PropertyContext = createContext<PropertyContext>(null);\nPropertyContext.displayName = \"PropertyContext\";\n\nconst useProperty = () => {\n return useContext(PropertyContext);\n};\n\ninterface PropertyContainerContext {\n updateContainer(update): void;\n}\n\nexport interface Property<TValue = unknown> {\n id?: string;\n name: string;\n value?: TValue;\n properties?: Property[];\n}\n\nconst PropertyContainerContext = createContext<PropertyContainerContext>();\n\nfunction cleanup(properties: Property[]): Property[] {\n return properties\n .map(property => {\n if (\"$remove\" in property) {\n return null;\n }\n\n return {\n ...property,\n properties: cleanup(property.properties)\n };\n })\n .filter(Boolean);\n}\n\nconst store = new Map<string, any>();\n\ninterface PropertyContainerProps {\n name: string;\n // TODO: create a proper type\n onChange: any;\n}\n\nexport const PropertyContainer: FC<PropertyContainerProps> = ({ name, onChange, children }) => {\n const ref = useRef(store);\n const context = useMemo(\n () => ({\n updateContainer(updater) {\n const current = store.get(name) || [];\n const properties = cleanup(updater(current));\n store.set(name, properties);\n onChange(properties);\n }\n }),\n [ref]\n );\n\n return (\n <PropertyContainerContext.Provider value={context}>\n {children}\n </PropertyContainerContext.Provider>\n );\n};\n\ninterface PropertyProps {\n id?: string;\n name: string;\n value?: unknown;\n merge?: boolean;\n replace?: boolean;\n remove?: boolean;\n}\n\nexport const Property: FC<PropertyProps> = ({ children, name, value, ...props }) => {\n const id = useRef(props.id || nanoid());\n const [properties, setProperties] = useState([]);\n const { updateContainer } = useContext(PropertyContainerContext);\n const parentProperty = useProperty();\n\n const context: PropertyContext = {\n removeProperty(id: string) {\n setProperties(properties => {\n const index = properties.findIndex(p => p.id === id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], $remove: true },\n ...properties.slice(index + 1)\n ];\n }\n return properties;\n });\n },\n updateProperty(property) {\n setProperties(properties => {\n const index = properties.findIndex(p => p.id === property.id);\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], ...property },\n ...properties.slice(index + 1)\n ];\n }\n return [...properties, property];\n });\n }\n };\n\n const indexById = p => p.id === props.id;\n const indexByName = p => p.name === name;\n\n const updateParentContainer = property => {\n updateContainer((properties: Property[]) => {\n // Check if this property already exists in the parent container.\n const index = properties.findIndex(props.id ? indexById : indexByName);\n\n if (props.remove) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...properties[index], $remove: true },\n ...properties.slice(index + 1)\n ];\n }\n\n return properties;\n }\n\n if (props.replace) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n { ...property },\n ...properties.slice(index + 1)\n ];\n }\n\n return [...properties, property];\n }\n\n if (props.merge) {\n if (index > -1) {\n return [\n ...properties.slice(0, index),\n {\n ...properties[index],\n ...property,\n properties: mergeProperties(\n properties[index].properties,\n property.properties\n )\n },\n ...properties.slice(index + 1)\n ];\n }\n }\n\n return [...properties, property];\n });\n };\n\n useDeepCompareEffect(() => {\n const property = { id: id.current, name, value, properties };\n\n if (!parentProperty) {\n return updateParentContainer(property);\n }\n\n parentProperty.updateProperty(property);\n }, [properties]);\n\n useDeepCompareEffect(() => {\n // On mount, we need to report to our parent.\n if (parentProperty) {\n if (props.remove) {\n parentProperty.removeProperty(id.current);\n } else {\n parentProperty.updateProperty({ id: id.current, name, value, properties });\n }\n }\n }, [props.remove, properties]);\n\n if (!children) {\n return null;\n }\n\n return <PropertyContext.Provider value={context}>{children}</PropertyContext.Provider>;\n};\n"],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useContentEntries = useContentEntries;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _ContentEntriesContext = require("../ContentEntriesContext");
|
|
11
|
+
|
|
12
|
+
function useContentEntries() {
|
|
13
|
+
return (0, _react.useContext)(_ContentEntriesContext.Context);
|
|
5
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["useContentEntries","useContext","Context"],"sources":["useContentEntries.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { Context } from \"../ContentEntriesContext\";\n\nexport function useContentEntries() {\n return useContext(Context);\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEO,SAASA,iBAAT,GAA6B;EAChC,OAAO,IAAAC,iBAAA,EAAWC,8BAAX,CAAP;AACH"}
|