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
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { useModal } from '@faceless-ui/modal';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { toast } from 'react-toastify';
|
|
5
|
+
import DefaultEdit from '../../views/collections/Edit/Default';
|
|
6
|
+
import X from '../../icons/X';
|
|
7
|
+
import buildStateFromSchema from '../../forms/Form/buildStateFromSchema';
|
|
8
|
+
import { getTranslation } from '../../../../utilities/getTranslation';
|
|
9
|
+
import Button from '../Button';
|
|
10
|
+
import { useConfig } from '../../utilities/Config';
|
|
11
|
+
import { useLocale } from '../../utilities/Locale';
|
|
12
|
+
import { useAuth } from '../../utilities/Auth';
|
|
13
|
+
import { DocumentInfoProvider } from '../../utilities/DocumentInfo';
|
|
14
|
+
import RenderCustomComponent from '../../utilities/RenderCustomComponent';
|
|
15
|
+
import usePayloadAPI from '../../../hooks/usePayloadAPI';
|
|
16
|
+
import formatFields from '../../views/collections/Edit/formatFields';
|
|
17
|
+
import { useRelatedCollections } from '../../forms/field-types/Relationship/AddNew/useRelatedCollections';
|
|
18
|
+
import IDLabel from '../IDLabel';
|
|
19
|
+
import { baseClass } from '.';
|
|
20
|
+
export const DocumentDrawerContent = ({ collectionSlug, id, drawerSlug, onSave: onSaveFromProps, customHeader, }) => {
|
|
21
|
+
var _a, _b, _c;
|
|
22
|
+
const { serverURL, routes: { api } } = useConfig();
|
|
23
|
+
const { toggleModal, modalState, closeModal } = useModal();
|
|
24
|
+
const locale = useLocale();
|
|
25
|
+
const { permissions, user } = useAuth();
|
|
26
|
+
const [initialState, setInitialState] = useState();
|
|
27
|
+
const { t, i18n } = useTranslation(['fields', 'general']);
|
|
28
|
+
const hasInitializedState = useRef(false);
|
|
29
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
30
|
+
const [collectionConfig] = useRelatedCollections(collectionSlug);
|
|
31
|
+
const [fields, setFields] = useState(() => formatFields(collectionConfig, true));
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setFields(formatFields(collectionConfig, true));
|
|
34
|
+
}, [collectionSlug, collectionConfig]);
|
|
35
|
+
const [{ data, isLoading: isLoadingDocument, isError }] = usePayloadAPI((id ? `${serverURL}${api}/${collectionSlug}/${id}` : null), { initialParams: { 'fallback-locale': 'null', depth: 0, draft: 'true' } });
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (isLoadingDocument) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const awaitInitialState = async () => {
|
|
41
|
+
const state = await buildStateFromSchema({
|
|
42
|
+
fieldSchema: fields,
|
|
43
|
+
data,
|
|
44
|
+
user,
|
|
45
|
+
operation: id ? 'update' : 'create',
|
|
46
|
+
id,
|
|
47
|
+
locale,
|
|
48
|
+
t,
|
|
49
|
+
});
|
|
50
|
+
setInitialState(state);
|
|
51
|
+
};
|
|
52
|
+
awaitInitialState();
|
|
53
|
+
hasInitializedState.current = true;
|
|
54
|
+
}, [data, fields, id, user, locale, isLoadingDocument, t]);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
var _a;
|
|
57
|
+
setIsOpen(Boolean((_a = modalState[drawerSlug]) === null || _a === void 0 ? void 0 : _a.isOpen));
|
|
58
|
+
}, [modalState, drawerSlug]);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
var _a;
|
|
61
|
+
if (isOpen && !isLoadingDocument && isError) {
|
|
62
|
+
closeModal(drawerSlug);
|
|
63
|
+
toast.error(((_a = data.errors) === null || _a === void 0 ? void 0 : _a[0].message) || t('error:unspecific'));
|
|
64
|
+
}
|
|
65
|
+
}, [isError, t, isOpen, data, drawerSlug, closeModal, isLoadingDocument]);
|
|
66
|
+
const onSave = useCallback((args) => {
|
|
67
|
+
if (typeof onSaveFromProps === 'function') {
|
|
68
|
+
onSaveFromProps({
|
|
69
|
+
...args,
|
|
70
|
+
collectionConfig,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}, [collectionConfig, onSaveFromProps]);
|
|
74
|
+
if (isError)
|
|
75
|
+
return null;
|
|
76
|
+
return (React.createElement(DocumentInfoProvider, { collection: collectionConfig },
|
|
77
|
+
React.createElement(RenderCustomComponent, { DefaultComponent: DefaultEdit, CustomComponent: (_c = (_b = (_a = collectionConfig.admin) === null || _a === void 0 ? void 0 : _a.components) === null || _b === void 0 ? void 0 : _b.views) === null || _c === void 0 ? void 0 : _c.Edit, componentProps: {
|
|
78
|
+
isLoading: !initialState,
|
|
79
|
+
data,
|
|
80
|
+
id,
|
|
81
|
+
collection: collectionConfig,
|
|
82
|
+
permissions: permissions.collections[collectionConfig.slug],
|
|
83
|
+
isEditing: Boolean(id),
|
|
84
|
+
apiURL: id ? `${serverURL}${api}/${collectionSlug}/${id}` : null,
|
|
85
|
+
onSave,
|
|
86
|
+
initialState,
|
|
87
|
+
hasSavePermission: true,
|
|
88
|
+
action: `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}?locale=${locale}&depth=0&fallback-locale=null`,
|
|
89
|
+
disableEyebrow: true,
|
|
90
|
+
disableActions: true,
|
|
91
|
+
me: true,
|
|
92
|
+
disableLeaveWithoutSaving: true,
|
|
93
|
+
customHeader: (React.createElement("div", { className: `${baseClass}__header` },
|
|
94
|
+
React.createElement("div", { className: `${baseClass}__header-content` },
|
|
95
|
+
React.createElement("h2", { className: `${baseClass}__header-text` }, !customHeader ? t(!id ? 'fields:addNewLabel' : 'general:editLabel', { label: getTranslation(collectionConfig.labels.singular, i18n) }) : customHeader),
|
|
96
|
+
React.createElement(Button, { buttonStyle: "none", className: `${baseClass}__header-close`, onClick: () => toggleModal(drawerSlug), "aria-label": t('general:close') },
|
|
97
|
+
React.createElement(X, null))),
|
|
98
|
+
id && (React.createElement(IDLabel, { id: id })))),
|
|
99
|
+
} })));
|
|
100
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DocumentDrawerProps, DocumentTogglerProps, UseDocumentDrawer } from './types';
|
|
3
3
|
import './index.scss';
|
|
4
|
+
export declare const baseClass = "doc-drawer";
|
|
4
5
|
export declare const DocumentDrawerToggler: React.FC<DocumentTogglerProps>;
|
|
5
6
|
export declare const DocumentDrawer: React.FC<DocumentDrawerProps>;
|
|
6
7
|
export declare const useDocumentDrawer: UseDocumentDrawer;
|
|
@@ -1,114 +1,31 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useId, useMemo,
|
|
1
|
+
import React, { useCallback, useEffect, useId, useMemo, useState } from 'react';
|
|
2
2
|
import { useModal } from '@faceless-ui/modal';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import { toast } from 'react-toastify';
|
|
5
|
-
import DefaultEdit from '../../views/collections/Edit/Default';
|
|
6
|
-
import X from '../../icons/X';
|
|
7
|
-
import buildStateFromSchema from '../../forms/Form/buildStateFromSchema';
|
|
8
4
|
import { getTranslation } from '../../../../utilities/getTranslation';
|
|
9
5
|
import { Drawer, DrawerToggler } from '../Drawer';
|
|
10
|
-
import Button from '../Button';
|
|
11
|
-
import { useConfig } from '../../utilities/Config';
|
|
12
|
-
import { useLocale } from '../../utilities/Locale';
|
|
13
|
-
import { useAuth } from '../../utilities/Auth';
|
|
14
|
-
import { DocumentInfoProvider } from '../../utilities/DocumentInfo';
|
|
15
|
-
import RenderCustomComponent from '../../utilities/RenderCustomComponent';
|
|
16
|
-
import usePayloadAPI from '../../../hooks/usePayloadAPI';
|
|
17
|
-
import formatFields from '../../views/collections/Edit/formatFields';
|
|
18
6
|
import { useRelatedCollections } from '../../forms/field-types/Relationship/AddNew/useRelatedCollections';
|
|
19
|
-
import IDLabel from '../IDLabel';
|
|
20
7
|
import { useEditDepth } from '../../utilities/EditDepth';
|
|
8
|
+
import { DocumentDrawerContent } from './DrawerContent';
|
|
21
9
|
import './index.scss';
|
|
22
|
-
const baseClass = 'doc-drawer';
|
|
10
|
+
export const baseClass = 'doc-drawer';
|
|
23
11
|
const formatDocumentDrawerSlug = ({ collectionSlug, id, depth, uuid, }) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`;
|
|
24
|
-
export const DocumentDrawerToggler = ({ children, className, drawerSlug, id, collectionSlug, ...rest }) => {
|
|
12
|
+
export const DocumentDrawerToggler = ({ children, className, drawerSlug, id, collectionSlug, disabled, ...rest }) => {
|
|
25
13
|
const { t, i18n } = useTranslation(['fields', 'general']);
|
|
26
14
|
const [collectionConfig] = useRelatedCollections(collectionSlug);
|
|
27
|
-
return (React.createElement(DrawerToggler, { slug: drawerSlug, formatSlug: false, className:
|
|
15
|
+
return (React.createElement(DrawerToggler, { slug: drawerSlug, formatSlug: false, className: [
|
|
16
|
+
className,
|
|
17
|
+
`${baseClass}__toggler`,
|
|
18
|
+
].filter(Boolean).join(' '), disabled: disabled, "aria-label": t(!id ? 'fields:addNewLabel' : 'general:editLabel', { label: getTranslation(collectionConfig.labels.singular, i18n) }), ...rest }, children));
|
|
28
19
|
};
|
|
29
|
-
export const DocumentDrawer = (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const locale = useLocale();
|
|
34
|
-
const { permissions, user } = useAuth();
|
|
35
|
-
const [initialState, setInitialState] = useState();
|
|
36
|
-
const { t, i18n } = useTranslation(['fields', 'general']);
|
|
37
|
-
const hasInitializedState = useRef(false);
|
|
38
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
39
|
-
const [collectionConfig] = useRelatedCollections(collectionSlug);
|
|
40
|
-
const [fields, setFields] = useState(() => formatFields(collectionConfig, true));
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
setFields(formatFields(collectionConfig, true));
|
|
43
|
-
}, [collectionSlug, collectionConfig]);
|
|
44
|
-
const [{ data, isLoading: isLoadingDocument, isError }] = usePayloadAPI((id ? `${serverURL}${api}/${collectionSlug}/${id}` : null), { initialParams: { 'fallback-locale': 'null', depth: 0, draft: 'true' } });
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (isLoadingDocument || hasInitializedState.current === true) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const awaitInitialState = async () => {
|
|
50
|
-
const state = await buildStateFromSchema({
|
|
51
|
-
fieldSchema: fields,
|
|
52
|
-
data,
|
|
53
|
-
user,
|
|
54
|
-
operation: id ? 'update' : 'create',
|
|
55
|
-
id,
|
|
56
|
-
locale,
|
|
57
|
-
t,
|
|
58
|
-
});
|
|
59
|
-
setInitialState(state);
|
|
60
|
-
};
|
|
61
|
-
awaitInitialState();
|
|
62
|
-
hasInitializedState.current = true;
|
|
63
|
-
}, [data, fields, id, user, locale, isLoadingDocument, t]);
|
|
64
|
-
useEffect(() => {
|
|
65
|
-
var _a;
|
|
66
|
-
setIsOpen(Boolean((_a = modalState[drawerSlug]) === null || _a === void 0 ? void 0 : _a.isOpen));
|
|
67
|
-
}, [modalState, drawerSlug]);
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
var _a;
|
|
70
|
-
if (isOpen && !isLoadingDocument && isError) {
|
|
71
|
-
closeModal(drawerSlug);
|
|
72
|
-
toast.error(((_a = data.errors) === null || _a === void 0 ? void 0 : _a[0].message) || t('error:unspecific'));
|
|
73
|
-
}
|
|
74
|
-
}, [isError, t, isOpen, data, drawerSlug, closeModal, isLoadingDocument]);
|
|
75
|
-
if (isError)
|
|
76
|
-
return null;
|
|
77
|
-
if (isOpen) {
|
|
78
|
-
// IMPORTANT: we must ensure that modals are not recursively rendered
|
|
79
|
-
// to do this, do not render the drawer until it is open
|
|
80
|
-
return (React.createElement(Drawer, { slug: drawerSlug, formatSlug: false, className: baseClass },
|
|
81
|
-
React.createElement(DocumentInfoProvider, { collection: collectionConfig },
|
|
82
|
-
React.createElement(RenderCustomComponent, { DefaultComponent: DefaultEdit, CustomComponent: (_c = (_b = (_a = collectionConfig.admin) === null || _a === void 0 ? void 0 : _a.components) === null || _b === void 0 ? void 0 : _b.views) === null || _c === void 0 ? void 0 : _c.Edit, componentProps: {
|
|
83
|
-
isLoading: !initialState,
|
|
84
|
-
data,
|
|
85
|
-
id,
|
|
86
|
-
collection: collectionConfig,
|
|
87
|
-
permissions: permissions.collections[collectionConfig.slug],
|
|
88
|
-
isEditing: Boolean(id),
|
|
89
|
-
apiURL: id ? `${serverURL}${api}/${collectionSlug}/${id}` : null,
|
|
90
|
-
onSave,
|
|
91
|
-
initialState,
|
|
92
|
-
hasSavePermission: true,
|
|
93
|
-
action: `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}?locale=${locale}&depth=0&fallback-locale=null`,
|
|
94
|
-
disableEyebrow: true,
|
|
95
|
-
disableActions: true,
|
|
96
|
-
me: true,
|
|
97
|
-
disableLeaveWithoutSaving: true,
|
|
98
|
-
customHeader: (React.createElement("div", { className: `${baseClass}__header` },
|
|
99
|
-
React.createElement("div", { className: `${baseClass}__header-content` },
|
|
100
|
-
React.createElement("h2", null, !customHeader ? t(!id ? 'fields:addNewLabel' : 'general:editLabel', { label: getTranslation(collectionConfig.labels.singular, i18n) }) : customHeader),
|
|
101
|
-
React.createElement(Button, { buttonStyle: "none", className: `${baseClass}__header-close`, onClick: () => toggleModal(drawerSlug), "aria-label": t('general:close') },
|
|
102
|
-
React.createElement(X, null))),
|
|
103
|
-
id && (React.createElement(IDLabel, { id: id })))),
|
|
104
|
-
} }))));
|
|
105
|
-
}
|
|
106
|
-
return null;
|
|
20
|
+
export const DocumentDrawer = (props) => {
|
|
21
|
+
const { drawerSlug } = props;
|
|
22
|
+
return (React.createElement(Drawer, { slug: drawerSlug, formatSlug: false, className: baseClass },
|
|
23
|
+
React.createElement(DocumentDrawerContent, { ...props })));
|
|
107
24
|
};
|
|
108
25
|
export const useDocumentDrawer = ({ id, collectionSlug }) => {
|
|
109
26
|
const drawerDepth = useEditDepth();
|
|
110
27
|
const uuid = useId();
|
|
111
|
-
const { modalState, toggleModal } = useModal();
|
|
28
|
+
const { modalState, toggleModal, closeModal, openModal } = useModal();
|
|
112
29
|
const [isOpen, setIsOpen] = useState(false);
|
|
113
30
|
const drawerSlug = formatDocumentDrawerSlug({
|
|
114
31
|
collectionSlug,
|
|
@@ -123,6 +40,12 @@ export const useDocumentDrawer = ({ id, collectionSlug }) => {
|
|
|
123
40
|
const toggleDrawer = useCallback(() => {
|
|
124
41
|
toggleModal(drawerSlug);
|
|
125
42
|
}, [toggleModal, drawerSlug]);
|
|
43
|
+
const closeDrawer = useCallback(() => {
|
|
44
|
+
closeModal(drawerSlug);
|
|
45
|
+
}, [closeModal, drawerSlug]);
|
|
46
|
+
const openDrawer = useCallback(() => {
|
|
47
|
+
openModal(drawerSlug);
|
|
48
|
+
}, [openModal, drawerSlug]);
|
|
126
49
|
const MemoizedDrawer = useMemo(() => {
|
|
127
50
|
return ((props) => (React.createElement(DocumentDrawer, { ...props, collectionSlug: collectionSlug, id: id, drawerSlug: drawerSlug, key: drawerSlug })));
|
|
128
51
|
}, [id, drawerSlug, collectionSlug]);
|
|
@@ -134,7 +57,9 @@ export const useDocumentDrawer = ({ id, collectionSlug }) => {
|
|
|
134
57
|
drawerDepth,
|
|
135
58
|
isDrawerOpen: isOpen,
|
|
136
59
|
toggleDrawer,
|
|
137
|
-
|
|
60
|
+
closeDrawer,
|
|
61
|
+
openDrawer,
|
|
62
|
+
}), [drawerDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer]);
|
|
138
63
|
return [
|
|
139
64
|
MemoizedDrawer,
|
|
140
65
|
MemoizedDrawerToggler,
|
|
@@ -2,34 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
.doc-drawer {
|
|
4
4
|
&__header {
|
|
5
|
+
margin-top: base(2.5);
|
|
5
6
|
margin-bottom: base(1);
|
|
7
|
+
|
|
8
|
+
@include mid-break {
|
|
9
|
+
margin-top: base(1.5);
|
|
10
|
+
}
|
|
6
11
|
}
|
|
7
12
|
|
|
8
13
|
&__header-content {
|
|
9
14
|
display: flex;
|
|
10
15
|
justify-content: space-between;
|
|
11
16
|
align-items: flex-start;
|
|
12
|
-
margin-
|
|
17
|
+
margin-bottom: base(1);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&__header-text {
|
|
21
|
+
margin: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&__toggler {
|
|
25
|
+
background: transparent;
|
|
26
|
+
border: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
|
|
30
|
+
&:focus,
|
|
31
|
+
&:focus-within {
|
|
32
|
+
outline: none;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&:disabled {
|
|
36
|
+
pointer-events: none;
|
|
37
|
+
}
|
|
13
38
|
}
|
|
14
39
|
|
|
15
40
|
&__header-close {
|
|
41
|
+
border: 0;
|
|
42
|
+
background-color: transparent;
|
|
43
|
+
padding: 0;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
width: base(1);
|
|
47
|
+
height: base(1);
|
|
48
|
+
|
|
16
49
|
svg {
|
|
17
|
-
width: base(2.
|
|
18
|
-
height: base(2.
|
|
50
|
+
width: base(2.75);
|
|
51
|
+
height: base(2.75);
|
|
19
52
|
position: relative;
|
|
20
|
-
|
|
21
|
-
|
|
53
|
+
left: base(-.825);
|
|
54
|
+
top: base(-.825);
|
|
22
55
|
|
|
23
56
|
.stroke {
|
|
24
|
-
stroke-width:
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@include mid-break {
|
|
30
|
-
&__header-close {
|
|
31
|
-
svg {
|
|
32
|
-
top: base(-.75);
|
|
57
|
+
stroke-width: 2px;
|
|
58
|
+
vector-effect: non-scaling-stroke;
|
|
33
59
|
}
|
|
34
60
|
}
|
|
35
61
|
}
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import React, { HTMLAttributes } from 'react';
|
|
2
|
-
|
|
2
|
+
import { SanitizedCollectionConfig } from '../../../../collections/config/types';
|
|
3
|
+
export declare type DocumentDrawerProps = {
|
|
3
4
|
collectionSlug: string;
|
|
4
5
|
id?: string;
|
|
5
|
-
onSave?: (json:
|
|
6
|
+
onSave?: (json: {
|
|
7
|
+
doc: Record<string, any>;
|
|
8
|
+
message: string;
|
|
9
|
+
collectionConfig: SanitizedCollectionConfig;
|
|
10
|
+
}) => void;
|
|
6
11
|
customHeader?: React.ReactNode;
|
|
7
12
|
drawerSlug?: string;
|
|
8
13
|
};
|
|
9
|
-
export type DocumentTogglerProps = HTMLAttributes<HTMLButtonElement> & {
|
|
14
|
+
export declare type DocumentTogglerProps = HTMLAttributes<HTMLButtonElement> & {
|
|
10
15
|
children?: React.ReactNode;
|
|
11
16
|
className?: string;
|
|
12
17
|
drawerSlug?: string;
|
|
13
18
|
id?: string;
|
|
14
19
|
collectionSlug: string;
|
|
20
|
+
disabled?: boolean;
|
|
15
21
|
};
|
|
16
|
-
export type UseDocumentDrawer = (args: {
|
|
22
|
+
export declare type UseDocumentDrawer = (args: {
|
|
17
23
|
id?: string;
|
|
18
24
|
collectionSlug: string;
|
|
19
25
|
}) => [
|
|
@@ -24,5 +30,7 @@ export type UseDocumentDrawer = (args: {
|
|
|
24
30
|
drawerDepth: number;
|
|
25
31
|
isDrawerOpen: boolean;
|
|
26
32
|
toggleDrawer: () => void;
|
|
33
|
+
closeDrawer: () => void;
|
|
34
|
+
openDrawer: () => void;
|
|
27
35
|
}
|
|
28
36
|
];
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Props, TogglerProps } from './types';
|
|
3
3
|
import './index.scss';
|
|
4
|
+
export declare const formatDrawerSlug: ({ slug, depth, }: {
|
|
5
|
+
slug: string;
|
|
6
|
+
depth: number;
|
|
7
|
+
}) => string;
|
|
4
8
|
export declare const DrawerToggler: React.FC<TogglerProps>;
|
|
5
9
|
export declare const Drawer: React.FC<Props>;
|
|
@@ -6,8 +6,8 @@ import { EditDepthContext, useEditDepth } from '../../utilities/EditDepth';
|
|
|
6
6
|
import './index.scss';
|
|
7
7
|
const baseClass = 'drawer';
|
|
8
8
|
const zBase = 100;
|
|
9
|
-
const formatDrawerSlug = ({ slug, depth, }) => `drawer_${depth}_${slug}`;
|
|
10
|
-
export const DrawerToggler = ({ slug, formatSlug, children, className, onClick, ...rest }) => {
|
|
9
|
+
export const formatDrawerSlug = ({ slug, depth, }) => `drawer_${depth}_${slug}`;
|
|
10
|
+
export const DrawerToggler = ({ slug, formatSlug, children, className, onClick, disabled, ...rest }) => {
|
|
11
11
|
const { openModal } = useModal();
|
|
12
12
|
const drawerDepth = useEditDepth();
|
|
13
13
|
const handleClick = useCallback((e) => {
|
|
@@ -15,7 +15,7 @@ export const DrawerToggler = ({ slug, formatSlug, children, className, onClick,
|
|
|
15
15
|
if (typeof onClick === 'function')
|
|
16
16
|
onClick(e);
|
|
17
17
|
}, [openModal, drawerDepth, slug, onClick, formatSlug]);
|
|
18
|
-
return (React.createElement("button", { onClick: handleClick, type: "button", className: className, ...rest }, children));
|
|
18
|
+
return (React.createElement("button", { onClick: handleClick, type: "button", className: className, disabled: disabled, ...rest }, children));
|
|
19
19
|
};
|
|
20
20
|
export const Drawer = ({ slug, formatSlug, children, className, }) => {
|
|
21
21
|
const { t } = useTranslation('general');
|
|
@@ -23,22 +23,31 @@ export const Drawer = ({ slug, formatSlug, children, className, }) => {
|
|
|
23
23
|
const { breakpoints: { m: midBreak } } = useWindowInfo();
|
|
24
24
|
const drawerDepth = useEditDepth();
|
|
25
25
|
const [isOpen, setIsOpen] = useState(false);
|
|
26
|
+
const [animateIn, setAnimateIn] = useState(false);
|
|
26
27
|
const [modalSlug] = useState(() => (formatSlug !== false ? formatDrawerSlug({ slug, depth: drawerDepth }) : slug));
|
|
27
28
|
useEffect(() => {
|
|
28
|
-
|
|
29
|
+
var _a;
|
|
30
|
+
setIsOpen((_a = modalState[modalSlug]) === null || _a === void 0 ? void 0 : _a.isOpen);
|
|
29
31
|
}, [modalSlug, modalState]);
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
React.createElement("div", { className: `${baseClass}
|
|
43
|
-
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
setAnimateIn(isOpen);
|
|
34
|
+
}, [isOpen]);
|
|
35
|
+
if (isOpen) {
|
|
36
|
+
// IMPORTANT: do not render the drawer until it is explicitly open, this is to avoid large html trees especially when nesting drawers
|
|
37
|
+
return (React.createElement(Modal, { slug: modalSlug, className: [
|
|
38
|
+
className,
|
|
39
|
+
baseClass,
|
|
40
|
+
animateIn && `${baseClass}--is-open`,
|
|
41
|
+
].filter(Boolean).join(' '), style: {
|
|
42
|
+
zIndex: zBase + drawerDepth,
|
|
43
|
+
} },
|
|
44
|
+
drawerDepth === 1 && (React.createElement("div", { className: `${baseClass}__blur-bg` })),
|
|
45
|
+
React.createElement("button", { className: `${baseClass}__close`, id: `close-drawer__${modalSlug}`, type: "button", onClick: () => closeModal(modalSlug), style: {
|
|
46
|
+
width: `calc(${midBreak ? 'var(--gutter-h)' : 'var(--nav-width)'} + ${drawerDepth - 1} * 25px)`,
|
|
47
|
+
}, "aria-label": t('close') }),
|
|
48
|
+
React.createElement("div", { className: `${baseClass}__content` },
|
|
49
|
+
React.createElement("div", { className: `${baseClass}__content-children` },
|
|
50
|
+
React.createElement(EditDepthContext.Provider, { value: drawerDepth + 1 }, children)))));
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
44
53
|
};
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { HTMLAttributes } from 'react';
|
|
2
|
-
export type Props = {
|
|
2
|
+
export declare type Props = {
|
|
3
3
|
slug: string;
|
|
4
4
|
formatSlug?: boolean;
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
className?: string;
|
|
7
7
|
};
|
|
8
|
-
export type TogglerProps = HTMLAttributes<HTMLButtonElement> & {
|
|
8
|
+
export declare type TogglerProps = HTMLAttributes<HTMLButtonElement> & {
|
|
9
9
|
slug: string;
|
|
10
10
|
formatSlug?: boolean;
|
|
11
11
|
children: React.ReactNode;
|
|
12
12
|
className?: string;
|
|
13
|
+
disabled?: boolean;
|
|
13
14
|
};
|
|
@@ -39,6 +39,10 @@ const Duplicate = ({ slug, collection, id }) => {
|
|
|
39
39
|
},
|
|
40
40
|
});
|
|
41
41
|
let data = await response.json();
|
|
42
|
+
if ('createdAt' in data)
|
|
43
|
+
delete data.createdAt;
|
|
44
|
+
if ('updatedAt' in data)
|
|
45
|
+
delete data.updatedAt;
|
|
42
46
|
if (typeof ((_a = collection.admin.hooks) === null || _a === void 0 ? void 0 : _a.beforeDuplicate) === 'function') {
|
|
43
47
|
data = await collection.admin.hooks.beforeDuplicate({
|
|
44
48
|
data,
|
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
display: flex;
|
|
24
24
|
margin-left: - base(.5);
|
|
25
25
|
margin-right: - base(.5);
|
|
26
|
-
width: calc(100% + #{
|
|
26
|
+
width: calc(100% + #{base(1)});
|
|
27
|
+
|
|
28
|
+
.btn {
|
|
29
|
+
margin: 0 base(.5);
|
|
30
|
+
}
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
&__toggle-columns,
|
|
@@ -31,10 +35,6 @@
|
|
|
31
35
|
&__toggle-sort {
|
|
32
36
|
min-width: 140px;
|
|
33
37
|
|
|
34
|
-
&.btn {
|
|
35
|
-
margin: 0 base(.5);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
38
|
&.btn--style-primary {
|
|
39
39
|
svg {
|
|
40
40
|
transform: rotate(180deg);
|
|
@@ -52,6 +52,16 @@
|
|
|
52
52
|
&__buttons {
|
|
53
53
|
margin-left: base(.5);
|
|
54
54
|
}
|
|
55
|
+
|
|
56
|
+
&__buttons-wrap {
|
|
57
|
+
margin-left: - base(.25);
|
|
58
|
+
margin-right: - base(.25);
|
|
59
|
+
width: calc(100% + #{base(0.5)});
|
|
60
|
+
|
|
61
|
+
.btn {
|
|
62
|
+
margin: 0 base(.25);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
55
65
|
}
|
|
56
66
|
|
|
57
67
|
@include small-break {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Where } from '../../../../types';
|
|
2
2
|
import { SanitizedCollectionConfig } from '../../../../collections/config/types';
|
|
3
|
-
export type Props = {
|
|
3
|
+
export declare type Props = {
|
|
4
4
|
enableColumns?: boolean;
|
|
5
5
|
enableSort?: boolean;
|
|
6
6
|
modifySearchQuery?: boolean;
|
|
@@ -10,7 +10,7 @@ export type Props = {
|
|
|
10
10
|
setColumns?: (columns: string[]) => void;
|
|
11
11
|
collection: SanitizedCollectionConfig;
|
|
12
12
|
};
|
|
13
|
-
export type ListControls = {
|
|
13
|
+
export declare type ListControls = {
|
|
14
14
|
where?: unknown;
|
|
15
15
|
columns?: string[];
|
|
16
16
|
};
|