payload 1.3.4 → 1.4.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/README.md +75 -29
- package/components/styles.css +1 -1
- package/dist/admin/api.d.ts +1 -1
- package/dist/admin/assets/images/payload-logo-dark.svg +88 -0
- package/dist/admin/assets/images/payload-logo-light.svg +88 -0
- package/dist/admin/components/elements/ArrayAction/types.d.ts +1 -1
- package/dist/admin/components/elements/Autosave/index.js +21 -14
- package/dist/admin/components/elements/Autosave/types.d.ts +1 -1
- package/dist/admin/components/elements/Banner/types.d.ts +3 -3
- package/dist/admin/components/elements/Button/types.d.ts +1 -1
- package/dist/admin/components/elements/Card/types.d.ts +1 -1
- package/dist/admin/components/elements/Collapsible/types.d.ts +1 -1
- package/dist/admin/components/elements/ColumnSelector/index.js +9 -3
- package/dist/admin/components/elements/ColumnSelector/types.d.ts +1 -1
- package/dist/admin/components/elements/CopyToClipboard/types.d.ts +1 -1
- package/dist/admin/components/elements/DatePicker/types.d.ts +6 -6
- package/dist/admin/components/elements/DeleteDocument/types.d.ts +1 -1
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts +3 -0
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +100 -0
- package/dist/admin/components/elements/DocumentDrawer/index.d.ts +1 -0
- package/dist/admin/components/elements/DocumentDrawer/index.js +22 -97
- package/dist/admin/components/elements/DocumentDrawer/index.scss +40 -14
- package/dist/admin/components/elements/DocumentDrawer/types.d.ts +12 -4
- package/dist/admin/components/elements/Drawer/index.d.ts +4 -0
- package/dist/admin/components/elements/Drawer/index.js +27 -18
- package/dist/admin/components/elements/Drawer/index.scss +1 -0
- package/dist/admin/components/elements/Drawer/types.d.ts +3 -2
- package/dist/admin/components/elements/DuplicateDocument/index.js +4 -0
- package/dist/admin/components/elements/DuplicateDocument/types.d.ts +1 -1
- package/dist/admin/components/elements/Eyebrow/types.d.ts +1 -1
- package/dist/admin/components/elements/FileDetails/Meta/types.d.ts +1 -1
- package/dist/admin/components/elements/FileDetails/types.d.ts +1 -1
- package/dist/admin/components/elements/GenerateConfirmation/types.d.ts +1 -1
- package/dist/admin/components/elements/Gutter/index.d.ts +1 -1
- package/dist/admin/components/elements/ListControls/index.scss +15 -5
- package/dist/admin/components/elements/ListControls/types.d.ts +2 -2
- package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts +3 -0
- package/dist/admin/components/elements/ListDrawer/DrawerContent.js +222 -0
- package/dist/admin/components/elements/ListDrawer/index.d.ts +7 -0
- package/dist/admin/components/elements/ListDrawer/index.js +61 -0
- package/dist/admin/components/elements/ListDrawer/index.scss +97 -0
- package/dist/admin/components/elements/ListDrawer/types.d.ts +35 -0
- package/dist/admin/components/{forms/field-types/RichText/elements/link/Modal → elements/ListDrawer}/types.js +0 -0
- package/dist/admin/components/elements/Localizer/types.d.ts +1 -1
- package/dist/admin/components/elements/NavGroup/index.d.ts +1 -1
- package/dist/admin/components/elements/Paginator/ClickableArrow/types.d.ts +1 -1
- package/dist/admin/components/elements/Paginator/Page/types.d.ts +1 -1
- package/dist/admin/components/elements/Paginator/types.d.ts +2 -2
- package/dist/admin/components/elements/PerPage/index.d.ts +1 -1
- package/dist/admin/components/elements/Pill/types.d.ts +2 -2
- package/dist/admin/components/elements/Popup/PopupButton/types.d.ts +1 -1
- package/dist/admin/components/elements/Popup/types.d.ts +1 -1
- package/dist/admin/components/elements/PreviewButton/types.d.ts +1 -1
- package/dist/admin/components/elements/Publish/types.d.ts +1 -1
- package/dist/admin/components/elements/ReactSelect/MultiValueLabel/index.scss +1 -0
- package/dist/admin/components/elements/ReactSelect/types.d.ts +3 -3
- package/dist/admin/components/elements/RenderTitle/types.d.ts +1 -1
- package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -1
- package/dist/admin/components/elements/SortColumn/types.d.ts +1 -1
- package/dist/admin/components/elements/SortComplex/index.js +5 -2
- package/dist/admin/components/elements/SortComplex/types.d.ts +1 -1
- package/dist/admin/components/elements/Status/types.d.ts +1 -1
- package/dist/admin/components/elements/StepNav/index.scss +1 -0
- package/dist/admin/components/elements/StepNav/types.d.ts +2 -2
- package/dist/admin/components/elements/Table/types.d.ts +2 -2
- package/dist/admin/components/elements/Thumbnail/types.d.ts +1 -1
- package/dist/admin/components/elements/Tooltip/index.scss +4 -0
- package/dist/admin/components/elements/Tooltip/types.d.ts +1 -1
- package/dist/admin/components/elements/UploadCard/types.d.ts +1 -1
- package/dist/admin/components/elements/UploadGallery/types.d.ts +1 -1
- package/dist/admin/components/elements/VersionsCount/types.d.ts +1 -1
- package/dist/admin/components/elements/ViewDescription/types.d.ts +4 -4
- package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts +7 -7
- package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/types.d.ts +1 -1
- package/dist/admin/components/elements/WhereBuilder/index.js +8 -2
- package/dist/admin/components/elements/WhereBuilder/types.d.ts +8 -8
- package/dist/admin/components/forms/Error/types.d.ts +1 -1
- package/dist/admin/components/forms/FieldDescription/types.d.ts +4 -4
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +1 -1
- package/dist/admin/components/forms/Form/rows.d.ts +1 -1
- package/dist/admin/components/forms/Form/types.d.ts +30 -30
- package/dist/admin/components/forms/Label/types.d.ts +1 -1
- package/dist/admin/components/forms/RenderFields/types.d.ts +1 -1
- package/dist/admin/components/forms/RowLabel/types.d.ts +5 -5
- package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlockSelection/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlocksContainer/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Blocks/BlockSelector/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Blocks/SectionTitle/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Checkbox/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Code/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Collapsible/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/DateTime/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Email/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/HiddenInput/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Number/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Password/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Point/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/RadioGroup/types.d.ts +2 -2
- package/dist/admin/components/forms/field-types/Relationship/AddNew/index.scss +2 -2
- package/dist/admin/components/forms/field-types/Relationship/AddNew/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Relationship/GetFilterOptions/index.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Relationship/createRelationMap.d.ts +2 -2
- package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Relationship/index.js +6 -0
- package/dist/admin/components/forms/field-types/Relationship/optionsReducer.js +14 -0
- package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.js +2 -2
- package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.scss +1 -4
- package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.js +2 -2
- package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss +7 -4
- package/dist/admin/components/forms/field-types/Relationship/types.d.ts +16 -10
- package/dist/admin/components/forms/field-types/RichText/RichText.d.ts +3 -11
- package/dist/admin/components/forms/field-types/RichText/RichText.js +14 -6
- package/dist/admin/components/forms/field-types/RichText/buttons.scss +3 -0
- package/dist/admin/components/forms/field-types/RichText/elements/Button.js +11 -4
- package/dist/admin/components/forms/field-types/RichText/elements/ListButton.js +2 -2
- package/dist/admin/components/forms/field-types/RichText/elements/areAllChildrenElements.d.ts +2 -0
- package/dist/admin/components/forms/field-types/RichText/elements/areAllChildrenElements.js +4 -0
- package/dist/admin/components/forms/field-types/RichText/elements/getCommonBlock.d.ts +2 -0
- package/dist/admin/components/forms/field-types/RichText/elements/getCommonBlock.js +12 -0
- package/dist/admin/components/forms/field-types/RichText/elements/indent/index.js +117 -21
- package/dist/admin/components/forms/field-types/RichText/elements/index.d.ts +21 -16
- package/dist/admin/components/forms/field-types/RichText/elements/isActive.d.ts +2 -1
- package/dist/admin/components/forms/field-types/RichText/elements/isLastSelectedElementEmpty.js +6 -2
- package/dist/admin/components/forms/field-types/RichText/elements/isListActive.js +17 -15
- package/dist/admin/components/forms/field-types/RichText/elements/isWithinListItem.d.ts +2 -0
- package/dist/admin/components/forms/field-types/RichText/elements/isWithinListItem.js +15 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/Button/index.d.ts +6 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/Button/index.js +98 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/Element/index.d.ts +10 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Element.js → Element/index.js} +48 -40
- package/dist/admin/components/forms/field-types/RichText/elements/link/{index.scss → Element/index.scss} +10 -10
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/baseFields.d.ts +0 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/baseFields.js +0 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/index.d.ts +1 -1
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/index.js +7 -7
- package/dist/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.scss +50 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/types.d.ts +3 -3
- package/dist/admin/components/forms/field-types/{Upload/Add → RichText/elements/link/LinkDrawer}/types.js +0 -0
- package/dist/admin/components/forms/field-types/RichText/elements/link/index.d.ts +10 -9
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.js +28 -47
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.scss +3 -31
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.d.ts +8 -2
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.js +78 -11
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.scss +64 -7
- package/dist/admin/components/forms/field-types/RichText/elements/relationship/index.d.ts +6 -1
- package/dist/admin/components/forms/field-types/RichText/elements/toggle.d.ts +2 -1
- package/dist/admin/components/forms/field-types/RichText/elements/toggle.js +10 -14
- package/dist/admin/components/forms/field-types/RichText/elements/toggleList.d.ts +3 -0
- package/dist/admin/components/forms/field-types/RichText/elements/toggleList.js +75 -0
- package/dist/admin/components/forms/field-types/RichText/elements/types.d.ts +4 -2
- package/dist/admin/components/forms/field-types/RichText/elements/unwrapList.d.ts +2 -0
- package/dist/admin/components/forms/field-types/RichText/elements/unwrapList.js +38 -0
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Button/index.d.ts +0 -1
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Button/index.js +22 -110
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Button/index.scss +3 -3
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.d.ts +7 -7
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.js +61 -36
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/index.scss +20 -4
- package/dist/admin/components/forms/field-types/RichText/elements/upload/index.d.ts +5 -6
- package/dist/admin/components/forms/field-types/RichText/index.scss +8 -0
- package/dist/admin/components/forms/field-types/RichText/types.d.ts +10 -1
- package/dist/admin/components/forms/field-types/RichText/types.js +3 -1
- package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Select/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Select/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Tabs/index.js +6 -6
- package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Text/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Text/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Textarea/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Upload/Input.d.ts +1 -1
- package/dist/admin/components/forms/field-types/Upload/Input.js +32 -45
- package/dist/admin/components/forms/field-types/Upload/index.scss +22 -10
- package/dist/admin/components/forms/field-types/Upload/types.d.ts +1 -1
- package/dist/admin/components/forms/field-types/index.d.ts +1 -1
- package/dist/admin/components/forms/field-types/rowReducer.d.ts +8 -8
- package/dist/admin/components/forms/useField/types.d.ts +2 -2
- package/dist/admin/components/modals/StayLoggedIn/types.d.ts +1 -1
- package/dist/admin/components/templates/Default/types.d.ts +1 -1
- package/dist/admin/components/templates/Minimal/types.d.ts +1 -1
- package/dist/admin/components/utilities/Auth/index.d.ts +1 -1
- package/dist/admin/components/utilities/Auth/types.d.ts +1 -1
- package/dist/admin/components/utilities/DocumentInfo/index.js +7 -5
- package/dist/admin/components/utilities/DocumentInfo/types.d.ts +5 -5
- package/dist/admin/components/utilities/Meta/types.d.ts +2 -2
- package/dist/admin/components/utilities/OperationProvider/index.d.ts +1 -1
- package/dist/admin/components/utilities/Preferences/index.d.ts +1 -1
- package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts +1 -1
- package/dist/admin/components/utilities/Theme/index.d.ts +2 -2
- package/dist/admin/components/views/Account/Default.js +2 -2
- package/dist/admin/components/views/Account/index.js +27 -16
- package/dist/admin/components/views/Account/types.d.ts +2 -1
- package/dist/admin/components/views/CreateFirstUser/types.d.ts +1 -1
- package/dist/admin/components/views/Dashboard/types.d.ts +1 -1
- package/dist/admin/components/views/Global/Default.js +3 -3
- package/dist/admin/components/views/Global/index.js +4 -0
- package/dist/admin/components/views/Global/types.d.ts +3 -2
- package/dist/admin/components/views/Version/Compare/types.d.ts +5 -5
- package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/types.d.ts +2 -2
- package/dist/admin/components/views/Version/RenderFieldsToDiff/types.d.ts +1 -1
- package/dist/admin/components/views/Version/Restore/types.d.ts +1 -1
- package/dist/admin/components/views/Version/SelectLocales/types.d.ts +1 -1
- package/dist/admin/components/views/Version/types.d.ts +3 -3
- package/dist/admin/components/views/Versions/types.d.ts +1 -1
- package/dist/admin/components/views/collections/Edit/Auth/types.d.ts +1 -1
- package/dist/admin/components/views/collections/Edit/Default.js +4 -4
- package/dist/admin/components/views/collections/Edit/Upload/index.js +1 -0
- package/dist/admin/components/views/collections/Edit/Upload/types.d.ts +2 -2
- package/dist/admin/components/views/collections/Edit/index.js +6 -2
- package/dist/admin/components/views/collections/Edit/types.d.ts +3 -2
- package/dist/admin/components/views/collections/List/Cell/field-types/Array/index.d.ts +1 -1
- package/dist/admin/components/views/collections/List/Cell/field-types/Blocks/index.d.ts +1 -1
- package/dist/admin/components/views/collections/List/Cell/field-types/Select/index.d.ts +1 -1
- package/dist/admin/components/views/collections/List/Cell/index.js +17 -5
- package/dist/admin/components/views/collections/List/Cell/types.d.ts +4 -1
- package/dist/admin/components/views/collections/List/Default.js +18 -11
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.d.ts +2 -2
- package/dist/admin/components/views/collections/List/RelationshipProvider/index.js +1 -0
- package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.d.ts +3 -3
- package/dist/admin/components/views/collections/List/buildColumns.d.ts +7 -1
- package/dist/admin/components/views/collections/List/buildColumns.js +4 -2
- package/dist/admin/components/views/collections/List/index.js +3 -3
- package/dist/admin/components/views/collections/List/types.d.ts +17 -3
- package/dist/admin/hooks/useIntersect.d.ts +1 -1
- package/dist/admin/hooks/usePayloadAPI.d.ts +3 -3
- package/dist/admin/hooks/useThrottledEffect.d.ts +1 -1
- package/dist/admin/utilities/groupNavItems.d.ts +2 -2
- package/dist/auth/operations/access.d.ts +1 -1
- package/dist/auth/operations/forgotPassword.d.ts +2 -2
- package/dist/auth/operations/local/forgotPassword.d.ts +1 -1
- package/dist/auth/operations/local/login.d.ts +1 -1
- package/dist/auth/operations/local/resetPassword.d.ts +1 -1
- package/dist/auth/operations/local/unlock.d.ts +1 -1
- package/dist/auth/operations/local/verifyEmail.d.ts +1 -1
- package/dist/auth/operations/login.d.ts +2 -2
- package/dist/auth/operations/logout.d.ts +1 -1
- package/dist/auth/operations/me.d.ts +2 -2
- package/dist/auth/operations/refresh.d.ts +2 -2
- package/dist/auth/operations/registerFirstUser.d.ts +2 -2
- package/dist/auth/operations/resetPassword.d.ts +2 -2
- package/dist/auth/operations/unlock.d.ts +1 -1
- package/dist/auth/operations/verifyEmail.d.ts +1 -1
- package/dist/auth/sendVerificationEmail.d.ts +1 -1
- package/dist/auth/strategies/apiKey.js +2 -2
- package/dist/auth/types.d.ts +12 -12
- package/dist/collections/buildSchema.js +6 -1
- package/dist/collections/config/types.d.ts +29 -28
- package/dist/collections/graphql/resolvers/create.d.ts +1 -1
- package/dist/collections/graphql/resolvers/delete.d.ts +1 -1
- package/dist/collections/graphql/resolvers/docAccess.d.ts +1 -1
- package/dist/collections/graphql/resolvers/find.d.ts +1 -1
- package/dist/collections/graphql/resolvers/findByID.d.ts +1 -1
- package/dist/collections/graphql/resolvers/findVersionByID.d.ts +1 -1
- package/dist/collections/graphql/resolvers/findVersions.d.ts +1 -1
- package/dist/collections/graphql/resolvers/restoreVersion.d.ts +1 -1
- package/dist/collections/graphql/resolvers/update.d.ts +1 -1
- package/dist/collections/graphql/types.d.ts +1 -1
- package/dist/collections/operations/create.d.ts +1 -1
- package/dist/collections/operations/delete.d.ts +1 -1
- package/dist/collections/operations/docAccess.d.ts +1 -1
- package/dist/collections/operations/find.d.ts +1 -1
- package/dist/collections/operations/find.js +18 -23
- package/dist/collections/operations/findByID.d.ts +1 -1
- package/dist/collections/operations/findVersionByID.d.ts +1 -1
- package/dist/collections/operations/findVersions.d.ts +1 -1
- package/dist/collections/operations/local/create.d.ts +1 -1
- package/dist/collections/operations/local/delete.d.ts +1 -1
- package/dist/collections/operations/local/find.d.ts +1 -1
- package/dist/collections/operations/local/findByID.d.ts +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +1 -1
- package/dist/collections/operations/local/update.d.ts +2 -1
- package/dist/collections/operations/local/update.js +1 -1
- package/dist/collections/operations/restoreVersion.d.ts +1 -1
- package/dist/collections/operations/update.d.ts +1 -1
- package/dist/collections/requestHandlers/create.d.ts +1 -1
- package/dist/collections/requestHandlers/delete.d.ts +1 -1
- package/dist/collections/requestHandlers/findByID.d.ts +1 -1
- package/dist/collections/requestHandlers/findVersionByID.d.ts +1 -1
- package/dist/collections/requestHandlers/restoreVersion.d.ts +1 -1
- package/dist/collections/requestHandlers/update.d.ts +1 -1
- package/dist/config/types.d.ts +18 -18
- package/dist/email/build.js +2 -2
- package/dist/email/types.d.ts +3 -3
- package/dist/errors/InvalidFieldName.d.ts +2 -2
- package/dist/errors/InvalidFieldName.js +1 -1
- package/dist/errors/InvalidFieldRelationship.d.ts +2 -2
- package/dist/errors/InvalidFieldRelationship.js +1 -1
- package/dist/errors/MissingFieldInputOptions.d.ts +2 -2
- package/dist/errors/MissingFieldInputOptions.js +1 -1
- package/dist/express/middleware/authenticate.d.ts +1 -1
- package/dist/express/middleware/errorHandler.d.ts +1 -1
- package/dist/express/responses/formatError.d.ts +1 -1
- package/dist/fields/config/sanitize.js +2 -2
- package/dist/fields/config/sanitize.spec.js +1 -1
- package/dist/fields/config/types.d.ts +57 -57
- package/dist/fields/getDefaultValue.d.ts +1 -1
- package/dist/fields/hooks/afterChange/index.d.ts +1 -1
- package/dist/fields/hooks/afterChange/promise.d.ts +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.d.ts +1 -1
- package/dist/fields/hooks/afterRead/index.d.ts +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +1 -1
- package/dist/fields/hooks/beforeChange/index.d.ts +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +1 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +1 -1
- package/dist/fields/richText/populate.d.ts +1 -1
- package/dist/fields/richText/recurseNestedFields.d.ts +1 -1
- package/dist/fields/richText/richTextRelationshipPromise.d.ts +2 -2
- package/dist/fields/validations.js +6 -5
- package/dist/globals/buildModel.js +1 -1
- package/dist/globals/config/types.d.ts +8 -8
- package/dist/globals/graphql/resolvers/docAccess.d.ts +1 -1
- package/dist/globals/graphql/resolvers/findVersionByID.d.ts +1 -1
- package/dist/globals/graphql/resolvers/findVersions.d.ts +1 -1
- package/dist/globals/graphql/resolvers/restoreVersion.d.ts +1 -1
- package/dist/globals/graphql/resolvers/update.d.ts +1 -1
- package/dist/globals/operations/docAccess.d.ts +1 -1
- package/dist/globals/operations/findOne.d.ts +1 -1
- package/dist/globals/operations/findVersionByID.d.ts +1 -1
- package/dist/globals/operations/findVersions.d.ts +1 -1
- package/dist/globals/operations/local/findOne.d.ts +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts +1 -1
- package/dist/globals/operations/local/update.d.ts +1 -1
- package/dist/globals/operations/restoreVersion.d.ts +1 -1
- package/dist/globals/operations/update.d.ts +1 -1
- package/dist/globals/operations/update.js +26 -5
- package/dist/globals/requestHandlers/findOne.d.ts +2 -2
- package/dist/globals/requestHandlers/update.d.ts +2 -2
- package/dist/graphql/schema/buildBlockType.d.ts +1 -1
- package/dist/graphql/schema/buildMutationInputType.d.ts +1 -1
- package/dist/graphql/schema/buildMutationInputType.js +2 -2
- package/dist/graphql/schema/buildObjectType.d.ts +2 -2
- package/dist/graphql/schema/buildPoliciesType.d.ts +4 -4
- package/dist/graphql/schema/fieldToWhereInputSchemaMap.js +2 -2
- package/dist/mongoose/buildSchema.d.ts +1 -1
- package/dist/mongoose/buildSortParam.d.ts +1 -1
- package/dist/mongoose/getLocalizedSortProperty.d.ts +1 -1
- package/dist/mongoose/types.d.ts +1 -1
- package/dist/preferences/graphql/init.js +2 -2
- package/dist/preferences/requestHandlers/update.d.ts +2 -2
- package/dist/preferences/types.d.ts +8 -8
- package/dist/translations/cs.json +307 -0
- package/dist/translations/de.json +7 -3
- package/dist/translations/en.json +5 -1
- package/dist/translations/es.json +6 -2
- package/dist/translations/fr.json +6 -2
- package/dist/translations/index.d.ts +371 -0
- package/dist/translations/index.js +3 -1
- package/dist/translations/it.json +5 -1
- package/dist/translations/ja.json +4 -0
- package/dist/translations/my.json +4 -0
- package/dist/translations/nb.json +7 -3
- package/dist/translations/nl.json +7 -3
- package/dist/translations/pl.json +7 -3
- package/dist/translations/pt.json +5 -1
- package/dist/translations/ru.json +4 -0
- package/dist/translations/sv.json +5 -1
- package/dist/translations/th.json +4 -0
- package/dist/translations/tr.json +6 -2
- package/dist/translations/type.d.ts +1 -1
- package/dist/translations/vi.json +4 -0
- package/dist/types/index.d.ts +8 -8
- package/dist/uploads/generateFileData.d.ts +2 -2
- package/dist/uploads/generateFileData.js +28 -14
- package/dist/uploads/getBaseFields.d.ts +1 -1
- package/dist/uploads/getImageSize.d.ts +1 -1
- package/dist/uploads/imageResizer.d.ts +7 -4
- package/dist/uploads/imageResizer.js +17 -16
- package/dist/uploads/types.d.ts +10 -12
- package/dist/utilities/flattenTopLevelFields.js +1 -1
- package/dist/utilities/getEntityPolicies.d.ts +2 -2
- package/dist/utilities/logger.d.ts +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts +1 -1
- package/dist/utilities/telemetry/events/serverInit.d.ts +1 -1
- package/dist/utilities/telemetry/index.d.ts +4 -4
- package/dist/utilities/wordBoundariesRegex.js +3 -2
- package/dist/versions/cleanUpFailedVersion.d.ts +1 -1
- package/dist/versions/drafts/buildDraftMergeAggregate.d.ts +8 -0
- package/dist/versions/drafts/buildDraftMergeAggregate.js +87 -0
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -6
- package/dist/versions/drafts/saveCollectionDraft.d.ts +1 -1
- package/dist/versions/drafts/saveGlobalDraft.d.ts +1 -1
- package/dist/versions/enforceMaxVersions.d.ts +1 -1
- package/dist/versions/ensurePublishedCollectionVersion.d.ts +1 -1
- package/dist/versions/ensurePublishedGlobalVersion.d.ts +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts +1 -1
- package/dist/versions/saveCollectionVersion.d.ts +1 -1
- package/dist/versions/saveGlobalVersion.d.ts +1 -1
- package/dist/versions/shouldIncrementVersionCount.d.ts +1 -1
- package/dist/versions/types.d.ts +7 -7
- package/docs/authentication/config.mdx +5 -5
- package/docs/getting-started/installation.mdx +4 -0
- package/docs/production/deployment.mdx +74 -0
- package/package.json +4 -2
- package/dist/admin/components/forms/field-types/RichText/elements/link/Button.d.ts +0 -4
- package/dist/admin/components/forms/field-types/RichText/elements/link/Button.js +0 -107
- package/dist/admin/components/forms/field-types/RichText/elements/link/Element.d.ts +0 -9
- package/dist/admin/components/forms/field-types/RichText/elements/link/Modal/index.scss +0 -29
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.d.ts +0 -16
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.js +0 -48
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.scss +0 -31
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/SwapUploadModal/index.d.ts +0 -13
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/SwapUploadModal/index.js +0 -97
- package/dist/admin/components/forms/field-types/RichText/elements/upload/addSwapModals.scss +0 -57
- package/dist/admin/components/forms/field-types/Upload/Add/index.d.ts +0 -5
- package/dist/admin/components/forms/field-types/Upload/Add/index.js +0 -44
- package/dist/admin/components/forms/field-types/Upload/Add/index.scss +0 -34
- package/dist/admin/components/forms/field-types/Upload/Add/types.d.ts +0 -10
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.d.ts +0 -5
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.js +0 -98
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.scss +0 -60
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/types.d.ts +0 -11
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/types.js +0 -1
- package/dist/versions/getLatestGlobalVersion.d.ts +0 -10
- package/dist/versions/getLatestGlobalVersion.js +0 -27
|
@@ -80,6 +80,7 @@ const Relationship = (props) => {
|
|
|
80
80
|
limit: maxResultsPerRequest,
|
|
81
81
|
page: lastLoadedPageToUse,
|
|
82
82
|
sort: fieldToSearch,
|
|
83
|
+
locale: i18n.language,
|
|
83
84
|
depth: 0,
|
|
84
85
|
};
|
|
85
86
|
if (searchArg) {
|
|
@@ -170,6 +171,7 @@ const Relationship = (props) => {
|
|
|
170
171
|
},
|
|
171
172
|
},
|
|
172
173
|
depth: 0,
|
|
174
|
+
locale: i18n.language,
|
|
173
175
|
limit: idsToLoad.length,
|
|
174
176
|
};
|
|
175
177
|
if (!errorLoading) {
|
|
@@ -225,6 +227,9 @@ const Relationship = (props) => {
|
|
|
225
227
|
setLastLoadedPage(1);
|
|
226
228
|
setHasLoadedFirstPage(false);
|
|
227
229
|
}, [relationTo, filterOptionsResult]);
|
|
230
|
+
const onSave = useCallback((args) => {
|
|
231
|
+
dispatchOptions({ type: 'UPDATE', doc: args.doc, collection: args.collectionConfig, i18n });
|
|
232
|
+
}, [i18n]);
|
|
228
233
|
const classes = [
|
|
229
234
|
'field-type',
|
|
230
235
|
baseClass,
|
|
@@ -283,6 +288,7 @@ const Relationship = (props) => {
|
|
|
283
288
|
disableMouseDown: drawerIsOpen,
|
|
284
289
|
disableKeyDown: drawerIsOpen,
|
|
285
290
|
setDrawerIsOpen,
|
|
291
|
+
onSave,
|
|
286
292
|
}, onMenuOpen: () => {
|
|
287
293
|
if (!hasLoadedFirstPage) {
|
|
288
294
|
setIsLoading(true);
|
|
@@ -19,10 +19,24 @@ const sortOptions = (options) => options.sort((a, b) => {
|
|
|
19
19
|
return 0;
|
|
20
20
|
});
|
|
21
21
|
const optionsReducer = (state, action) => {
|
|
22
|
+
var _a;
|
|
22
23
|
switch (action.type) {
|
|
23
24
|
case 'CLEAR': {
|
|
24
25
|
return [];
|
|
25
26
|
}
|
|
27
|
+
case 'UPDATE': {
|
|
28
|
+
const { collection, doc, i18n } = action;
|
|
29
|
+
const relation = collection.slug;
|
|
30
|
+
const newOptions = [...state];
|
|
31
|
+
const labelKey = collection.admin.useAsTitle || 'id';
|
|
32
|
+
const foundOptionGroup = newOptions.find((optionGroup) => optionGroup.label === collection.labels.plural);
|
|
33
|
+
const foundOption = (_a = foundOptionGroup === null || foundOptionGroup === void 0 ? void 0 : foundOptionGroup.options) === null || _a === void 0 ? void 0 : _a.find((option) => option.value === doc.id);
|
|
34
|
+
if (foundOption) {
|
|
35
|
+
foundOption.label = doc[labelKey] || `${i18n.t('general:untitled')} - ID: ${doc.id}`;
|
|
36
|
+
foundOption.relationTo = relation;
|
|
37
|
+
}
|
|
38
|
+
return newOptions;
|
|
39
|
+
}
|
|
26
40
|
case 'ADD': {
|
|
27
41
|
const { collection, docs, sort, ids = [], i18n } = action;
|
|
28
42
|
const relation = collection.slug;
|
|
@@ -9,7 +9,7 @@ import './index.scss';
|
|
|
9
9
|
const baseClass = 'relationship--multi-value-label';
|
|
10
10
|
export const MultiValueLabel = (props) => {
|
|
11
11
|
var _a, _b, _c;
|
|
12
|
-
const { data: { value, relationTo, label, }, selectProps: { setDrawerIsOpen, draggableProps, }, } = props;
|
|
12
|
+
const { data: { value, relationTo, label, }, selectProps: { setDrawerIsOpen, draggableProps, onSave, }, } = props;
|
|
13
13
|
const { permissions } = useAuth();
|
|
14
14
|
const [showTooltip, setShowTooltip] = useState(false);
|
|
15
15
|
const { t } = useTranslation('general');
|
|
@@ -32,5 +32,5 @@ export const MultiValueLabel = (props) => {
|
|
|
32
32
|
React.createElement(DocumentDrawerToggler, { className: `${baseClass}__drawer-toggler`, "aria-label": `Edit ${label}`, onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false), onClick: () => setShowTooltip(false) },
|
|
33
33
|
React.createElement(Tooltip, { className: `${baseClass}__tooltip`, show: showTooltip }, t('editLabel', { label: '' })),
|
|
34
34
|
React.createElement(Edit, null)),
|
|
35
|
-
React.createElement(DocumentDrawer,
|
|
35
|
+
React.createElement(DocumentDrawer, { onSave: onSave })))));
|
|
36
36
|
};
|
|
@@ -15,14 +15,11 @@
|
|
|
15
15
|
&__text {
|
|
16
16
|
text-overflow: ellipsis;
|
|
17
17
|
overflow: hidden;
|
|
18
|
+
white-space: nowrap;
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
&__drawer-toggler {
|
|
21
22
|
position: relative;
|
|
22
|
-
background: none;
|
|
23
|
-
border: none;
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
padding: 0;
|
|
26
23
|
display: flex;
|
|
27
24
|
align-items: center;
|
|
28
25
|
justify-content: center;
|
package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import './index.scss';
|
|
|
9
9
|
const baseClass = 'relationship--single-value';
|
|
10
10
|
export const SingleValue = (props) => {
|
|
11
11
|
var _a, _b, _c;
|
|
12
|
-
const { data: { value, relationTo, label, }, children, selectProps: { selectProps: { setDrawerIsOpen, }, }, } = props;
|
|
12
|
+
const { data: { value, relationTo, label, }, children, selectProps: { selectProps: { setDrawerIsOpen, onSave, }, }, } = props;
|
|
13
13
|
const [showTooltip, setShowTooltip] = useState(false);
|
|
14
14
|
const { t } = useTranslation('general');
|
|
15
15
|
const { permissions } = useAuth();
|
|
@@ -30,5 +30,5 @@ export const SingleValue = (props) => {
|
|
|
30
30
|
React.createElement(DocumentDrawerToggler, { className: `${baseClass}__drawer-toggler`, "aria-label": t('editLabel', { label }), onMouseDown: (e) => e.stopPropagation(), onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false), onClick: () => setShowTooltip(false) },
|
|
31
31
|
React.createElement(Tooltip, { className: `${baseClass}__tooltip`, show: showTooltip }, t('edit')),
|
|
32
32
|
React.createElement(Edit, null)))))),
|
|
33
|
-
relationTo && hasReadPermission && (React.createElement(DocumentDrawer,
|
|
33
|
+
relationTo && hasReadPermission && (React.createElement(DocumentDrawer, { onSave: onSave }))));
|
|
34
34
|
};
|
|
@@ -10,14 +10,17 @@
|
|
|
10
10
|
display: flex;
|
|
11
11
|
align-items: center;
|
|
12
12
|
overflow: visible;
|
|
13
|
+
width: 100%;
|
|
14
|
+
flex-shrink: 1;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&__text {
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
text-overflow: ellipsis;
|
|
13
20
|
}
|
|
14
21
|
|
|
15
22
|
&__drawer-toggler {
|
|
16
23
|
position: relative;
|
|
17
|
-
background: none;
|
|
18
|
-
border: none;
|
|
19
|
-
cursor: pointer;
|
|
20
|
-
padding: 0;
|
|
21
24
|
display: inline-flex;
|
|
22
25
|
align-items: center;
|
|
23
26
|
justify-content: center;
|
|
@@ -2,27 +2,33 @@ import i18n from 'i18next';
|
|
|
2
2
|
import { SanitizedCollectionConfig } from '../../../../../collections/config/types';
|
|
3
3
|
import { RelationshipField } from '../../../../../fields/config/types';
|
|
4
4
|
import { Where } from '../../../../../types';
|
|
5
|
-
export type Props = Omit<RelationshipField, 'type'> & {
|
|
5
|
+
export declare type Props = Omit<RelationshipField, 'type'> & {
|
|
6
6
|
path?: string;
|
|
7
7
|
};
|
|
8
|
-
export type Option = {
|
|
8
|
+
export declare type Option = {
|
|
9
9
|
label: string;
|
|
10
10
|
value: string | number;
|
|
11
11
|
relationTo?: string;
|
|
12
12
|
options?: Option[];
|
|
13
13
|
};
|
|
14
|
-
export type OptionGroup = {
|
|
14
|
+
export declare type OptionGroup = {
|
|
15
15
|
label: string;
|
|
16
16
|
options: Option[];
|
|
17
17
|
};
|
|
18
|
-
export type Value = {
|
|
18
|
+
export declare type Value = {
|
|
19
19
|
relationTo: string;
|
|
20
20
|
value: string | number;
|
|
21
21
|
} | string | number;
|
|
22
|
-
type CLEAR = {
|
|
22
|
+
declare type CLEAR = {
|
|
23
23
|
type: 'CLEAR';
|
|
24
24
|
};
|
|
25
|
-
type
|
|
25
|
+
declare type UPDATE = {
|
|
26
|
+
type: 'UPDATE';
|
|
27
|
+
doc: any;
|
|
28
|
+
collection: SanitizedCollectionConfig;
|
|
29
|
+
i18n: typeof i18n;
|
|
30
|
+
};
|
|
31
|
+
declare type ADD = {
|
|
26
32
|
type: 'ADD';
|
|
27
33
|
docs: any[];
|
|
28
34
|
collection: SanitizedCollectionConfig;
|
|
@@ -30,12 +36,12 @@ type ADD = {
|
|
|
30
36
|
ids?: unknown[];
|
|
31
37
|
i18n: typeof i18n;
|
|
32
38
|
};
|
|
33
|
-
export type Action = CLEAR | ADD;
|
|
34
|
-
export type ValueWithRelation = {
|
|
39
|
+
export declare type Action = CLEAR | ADD | UPDATE;
|
|
40
|
+
export declare type ValueWithRelation = {
|
|
35
41
|
relationTo: string;
|
|
36
42
|
value: string;
|
|
37
43
|
};
|
|
38
|
-
export type GetResults = (args: {
|
|
44
|
+
export declare type GetResults = (args: {
|
|
39
45
|
lastFullyLoadedRelation?: number;
|
|
40
46
|
lastLoadedPage?: number;
|
|
41
47
|
search?: string;
|
|
@@ -43,7 +49,7 @@ export type GetResults = (args: {
|
|
|
43
49
|
sort?: boolean;
|
|
44
50
|
onSuccess?: () => void;
|
|
45
51
|
}) => Promise<void>;
|
|
46
|
-
export type FilterOptionsResult = {
|
|
52
|
+
export declare type FilterOptionsResult = {
|
|
47
53
|
[relation: string]: Where;
|
|
48
54
|
};
|
|
49
55
|
export {};
|
|
@@ -2,21 +2,13 @@ import React from 'react';
|
|
|
2
2
|
import { BaseEditor } from 'slate';
|
|
3
3
|
import { ReactEditor } from 'slate-react';
|
|
4
4
|
import { HistoryEditor } from 'slate-history';
|
|
5
|
-
import { Props } from './types';
|
|
5
|
+
import { ElementNode, TextNode, Props } from './types';
|
|
6
6
|
import './index.scss';
|
|
7
|
-
type CustomText = {
|
|
8
|
-
text: string;
|
|
9
|
-
[x: string]: unknown;
|
|
10
|
-
};
|
|
11
|
-
type CustomElement = {
|
|
12
|
-
type?: string;
|
|
13
|
-
children: CustomText[];
|
|
14
|
-
};
|
|
15
7
|
declare module 'slate' {
|
|
16
8
|
interface CustomTypes {
|
|
17
9
|
Editor: BaseEditor & ReactEditor & HistoryEditor;
|
|
18
|
-
Element:
|
|
19
|
-
Text:
|
|
10
|
+
Element: ElementNode;
|
|
11
|
+
Text: TextNode;
|
|
20
12
|
}
|
|
21
13
|
}
|
|
22
14
|
declare const _default: React.FC<Props>;
|
|
@@ -21,6 +21,7 @@ import listTypes from './elements/listTypes';
|
|
|
21
21
|
import mergeCustomFunctions from './mergeCustomFunctions';
|
|
22
22
|
import withEnterBreakOut from './plugins/withEnterBreakOut';
|
|
23
23
|
import { getTranslation } from '../../../../../utilities/getTranslation';
|
|
24
|
+
import { useEditDepth } from '../../../utilities/EditDepth';
|
|
24
25
|
import './index.scss';
|
|
25
26
|
const defaultElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'indent', 'link', 'relationship', 'upload'];
|
|
26
27
|
const defaultLeaves = ['bold', 'italic', 'underline', 'strikethrough', 'code'];
|
|
@@ -36,6 +37,8 @@ const RichText = (props) => {
|
|
|
36
37
|
const [enabledLeaves, setEnabledLeaves] = useState({});
|
|
37
38
|
const editorRef = useRef(null);
|
|
38
39
|
const toolbarRef = useRef(null);
|
|
40
|
+
const drawerDepth = useEditDepth();
|
|
41
|
+
const drawerIsOpen = drawerDepth > 1;
|
|
39
42
|
const renderElement = useCallback(({ attributes, children, element }) => {
|
|
40
43
|
const matchedElement = enabledElements[element === null || element === void 0 ? void 0 : element.type];
|
|
41
44
|
const Element = matchedElement === null || matchedElement === void 0 ? void 0 : matchedElement.Element;
|
|
@@ -115,13 +118,13 @@ const RichText = (props) => {
|
|
|
115
118
|
};
|
|
116
119
|
}, [loaded, readOnly]);
|
|
117
120
|
useEffect(() => {
|
|
118
|
-
// If there is a change to the initial value, we need to reset Slate
|
|
119
|
-
//
|
|
121
|
+
// If there is a change to the initial value, we need to reset Slate history
|
|
122
|
+
// and clear selection because the old selection may no longer be valid
|
|
123
|
+
// as returned JSON may be modified in hooks and have a different shape
|
|
120
124
|
if (Array.isArray(initialValue) && initialValue.length > 0) {
|
|
121
125
|
if (editor.selection)
|
|
122
126
|
ReactEditor.deselect(editor);
|
|
123
127
|
editor.history = { redos: [], undos: [] };
|
|
124
|
-
editor.children = initialValue;
|
|
125
128
|
}
|
|
126
129
|
}, [initialValue, editor]);
|
|
127
130
|
if (!loaded) {
|
|
@@ -152,7 +155,10 @@ const RichText = (props) => {
|
|
|
152
155
|
}
|
|
153
156
|
} },
|
|
154
157
|
React.createElement("div", { className: `${baseClass}__wrapper` },
|
|
155
|
-
React.createElement("div", { className:
|
|
158
|
+
React.createElement("div", { className: [
|
|
159
|
+
`${baseClass}__toolbar`,
|
|
160
|
+
drawerIsOpen && `${baseClass}__drawerIsOpen`,
|
|
161
|
+
].filter(Boolean).join(' '), ref: toolbarRef },
|
|
156
162
|
React.createElement("div", { className: `${baseClass}__toolbar-wrap` },
|
|
157
163
|
elements.map((element, i) => {
|
|
158
164
|
let elementName;
|
|
@@ -209,12 +215,14 @@ const RichText = (props) => {
|
|
|
209
215
|
const selectedElement = Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
|
|
210
216
|
if (SlateElement.isElement(selectedElement) && selectedElement.type === 'li') {
|
|
211
217
|
const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
|
|
212
|
-
if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length ===
|
|
218
|
+
if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {
|
|
219
|
+
event.preventDefault();
|
|
213
220
|
Transforms.unwrapNodes(editor, {
|
|
214
221
|
match: (n) => SlateElement.isElement(n) && listTypes.includes(n.type),
|
|
215
222
|
split: true,
|
|
223
|
+
mode: 'lowest',
|
|
216
224
|
});
|
|
217
|
-
Transforms.setNodes(editor, {});
|
|
225
|
+
Transforms.setNodes(editor, { type: undefined });
|
|
218
226
|
}
|
|
219
227
|
}
|
|
220
228
|
else if (editor.isVoid(selectedElement)) {
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
-
import React, { useCallback } from 'react';
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
2
|
import { useSlate } from 'slate-react';
|
|
3
3
|
import isElementActive from './isActive';
|
|
4
4
|
import toggleElement from './toggle';
|
|
5
|
+
import Tooltip from '../../../../elements/Tooltip';
|
|
5
6
|
import '../buttons.scss';
|
|
6
7
|
export const baseClass = 'rich-text__button';
|
|
7
|
-
const ElementButton = (
|
|
8
|
+
const ElementButton = (props) => {
|
|
9
|
+
const { format, children, onClick, className, tooltip, el = 'button', } = props;
|
|
8
10
|
const editor = useSlate();
|
|
11
|
+
const [showTooltip, setShowTooltip] = useState(false);
|
|
9
12
|
const defaultOnClick = useCallback((event) => {
|
|
10
13
|
event.preventDefault();
|
|
14
|
+
setShowTooltip(false);
|
|
11
15
|
toggleElement(editor, format);
|
|
12
16
|
}, [editor, format]);
|
|
13
|
-
|
|
17
|
+
const Tag = el;
|
|
18
|
+
return (React.createElement(Tag, { ...el === 'button' && { type: 'button' }, className: [
|
|
14
19
|
baseClass,
|
|
15
20
|
className,
|
|
16
21
|
isElementActive(editor, format) && `${baseClass}__button--active`,
|
|
17
|
-
].filter(Boolean).join(' '), onClick: onClick || defaultOnClick
|
|
22
|
+
].filter(Boolean).join(' '), onClick: onClick || defaultOnClick, onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false) },
|
|
23
|
+
tooltip && (React.createElement(Tooltip, { show: showTooltip }, tooltip)),
|
|
24
|
+
children));
|
|
18
25
|
};
|
|
19
26
|
export default ElementButton;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import { useSlate } from 'slate-react';
|
|
3
|
+
import toggleList from './toggleList';
|
|
3
4
|
import isListActive from './isListActive';
|
|
4
|
-
import toggleElement from './toggle';
|
|
5
5
|
import '../buttons.scss';
|
|
6
6
|
export const baseClass = 'rich-text__button';
|
|
7
7
|
const ListButton = ({ format, children, onClick, className }) => {
|
|
8
8
|
const editor = useSlate();
|
|
9
9
|
const defaultOnClick = useCallback((event) => {
|
|
10
10
|
event.preventDefault();
|
|
11
|
-
|
|
11
|
+
toggleList(editor, format);
|
|
12
12
|
}, [editor, format]);
|
|
13
13
|
return (React.createElement("button", { type: "button", className: [
|
|
14
14
|
baseClass,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Editor, Node } from 'slate';
|
|
2
|
+
export const getCommonBlock = (editor, match) => {
|
|
3
|
+
const range = Editor.unhangRange(editor, editor.selection, { voids: true });
|
|
4
|
+
const [common, path] = Node.common(editor, range.anchor.path, range.focus.path);
|
|
5
|
+
if (Editor.isBlock(editor, common) || Editor.isEditor(common)) {
|
|
6
|
+
return [common, path];
|
|
7
|
+
}
|
|
8
|
+
return Editor.above(editor, {
|
|
9
|
+
at: path,
|
|
10
|
+
match: match || ((n) => Editor.isBlock(editor, n) || Editor.isEditor(n)),
|
|
11
|
+
});
|
|
12
|
+
};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React, { useCallback } from 'react';
|
|
2
2
|
import { useSlate, ReactEditor } from 'slate-react';
|
|
3
|
-
import { Editor, Element, Transforms } from 'slate';
|
|
3
|
+
import { Editor, Element, Text, Transforms } from 'slate';
|
|
4
4
|
import IndentLeft from '../../../../../icons/IndentLeft';
|
|
5
5
|
import IndentRight from '../../../../../icons/IndentRight';
|
|
6
6
|
import { baseClass } from '../Button';
|
|
7
7
|
import isElementActive from '../isActive';
|
|
8
8
|
import listTypes from '../listTypes';
|
|
9
|
+
import { getCommonBlock } from '../getCommonBlock';
|
|
10
|
+
import { unwrapList } from '../unwrapList';
|
|
9
11
|
const indentType = 'indent';
|
|
10
12
|
const IndentWithPadding = ({ attributes, children }) => (React.createElement("div", { style: { paddingLeft: 25 }, ...attributes }, children));
|
|
11
13
|
const indent = {
|
|
@@ -14,36 +16,130 @@ const indent = {
|
|
|
14
16
|
const handleIndent = useCallback((e, dir) => {
|
|
15
17
|
e.preventDefault();
|
|
16
18
|
if (dir === 'left') {
|
|
17
|
-
Transforms.unwrapNodes(editor, {
|
|
18
|
-
match: (n) => Element.isElement(n) && [indentType, ...listTypes].includes(n.type),
|
|
19
|
-
split: true,
|
|
20
|
-
mode: 'lowest',
|
|
21
|
-
});
|
|
22
19
|
if (isElementActive(editor, 'li')) {
|
|
23
|
-
const [,
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
const [, listPath] = getCommonBlock(editor, (n) => Element.isElement(n) && listTypes.includes(n.type));
|
|
21
|
+
const matchedParentList = Editor.above(editor, {
|
|
22
|
+
at: listPath,
|
|
23
|
+
match: (n) => !Editor.isEditor(n) && Editor.isBlock(editor, n),
|
|
24
|
+
});
|
|
25
|
+
if (matchedParentList) {
|
|
26
|
+
const [parentListItem, parentListItemPath] = matchedParentList;
|
|
27
|
+
if (parentListItem.children.length > 1) {
|
|
28
|
+
// Remove nested list
|
|
29
|
+
Transforms.unwrapNodes(editor, {
|
|
30
|
+
at: parentListItemPath,
|
|
31
|
+
match: (node, path) => {
|
|
32
|
+
const matches = !Editor.isEditor(node)
|
|
33
|
+
&& Element.isElement(node)
|
|
34
|
+
&& listTypes.includes(node.type)
|
|
35
|
+
&& path.length === parentListItemPath.length + 1;
|
|
36
|
+
return matches;
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// Set li type on any children that don't have a type
|
|
40
|
+
Transforms.setNodes(editor, { type: 'li' }, {
|
|
41
|
+
at: parentListItemPath,
|
|
42
|
+
match: (node, path) => {
|
|
43
|
+
const matches = !Editor.isEditor(node)
|
|
44
|
+
&& Element.isElement(node)
|
|
45
|
+
&& node.type !== 'li'
|
|
46
|
+
&& path.length === parentListItemPath.length + 1;
|
|
47
|
+
return matches;
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
// Parent list item path has changed at this point
|
|
51
|
+
// so we need to re-fetch the parent node
|
|
52
|
+
const [newParentNode] = Editor.node(editor, parentListItemPath);
|
|
53
|
+
// If the parent node is an li,
|
|
54
|
+
// lift all li nodes within
|
|
55
|
+
if (Element.isElement(newParentNode) && newParentNode.type === 'li') {
|
|
56
|
+
// Lift the nested lis
|
|
57
|
+
Transforms.liftNodes(editor, {
|
|
58
|
+
at: parentListItemPath,
|
|
59
|
+
match: (node, path) => {
|
|
60
|
+
const matches = !Editor.isEditor(node)
|
|
61
|
+
&& Element.isElement(node)
|
|
62
|
+
&& path.length === parentListItemPath.length + 1
|
|
63
|
+
&& node.type === 'li';
|
|
64
|
+
return matches;
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
Transforms.unwrapNodes(editor, {
|
|
71
|
+
at: parentListItemPath,
|
|
72
|
+
match: (node, path) => {
|
|
73
|
+
return Element.isElement(node)
|
|
74
|
+
&& node.type === 'li'
|
|
75
|
+
&& path.length === parentListItemPath.length;
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
Transforms.unwrapNodes(editor, {
|
|
79
|
+
match: (n) => Element.isElement(n) && listTypes.includes(n.type),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
31
82
|
}
|
|
32
83
|
else {
|
|
33
|
-
|
|
84
|
+
unwrapList(editor, listPath);
|
|
34
85
|
}
|
|
35
86
|
}
|
|
87
|
+
else {
|
|
88
|
+
Transforms.unwrapNodes(editor, {
|
|
89
|
+
match: (n) => Element.isElement(n) && n.type === indentType,
|
|
90
|
+
split: true,
|
|
91
|
+
mode: 'lowest',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
36
94
|
}
|
|
37
95
|
if (dir === 'right') {
|
|
38
96
|
const isCurrentlyOL = isElementActive(editor, 'ol');
|
|
39
97
|
const isCurrentlyUL = isElementActive(editor, 'ul');
|
|
40
98
|
if (isCurrentlyOL || isCurrentlyUL) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
99
|
+
// Get the path of the first selected li -
|
|
100
|
+
// Multiple lis could be selected
|
|
101
|
+
// and the selection may start in the middle of the first li
|
|
102
|
+
const [[, firstSelectedLIPath]] = Array.from(Editor.nodes(editor, {
|
|
103
|
+
mode: 'lowest',
|
|
104
|
+
match: (node) => Element.isElement(node) && node.type === 'li',
|
|
105
|
+
}));
|
|
106
|
+
// Is the first selected li the first in its list?
|
|
107
|
+
const hasPrecedingLI = firstSelectedLIPath[firstSelectedLIPath.length - 1] > 0;
|
|
108
|
+
// If the first selected li is NOT the first in its list,
|
|
109
|
+
// we need to inject it into the prior li
|
|
110
|
+
if (hasPrecedingLI) {
|
|
111
|
+
const [, precedingLIPath] = Editor.previous(editor, {
|
|
112
|
+
at: firstSelectedLIPath,
|
|
113
|
+
});
|
|
114
|
+
const [precedingLIChildren] = Editor.node(editor, [...precedingLIPath, 0]);
|
|
115
|
+
const precedingLIChildrenIsText = Text.isText(precedingLIChildren);
|
|
116
|
+
if (precedingLIChildrenIsText) {
|
|
117
|
+
// Wrap the prior li text content so that it can be nested next to a list
|
|
118
|
+
Transforms.wrapNodes(editor, { children: [] }, { at: [...precedingLIPath, 0] });
|
|
119
|
+
}
|
|
120
|
+
// Move the selected lis after the prior li contents
|
|
121
|
+
Transforms.moveNodes(editor, {
|
|
122
|
+
to: [...precedingLIPath, 1],
|
|
123
|
+
match: (node) => Element.isElement(node) && node.type === 'li',
|
|
124
|
+
mode: 'lowest',
|
|
125
|
+
});
|
|
126
|
+
// Wrap the selected lis in a new list
|
|
127
|
+
Transforms.wrapNodes(editor, {
|
|
128
|
+
type: isCurrentlyOL ? 'ol' : 'ul', children: [],
|
|
129
|
+
}, {
|
|
130
|
+
match: (node) => Element.isElement(node) && node.type === 'li',
|
|
131
|
+
mode: 'lowest',
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Otherwise, just wrap the node in a list / li
|
|
136
|
+
Transforms.wrapNodes(editor, {
|
|
137
|
+
type: isCurrentlyOL ? 'ol' : 'ul', children: [{ type: 'li', children: [] }],
|
|
138
|
+
}, {
|
|
139
|
+
match: (node) => Element.isElement(node) && node.type === 'li',
|
|
140
|
+
mode: 'lowest',
|
|
141
|
+
});
|
|
142
|
+
}
|
|
47
143
|
}
|
|
48
144
|
else {
|
|
49
145
|
Transforms.wrapNodes(editor, { type: indentType, children: [] });
|
|
@@ -43,16 +43,17 @@ declare const elements: {
|
|
|
43
43
|
}) => JSX.Element;
|
|
44
44
|
};
|
|
45
45
|
link: {
|
|
46
|
-
Button: ({
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
Button: import("react").FC<{
|
|
47
|
+
path: string;
|
|
48
|
+
fieldProps: import("../types").Props;
|
|
49
|
+
}>;
|
|
50
|
+
Element: import("react").FC<{
|
|
51
|
+
attributes: import("react").HTMLAttributes<HTMLDivElement>;
|
|
52
|
+
children: import("react").ReactNode;
|
|
52
53
|
element: any;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
54
|
+
fieldProps: import("../types").Props;
|
|
55
|
+
editorRef: import("react").RefObject<HTMLDivElement>;
|
|
56
|
+
}>;
|
|
56
57
|
plugins: ((incomingEditor: import("slate").BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor) => import("slate").BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor)[];
|
|
57
58
|
};
|
|
58
59
|
ol: {
|
|
@@ -83,20 +84,24 @@ declare const elements: {
|
|
|
83
84
|
Button: import("react").FC<{
|
|
84
85
|
path: string;
|
|
85
86
|
}>;
|
|
86
|
-
Element: (
|
|
87
|
+
Element: import("react").FC<{
|
|
88
|
+
attributes: import("react").HTMLAttributes<HTMLDivElement>;
|
|
89
|
+
children: import("react").ReactNode;
|
|
90
|
+
element: any;
|
|
91
|
+
fieldProps: import("../types").Props;
|
|
92
|
+
}>;
|
|
87
93
|
plugins: ((incomingEditor: any) => any)[];
|
|
88
94
|
};
|
|
89
95
|
upload: {
|
|
90
96
|
Button: import("react").FC<{
|
|
91
97
|
path: string;
|
|
92
98
|
}>;
|
|
93
|
-
Element: ({
|
|
94
|
-
attributes:
|
|
95
|
-
children:
|
|
99
|
+
Element: import("react").FC<{
|
|
100
|
+
attributes: import("react").HTMLAttributes<HTMLDivElement>;
|
|
101
|
+
children: import("react").ReactNode;
|
|
96
102
|
element: any;
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}) => JSX.Element;
|
|
103
|
+
fieldProps: import("../types").Props;
|
|
104
|
+
}>;
|
|
100
105
|
plugins: ((incomingEditor: any) => any)[];
|
|
101
106
|
};
|
|
102
107
|
};
|
package/dist/admin/components/forms/field-types/RichText/elements/isLastSelectedElementEmpty.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { Editor, Element } from 'slate';
|
|
2
|
+
import { nodeIsTextNode } from '../types';
|
|
2
3
|
export const isLastSelectedElementEmpty = (editor) => {
|
|
3
|
-
var _a;
|
|
4
|
+
var _a, _b;
|
|
5
|
+
if (!editor.selection)
|
|
6
|
+
return false;
|
|
4
7
|
const currentlySelectedNodes = Array.from(Editor.nodes(editor, {
|
|
5
8
|
at: Editor.unhangRange(editor, editor.selection),
|
|
6
9
|
match: (n) => !Editor.isEditor(n) && Element.isElement(n) && (!n.type || n.type === 'p'),
|
|
@@ -8,5 +11,6 @@ export const isLastSelectedElementEmpty = (editor) => {
|
|
|
8
11
|
const lastSelectedNode = currentlySelectedNodes === null || currentlySelectedNodes === void 0 ? void 0 : currentlySelectedNodes[(currentlySelectedNodes === null || currentlySelectedNodes === void 0 ? void 0 : currentlySelectedNodes.length) - 1];
|
|
9
12
|
return lastSelectedNode && Element.isElement(lastSelectedNode[0])
|
|
10
13
|
&& (!lastSelectedNode[0].type || lastSelectedNode[0].type === 'p')
|
|
11
|
-
&& ((_a = lastSelectedNode[0].children) === null || _a === void 0 ? void 0 : _a[0]
|
|
14
|
+
&& nodeIsTextNode((_a = lastSelectedNode[0].children) === null || _a === void 0 ? void 0 : _a[0])
|
|
15
|
+
&& ((_b = lastSelectedNode[0].children) === null || _b === void 0 ? void 0 : _b[0].text) === '';
|
|
12
16
|
};
|