payload 1.3.3 → 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 +22 -15
- 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 +2 -3
- package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.js +24 -27
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +1 -4
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +2 -3
- package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +4 -3
- 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/getEntityPolicies.js +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
package/dist/admin/components/forms/field-types/RichText/elements/link/{Modal → LinkDrawer}/index.js
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Modal } from '@faceless-ui/modal';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import {
|
|
3
|
+
import { Drawer } from '../../../../../../elements/Drawer';
|
|
5
4
|
import Button from '../../../../../../elements/Button';
|
|
6
5
|
import X from '../../../../../../icons/X';
|
|
7
6
|
import Form from '../../../../../Form';
|
|
@@ -9,14 +8,15 @@ import FormSubmit from '../../../../../Submit';
|
|
|
9
8
|
import fieldTypes from '../../../..';
|
|
10
9
|
import RenderFields from '../../../../../RenderFields';
|
|
11
10
|
import './index.scss';
|
|
11
|
+
import { Gutter } from '../../../../../../elements/Gutter';
|
|
12
12
|
const baseClass = 'rich-text-link-edit-modal';
|
|
13
|
-
export const
|
|
13
|
+
export const LinkDrawer = ({ handleClose, handleModalSubmit, initialState, fieldSchema, drawerSlug, }) => {
|
|
14
14
|
const { t } = useTranslation('fields');
|
|
15
|
-
return (React.createElement(
|
|
16
|
-
React.createElement(
|
|
15
|
+
return (React.createElement(Drawer, { slug: drawerSlug, formatSlug: false, className: baseClass },
|
|
16
|
+
React.createElement(Gutter, { className: `${baseClass}__template` },
|
|
17
17
|
React.createElement("header", { className: `${baseClass}__header` },
|
|
18
|
-
React.createElement("
|
|
19
|
-
React.createElement(Button, { buttonStyle: "none", onClick:
|
|
18
|
+
React.createElement("h2", { className: `${baseClass}__header-text` }, t('editLink')),
|
|
19
|
+
React.createElement(Button, { className: `${baseClass}__header-close`, buttonStyle: "none", onClick: handleClose },
|
|
20
20
|
React.createElement(X, null))),
|
|
21
21
|
React.createElement(Form, { onSubmit: handleModalSubmit, initialState: initialState },
|
|
22
22
|
React.createElement(RenderFields, { fieldTypes: fieldTypes, readOnly: false, fieldSchema: fieldSchema, forceRender: true }),
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
@import '../../../../../../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
.rich-text-link-edit-modal {
|
|
4
|
+
&__template {
|
|
5
|
+
position: relative;
|
|
6
|
+
z-index: 1;
|
|
7
|
+
padding-top: base(1);
|
|
8
|
+
padding-bottom: base(2);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&__header {
|
|
12
|
+
width: 100%;
|
|
13
|
+
margin-bottom: $baseline;
|
|
14
|
+
display: flex;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
margin-top: base(2.5);
|
|
17
|
+
margin-bottom: base(1);
|
|
18
|
+
|
|
19
|
+
@include mid-break {
|
|
20
|
+
margin-top: base(1.5);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__header-text {
|
|
25
|
+
margin: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__header-close {
|
|
29
|
+
border: 0;
|
|
30
|
+
background-color: transparent;
|
|
31
|
+
padding: 0;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
width: base(1);
|
|
35
|
+
height: base(1);
|
|
36
|
+
|
|
37
|
+
svg {
|
|
38
|
+
width: base(2.75);
|
|
39
|
+
height: base(2.75);
|
|
40
|
+
position: relative;
|
|
41
|
+
left: base(-.825);
|
|
42
|
+
top: base(-.825);
|
|
43
|
+
|
|
44
|
+
.stroke {
|
|
45
|
+
stroke-width: 2px;
|
|
46
|
+
vector-effect: non-scaling-stroke;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Field } from '../../../../../../../../fields/config/types';
|
|
2
2
|
import { Fields } from '../../../../../Form/types';
|
|
3
|
-
export type Props = {
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export declare type Props = {
|
|
4
|
+
drawerSlug: string;
|
|
5
|
+
handleClose: () => void;
|
|
6
6
|
handleModalSubmit: (fields: Fields, data: Record<string, unknown>) => void;
|
|
7
7
|
initialState?: Fields;
|
|
8
8
|
fieldSchema: Field[];
|
|
File without changes
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
declare const link: {
|
|
3
|
-
Button: ({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
Button: import("react").FC<{
|
|
4
|
+
path: string;
|
|
5
|
+
fieldProps: import("../../types").Props;
|
|
6
|
+
}>;
|
|
7
|
+
Element: import("react").FC<{
|
|
8
|
+
attributes: import("react").HTMLAttributes<HTMLDivElement>;
|
|
9
|
+
children: import("react").ReactNode;
|
|
9
10
|
element: any;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
11
|
+
fieldProps: import("../../types").Props;
|
|
12
|
+
editorRef: import("react").RefObject<HTMLDivElement>;
|
|
13
|
+
}>;
|
|
13
14
|
plugins: ((incomingEditor: import("slate").BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor) => import("slate").BaseEditor & import("slate-react").ReactEditor & import("slate-history").HistoryEditor)[];
|
|
14
15
|
};
|
|
15
16
|
export default link;
|
package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.js
CHANGED
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import React, { Fragment, useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import { Modal, useModal } from '@faceless-ui/modal';
|
|
3
2
|
import { ReactEditor, useSlate } from 'slate-react';
|
|
4
3
|
import { useTranslation } from 'react-i18next';
|
|
5
4
|
import { useConfig } from '../../../../../../utilities/Config';
|
|
6
5
|
import ElementButton from '../../Button';
|
|
7
6
|
import RelationshipIcon from '../../../../../../icons/Relationship';
|
|
8
|
-
import Form from '../../../../../Form';
|
|
9
|
-
import MinimalTemplate from '../../../../../../templates/Minimal';
|
|
10
|
-
import Button from '../../../../../../elements/Button';
|
|
11
|
-
import Submit from '../../../../../Submit';
|
|
12
|
-
import X from '../../../../../../icons/X';
|
|
13
|
-
import Fields from './Fields';
|
|
14
|
-
import { requests } from '../../../../../../../api';
|
|
15
7
|
import { injectVoidElement } from '../../injectVoid';
|
|
8
|
+
import { useListDrawer } from '../../../../../../elements/ListDrawer';
|
|
16
9
|
import './index.scss';
|
|
17
|
-
const initialFormData = {};
|
|
18
10
|
const baseClass = 'relationship-rich-text-button';
|
|
19
11
|
const insertRelationship = (editor, { value, relationTo }) => {
|
|
20
12
|
const text = { text: ' ' };
|
|
@@ -29,49 +21,38 @@ const insertRelationship = (editor, { value, relationTo }) => {
|
|
|
29
21
|
injectVoidElement(editor, relationship);
|
|
30
22
|
ReactEditor.focus(editor);
|
|
31
23
|
};
|
|
32
|
-
const RelationshipButton = (
|
|
33
|
-
const {
|
|
24
|
+
const RelationshipButton = () => {
|
|
25
|
+
const { collections } = useConfig();
|
|
26
|
+
const { t } = useTranslation('fields');
|
|
34
27
|
const editor = useSlate();
|
|
35
|
-
const {
|
|
36
|
-
const [
|
|
37
|
-
const [
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
'Accept-Language': i18n.language,
|
|
28
|
+
const [enabledCollectionSlugs] = useState(() => collections.filter(({ admin: { enableRichTextRelationship } }) => enableRichTextRelationship).map(({ slug }) => slug));
|
|
29
|
+
const [selectedCollectionSlug, setSelectedCollectionSlug] = useState(() => enabledCollectionSlugs[0]);
|
|
30
|
+
const [ListDrawer, ListDrawerToggler, { closeDrawer, isDrawerOpen, },] = useListDrawer({
|
|
31
|
+
collectionSlugs: enabledCollectionSlugs,
|
|
32
|
+
selectedCollection: selectedCollectionSlug,
|
|
33
|
+
});
|
|
34
|
+
const onSelect = useCallback(({ docID, collectionConfig }) => {
|
|
35
|
+
insertRelationship(editor, {
|
|
36
|
+
value: {
|
|
37
|
+
id: docID,
|
|
46
38
|
},
|
|
39
|
+
relationTo: collectionConfig.slug,
|
|
47
40
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
toggleModal(modalSlug);
|
|
51
|
-
setRenderModal(false);
|
|
52
|
-
setLoading(false);
|
|
53
|
-
}, [i18n.language, editor, toggleModal, modalSlug, api, serverURL]);
|
|
41
|
+
closeDrawer();
|
|
42
|
+
}, [editor, closeDrawer]);
|
|
54
43
|
useEffect(() => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}, [
|
|
59
|
-
if (!
|
|
44
|
+
// always reset back to first option
|
|
45
|
+
// TODO: this is not working, see the ListDrawer component
|
|
46
|
+
setSelectedCollectionSlug(enabledCollectionSlugs[0]);
|
|
47
|
+
}, [isDrawerOpen, enabledCollectionSlugs]);
|
|
48
|
+
if (!enabledCollectionSlugs || enabledCollectionSlugs.length === 0)
|
|
60
49
|
return null;
|
|
61
50
|
return (React.createElement(Fragment, null,
|
|
62
|
-
React.createElement(
|
|
63
|
-
React.createElement(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
React.createElement(
|
|
67
|
-
|
|
68
|
-
React.createElement(Button, { buttonStyle: "none", onClick: () => {
|
|
69
|
-
toggleModal(modalSlug);
|
|
70
|
-
setRenderModal(false);
|
|
71
|
-
} },
|
|
72
|
-
React.createElement(X, null))),
|
|
73
|
-
React.createElement(Form, { onSubmit: handleAddRelationship, initialData: initialFormData, disabled: loading },
|
|
74
|
-
React.createElement(Fields, null),
|
|
75
|
-
React.createElement(Submit, null, t('addRelationship'))))))));
|
|
51
|
+
React.createElement(ListDrawerToggler, null,
|
|
52
|
+
React.createElement(ElementButton, { className: baseClass, format: "relationship", tooltip: t('addRelationship'), el: "div", onClick: () => {
|
|
53
|
+
// do nothing
|
|
54
|
+
} },
|
|
55
|
+
React.createElement(RelationshipIcon, null))),
|
|
56
|
+
React.createElement(ListDrawer, { onSelect: onSelect })));
|
|
76
57
|
};
|
|
77
58
|
export default RelationshipButton;
|
package/dist/admin/components/forms/field-types/RichText/elements/relationship/Button/index.scss
CHANGED
|
@@ -1,35 +1,7 @@
|
|
|
1
1
|
@import '../../../../../../../scss/styles.scss';
|
|
2
2
|
|
|
3
3
|
.relationship-rich-text-button {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
&__modal {
|
|
9
|
-
@include blur-bg;
|
|
10
|
-
display: flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
height: 100%;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
&__modal-template {
|
|
16
|
-
position: relative;
|
|
17
|
-
z-index: 1;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&__header {
|
|
21
|
-
width: 100%;
|
|
22
|
-
margin-bottom: $baseline;
|
|
23
|
-
display: flex;
|
|
24
|
-
justify-content: space-between;
|
|
25
|
-
|
|
26
|
-
h3 {
|
|
27
|
-
margin: 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
svg {
|
|
31
|
-
width: base(1.5);
|
|
32
|
-
height: base(1.5);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
height: 100%;
|
|
35
7
|
}
|
package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import React, { HTMLAttributes } from 'react';
|
|
2
|
+
import { Props as RichTextProps } from '../../../types';
|
|
2
3
|
import './index.scss';
|
|
3
|
-
declare const Element:
|
|
4
|
+
declare const Element: React.FC<{
|
|
5
|
+
attributes: HTMLAttributes<HTMLDivElement>;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
element: any;
|
|
8
|
+
fieldProps: RichTextProps;
|
|
9
|
+
}>;
|
|
4
10
|
export default Element;
|
package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { useFocused, useSelected } from 'slate-react';
|
|
1
|
+
import React, { useCallback, useReducer, useState } from 'react';
|
|
2
|
+
import { ReactEditor, useFocused, useSelected, useSlateStatic } from 'slate-react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { Transforms } from 'slate';
|
|
4
5
|
import { useConfig } from '../../../../../../utilities/Config';
|
|
5
|
-
import RelationshipIcon from '../../../../../../icons/Relationship';
|
|
6
6
|
import usePayloadAPI from '../../../../../../../hooks/usePayloadAPI';
|
|
7
|
+
import { useDocumentDrawer } from '../../../../../../elements/DocumentDrawer';
|
|
8
|
+
import Button from '../../../../../../elements/Button';
|
|
9
|
+
import { useListDrawer } from '../../../../../../elements/ListDrawer';
|
|
7
10
|
import { getTranslation } from '../../../../../../../../utilities/getTranslation';
|
|
8
11
|
import './index.scss';
|
|
9
12
|
const baseClass = 'rich-text-relationship';
|
|
@@ -11,23 +14,87 @@ const initialParams = {
|
|
|
11
14
|
depth: 0,
|
|
12
15
|
};
|
|
13
16
|
const Element = (props) => {
|
|
14
|
-
var _a;
|
|
15
|
-
const { attributes, children, element } = props;
|
|
17
|
+
var _a, _b, _c, _d, _e, _f;
|
|
18
|
+
const { attributes, children, element, fieldProps, } = props;
|
|
16
19
|
const { relationTo, value } = element;
|
|
17
20
|
const { collections, serverURL, routes: { api } } = useConfig();
|
|
18
|
-
const [
|
|
21
|
+
const [enabledCollectionSlugs] = useState(() => collections.filter(({ admin: { enableRichTextRelationship } }) => enableRichTextRelationship).map(({ slug }) => slug));
|
|
22
|
+
const [relatedCollection, setRelatedCollection] = useState(() => collections.find((coll) => coll.slug === relationTo));
|
|
19
23
|
const selected = useSelected();
|
|
20
24
|
const focused = useFocused();
|
|
21
|
-
const { t, i18n } = useTranslation('fields');
|
|
22
|
-
const
|
|
25
|
+
const { t, i18n } = useTranslation(['fields', 'general']);
|
|
26
|
+
const editor = useSlateStatic();
|
|
27
|
+
const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0);
|
|
28
|
+
const [{ data }, { setParams }] = usePayloadAPI(`${serverURL}${api}/${relatedCollection.slug}/${value === null || value === void 0 ? void 0 : value.id}`, { initialParams });
|
|
29
|
+
const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer, },] = useDocumentDrawer({
|
|
30
|
+
collectionSlug: relatedCollection.slug,
|
|
31
|
+
id: value === null || value === void 0 ? void 0 : value.id,
|
|
32
|
+
});
|
|
33
|
+
const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer, },] = useListDrawer({
|
|
34
|
+
collectionSlugs: enabledCollectionSlugs,
|
|
35
|
+
selectedCollection: relatedCollection.slug,
|
|
36
|
+
});
|
|
37
|
+
const removeRelationship = useCallback(() => {
|
|
38
|
+
const elementPath = ReactEditor.findPath(editor, element);
|
|
39
|
+
Transforms.removeNodes(editor, { at: elementPath });
|
|
40
|
+
}, [editor, element]);
|
|
41
|
+
const updateRelationship = React.useCallback(({ doc }) => {
|
|
42
|
+
const elementPath = ReactEditor.findPath(editor, element);
|
|
43
|
+
Transforms.setNodes(editor, {
|
|
44
|
+
type: 'relationship',
|
|
45
|
+
value: { id: doc.id },
|
|
46
|
+
relationTo: relatedCollection.slug,
|
|
47
|
+
children: [
|
|
48
|
+
{ text: ' ' },
|
|
49
|
+
],
|
|
50
|
+
}, { at: elementPath });
|
|
51
|
+
setParams({
|
|
52
|
+
...initialParams,
|
|
53
|
+
cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed
|
|
54
|
+
});
|
|
55
|
+
closeDrawer();
|
|
56
|
+
dispatchCacheBust();
|
|
57
|
+
}, [editor, element, relatedCollection, cacheBust, setParams, closeDrawer]);
|
|
58
|
+
const swapRelationship = React.useCallback(({ docID, collectionConfig }) => {
|
|
59
|
+
const elementPath = ReactEditor.findPath(editor, element);
|
|
60
|
+
Transforms.setNodes(editor, {
|
|
61
|
+
type: 'relationship',
|
|
62
|
+
value: { id: docID },
|
|
63
|
+
relationTo: collectionConfig.slug,
|
|
64
|
+
children: [
|
|
65
|
+
{ text: ' ' },
|
|
66
|
+
],
|
|
67
|
+
}, { at: elementPath });
|
|
68
|
+
setRelatedCollection(collections.find((coll) => coll.slug === collectionConfig.slug));
|
|
69
|
+
setParams({
|
|
70
|
+
...initialParams,
|
|
71
|
+
cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed
|
|
72
|
+
});
|
|
73
|
+
closeListDrawer();
|
|
74
|
+
dispatchCacheBust();
|
|
75
|
+
}, [closeListDrawer, editor, element, cacheBust, setParams, collections]);
|
|
23
76
|
return (React.createElement("div", { className: [
|
|
24
77
|
baseClass,
|
|
25
78
|
(selected && focused) && `${baseClass}--selected`,
|
|
26
79
|
].filter(Boolean).join(' '), contentEditable: false, ...attributes },
|
|
27
|
-
React.createElement(RelationshipIcon, null),
|
|
28
80
|
React.createElement("div", { className: `${baseClass}__wrap` },
|
|
29
|
-
React.createElement("
|
|
30
|
-
React.createElement("
|
|
81
|
+
React.createElement("p", { className: `${baseClass}__label` }, t('labelRelationship', { label: getTranslation(relatedCollection.labels.singular, i18n) })),
|
|
82
|
+
React.createElement("p", { className: `${baseClass}__title` }, data[((_a = relatedCollection === null || relatedCollection === void 0 ? void 0 : relatedCollection.admin) === null || _a === void 0 ? void 0 : _a.useAsTitle) || 'id'])),
|
|
83
|
+
React.createElement("div", { className: `${baseClass}__actions` },
|
|
84
|
+
(value === null || value === void 0 ? void 0 : value.id) && (React.createElement(DocumentDrawerToggler, { className: `${baseClass}__toggler`, disabled: (_b = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.admin) === null || _b === void 0 ? void 0 : _b.readOnly },
|
|
85
|
+
React.createElement(Button, { icon: "edit", round: true, buttonStyle: "icon-label", el: "div", className: `${baseClass}__actionButton`, onClick: (e) => {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
}, tooltip: t('general:editLabel', { label: getTranslation(relatedCollection.labels.singular, i18n) }), disabled: (_c = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.admin) === null || _c === void 0 ? void 0 : _c.readOnly }))),
|
|
88
|
+
React.createElement(ListDrawerToggler, { disabled: (_d = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.admin) === null || _d === void 0 ? void 0 : _d.readOnly },
|
|
89
|
+
React.createElement(Button, { icon: "swap", round: true, buttonStyle: "icon-label", className: `${baseClass}__actionButton`, onClick: () => {
|
|
90
|
+
// do nothing
|
|
91
|
+
}, el: "div", tooltip: t('swapRelationship'), disabled: (_e = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.admin) === null || _e === void 0 ? void 0 : _e.readOnly })),
|
|
92
|
+
React.createElement(Button, { icon: "x", round: true, buttonStyle: "icon-label", className: `${baseClass}__actionButton`, onClick: (e) => {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
removeRelationship();
|
|
95
|
+
}, tooltip: t('fields:removeRelationship'), disabled: (_f = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.admin) === null || _f === void 0 ? void 0 : _f.readOnly })),
|
|
96
|
+
(value === null || value === void 0 ? void 0 : value.id) && (React.createElement(DocumentDrawer, { onSave: updateRelationship })),
|
|
97
|
+
React.createElement(ListDrawer, { onSelect: swapRelationship }),
|
|
31
98
|
children));
|
|
32
99
|
};
|
|
33
100
|
export default Element;
|
package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.scss
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
.rich-text-relationship {
|
|
4
4
|
@extend %body;
|
|
5
5
|
@include shadow-sm;
|
|
6
|
-
padding: base(.
|
|
6
|
+
padding: base(.75);
|
|
7
7
|
display: flex;
|
|
8
|
-
align-items:
|
|
8
|
+
align-items: center;
|
|
9
9
|
background: var(--theme-input-bg);
|
|
10
10
|
border: 1px solid var(--theme-elevation-100);
|
|
11
11
|
max-width: base(15);
|
|
@@ -19,20 +19,77 @@
|
|
|
19
19
|
margin: base(.625) 0;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
height: base(1.25);
|
|
25
|
-
margin-right: base(.5);
|
|
22
|
+
&__label {
|
|
23
|
+
margin-bottom: base(0.25);
|
|
26
24
|
}
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
&__title {
|
|
27
|
+
margin: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&__label,
|
|
31
|
+
&__title {
|
|
29
32
|
white-space: nowrap;
|
|
30
33
|
text-overflow: ellipsis;
|
|
31
34
|
overflow: hidden;
|
|
35
|
+
line-height: 1 !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__title {
|
|
39
|
+
font-weight: bold;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&__wrap {
|
|
43
|
+
flex-grow: 1;
|
|
44
|
+
overflow: hidden;
|
|
32
45
|
}
|
|
33
46
|
|
|
34
47
|
&--selected {
|
|
35
48
|
box-shadow: $focus-box-shadow;
|
|
36
49
|
outline: none;
|
|
37
50
|
}
|
|
51
|
+
|
|
52
|
+
&__toggler {
|
|
53
|
+
background: transparent;
|
|
54
|
+
border: none;
|
|
55
|
+
padding: 0;
|
|
56
|
+
cursor: pointer;
|
|
57
|
+
|
|
58
|
+
&:focus,
|
|
59
|
+
&:focus-within {
|
|
60
|
+
outline: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&:disabled {
|
|
64
|
+
pointer-events: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&__actions {
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
flex-shrink: 0;
|
|
72
|
+
margin-left: base(0.5);
|
|
73
|
+
|
|
74
|
+
& > *:not(:last-child) {
|
|
75
|
+
margin-right: base(.25);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&__actionButton {
|
|
80
|
+
margin: 0;
|
|
81
|
+
border-radius: 0;
|
|
82
|
+
flex-shrink: 0;
|
|
83
|
+
width: base(1);
|
|
84
|
+
height: base(1);
|
|
85
|
+
|
|
86
|
+
line {
|
|
87
|
+
stroke-width: $style-stroke-width-m;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&:disabled {
|
|
91
|
+
opacity: 0.5;
|
|
92
|
+
pointer-events: none;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
38
95
|
}
|
|
@@ -3,7 +3,12 @@ declare const _default: {
|
|
|
3
3
|
Button: import("react").FC<{
|
|
4
4
|
path: string;
|
|
5
5
|
}>;
|
|
6
|
-
Element: (
|
|
6
|
+
Element: import("react").FC<{
|
|
7
|
+
attributes: import("react").HTMLAttributes<HTMLDivElement>;
|
|
8
|
+
children: import("react").ReactNode;
|
|
9
|
+
element: any;
|
|
10
|
+
fieldProps: import("../../types").Props;
|
|
11
|
+
}>;
|
|
7
12
|
plugins: ((incomingEditor: any) => any)[];
|
|
8
13
|
};
|
|
9
14
|
export default _default;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Editor, Transforms } from 'slate';
|
|
2
2
|
import { ReactEditor } from 'slate-react';
|
|
3
3
|
import isElementActive from './isActive';
|
|
4
|
-
import
|
|
4
|
+
import { isWithinListItem } from './isWithinListItem';
|
|
5
5
|
const toggleElement = (editor, format) => {
|
|
6
6
|
const isActive = isElementActive(editor, format);
|
|
7
|
-
const isList = listTypes.includes(format);
|
|
8
7
|
let type = format;
|
|
8
|
+
const isWithinLI = isWithinListItem(editor);
|
|
9
9
|
if (isActive) {
|
|
10
10
|
type = undefined;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
if (!isActive && isWithinLI) {
|
|
13
|
+
const block = { type: 'li', children: [] };
|
|
14
|
+
Transforms.wrapNodes(editor, block, {
|
|
15
|
+
at: Editor.unhangRange(editor, editor.selection),
|
|
16
|
+
});
|
|
14
17
|
}
|
|
15
|
-
Transforms.
|
|
16
|
-
|
|
17
|
-
split: true,
|
|
18
|
-
mode: 'lowest',
|
|
18
|
+
Transforms.setNodes(editor, { type }, {
|
|
19
|
+
at: Editor.unhangRange(editor, editor.selection),
|
|
19
20
|
});
|
|
20
|
-
Transforms.setNodes(editor, { type });
|
|
21
|
-
if (!isActive && isList) {
|
|
22
|
-
const block = { type: format, children: [] };
|
|
23
|
-
Transforms.wrapNodes(editor, block);
|
|
24
|
-
}
|
|
25
21
|
ReactEditor.focus(editor);
|
|
26
22
|
};
|
|
27
23
|
export default toggleElement;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Editor, Element, Node, Text, Transforms } from 'slate';
|
|
2
|
+
import { ReactEditor } from 'slate-react';
|
|
3
|
+
import { getCommonBlock } from './getCommonBlock';
|
|
4
|
+
import isListActive from './isListActive';
|
|
5
|
+
import listTypes from './listTypes';
|
|
6
|
+
import { unwrapList } from './unwrapList';
|
|
7
|
+
const toggleList = (editor, format) => {
|
|
8
|
+
let currentListFormat;
|
|
9
|
+
if (isListActive(editor, 'ol'))
|
|
10
|
+
currentListFormat = 'ol';
|
|
11
|
+
if (isListActive(editor, 'ul'))
|
|
12
|
+
currentListFormat = 'ul';
|
|
13
|
+
// If the format is currently active,
|
|
14
|
+
// remove the list
|
|
15
|
+
if (currentListFormat === format) {
|
|
16
|
+
const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
|
|
17
|
+
// If on an empty bullet, leave the above list alone
|
|
18
|
+
// and unwrap only the active bullet
|
|
19
|
+
if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {
|
|
20
|
+
Transforms.unwrapNodes(editor, {
|
|
21
|
+
match: (n) => Element.isElement(n) && listTypes.includes(n.type),
|
|
22
|
+
split: true,
|
|
23
|
+
mode: 'lowest',
|
|
24
|
+
});
|
|
25
|
+
Transforms.setNodes(editor, { type: undefined });
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Otherwise, we need to unset li on all lis in the parent list
|
|
29
|
+
// and unwrap the parent list itself
|
|
30
|
+
const [, listPath] = getCommonBlock(editor, (n) => Element.isElement(n) && n.type === format);
|
|
31
|
+
unwrapList(editor, listPath);
|
|
32
|
+
}
|
|
33
|
+
// Otherwise, if a list is active and we are changing it,
|
|
34
|
+
// change it
|
|
35
|
+
}
|
|
36
|
+
else if (currentListFormat && currentListFormat !== format) {
|
|
37
|
+
Transforms.setNodes(editor, {
|
|
38
|
+
type: format,
|
|
39
|
+
}, {
|
|
40
|
+
match: (node) => Element.isElement(node) && listTypes.includes(node.type),
|
|
41
|
+
mode: 'lowest',
|
|
42
|
+
});
|
|
43
|
+
// Otherwise we can assume that we should just activate the list
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
Transforms.wrapNodes(editor, { type: format, children: [] });
|
|
47
|
+
const [, parentNodePath] = getCommonBlock(editor, (node) => Element.isElement(node) && node.type === format);
|
|
48
|
+
// Only set li on nodes that don't have type
|
|
49
|
+
Transforms.setNodes(editor, { type: 'li' }, {
|
|
50
|
+
voids: true,
|
|
51
|
+
match: (node, path) => {
|
|
52
|
+
const match = Element.isElement(node)
|
|
53
|
+
&& typeof node.type === 'undefined'
|
|
54
|
+
&& path.length === parentNodePath.length + 1;
|
|
55
|
+
return match;
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
// Wrap nodes that do have a type with an li
|
|
59
|
+
// so as to not lose their existing formatting
|
|
60
|
+
const nodesToWrap = Array.from(Editor.nodes(editor, {
|
|
61
|
+
match: (node, path) => {
|
|
62
|
+
const match = Element.isElement(node)
|
|
63
|
+
&& typeof node.type !== 'undefined'
|
|
64
|
+
&& node.type !== 'li'
|
|
65
|
+
&& path.length === parentNodePath.length + 1;
|
|
66
|
+
return match;
|
|
67
|
+
},
|
|
68
|
+
}));
|
|
69
|
+
nodesToWrap.forEach(([, path]) => {
|
|
70
|
+
Transforms.wrapNodes(editor, { type: 'li', children: [] }, { at: path });
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
ReactEditor.focus(editor);
|
|
74
|
+
};
|
|
75
|
+
export default toggleList;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export type ButtonProps = {
|
|
1
|
+
import { ElementType } from 'react';
|
|
2
|
+
export declare type ButtonProps = {
|
|
3
3
|
format: string;
|
|
4
4
|
onClick?: (e: React.MouseEvent) => void;
|
|
5
5
|
className?: string;
|
|
6
6
|
children?: React.ReactNode;
|
|
7
|
+
tooltip?: string;
|
|
8
|
+
el?: ElementType;
|
|
7
9
|
};
|