From a81401cf7714c6e39e783018555a7047520d20e0 Mon Sep 17 00:00:00 2001 From: Alessio Gravili <70709113+AlessioGr@users.noreply.github.com> Date: Tue, 19 Sep 2023 11:03:31 +0200 Subject: [PATCH] feat: breaking: richtext adapter (#3311) BREAKING: requires user to install @payloacms-richtext-slate and specify a `config.editor` property * chore: move slate stuff into packages/richtext-slate * chore: fieldTypes stuff * chore: fix richtext-slate tsconfig * chore: add clean:unix command * chore: fix up things * chore: undo subpath imports being hoisted up * chore: fix incorrect imports * chore: improve AdapterArguments type * chore: remove unused richTextToHTML and stringifyRichText files * fix: core-dev scss imports * chore: fix publishConfig exports for richtext-slate * chore: adjust joi schema for richtext field * chore: various fixes * chore: handle afterRead population in richText adapter * chore: handle more after-read promise stuff * chore: fix joi validation * chore: add richtext adapter to tests * chore: merge adapter props with field props * chore: index.tsx => index.ts * chore: rename `adapter` to `editor` * chore: fix e2e tests not running due to importing a constant from a file (`Tabs`) which imports createSlate. This fails because createSlate imports React components. * chore: remove unnecessary import * chore: improve various typings * chore: improve typings for List view Cell components * feat: richText adapter cell component * chore: add missing types packages for packages/richtext-slate * chore: add new adapter interface properties to joi schema * chore: withMergedProps utility which replaces getSlateCellComponent and getSlateFieldComponent * feat: added config.defaultEditor property which is now required. field.editor is no longer required and overrides config.defaultEditor * docs: mention editor and defaultEditor property in the docs * chore: fix incorrectly formatted JSX in docs files breaking mdx parser * chore: fix various errors * chore: auto-generated pointer files --- docs/configuration/overview.mdx | 1 + docs/fields/rich-text.mdx | 9 +- docs/production/deployment.mdx | 5 +- docs/queries/overview.mdx | 4 +- packages/payload/components.d.ts | 2 + packages/payload/components.js | 10 +- packages/payload/components/elements.d.ts | 4 + packages/payload/components/elements.js | 45 +- .../components/fields/Relationship.d.ts | 1 + .../payload/components/fields/Relationship.js | 14 +- .../payload/components/fields/RichText.d.ts | 2 +- .../payload/components/fields/Select.d.ts | 1 + packages/payload/components/fields/Select.js | 14 +- packages/payload/components/forms.d.ts | 4 + packages/payload/components/forms.js | 17 +- packages/payload/components/graphics.d.ts | 7 + packages/payload/components/graphics.js | 43 + packages/payload/components/hooks.d.ts | 11 + packages/payload/components/hooks.js | 104 +- packages/payload/components/index.js | 4 +- packages/payload/components/utilities.d.ts | 2 + packages/payload/components/utilities.js | 10 +- packages/payload/config.d.ts | 1 + packages/payload/config.js | 6 +- packages/payload/package.json | 15 +- .../components/elements/EditMany/index.tsx | 2 +- .../components/forms/Form/fieldReducer.ts | 2 +- .../forms/RenderFields/filterFields.tsx | 2 +- .../forms/field-types/RichText/index.tsx | 23 +- .../forms/field-types/RichText/types.ts | 29 +- .../components/forms/field-types/index.tsx | 4 +- .../utilities/WithMergedProps/index.tsx | 36 + .../components/views/Account/Default.tsx | 2 +- .../views/CreateFirstUser/index.tsx | 2 +- .../components/views/Global/Default/index.tsx | 2 +- .../fields/Text/richTextToHTML.ts | 112 - .../fields/Text/stringifyRichText.ts | 63 - .../views/collections/Edit/Default/index.tsx | 2 +- .../List/Cell/field-types/Array/index.tsx | 11 +- .../List/Cell/field-types/Blocks/index.tsx | 8 +- .../List/Cell/field-types/Checkbox/index.tsx | 5 +- .../List/Cell/field-types/Code/index.tsx | 5 +- .../List/Cell/field-types/Date/index.tsx | 5 +- .../List/Cell/field-types/File/index.tsx | 4 +- .../List/Cell/field-types/JSON/index.tsx | 5 +- .../Cell/field-types/Relationship/index.tsx | 8 +- .../List/Cell/field-types/Richtext/index.tsx | 17 +- .../List/Cell/field-types/Select/index.tsx | 8 +- .../List/Cell/field-types/Textarea/index.tsx | 5 +- .../views/collections/List/Cell/index.tsx | 26 +- .../views/collections/List/Cell/types.ts | 8 + packages/payload/src/config/defaults.ts | 2 +- packages/payload/src/config/schema.ts | 5 + packages/payload/src/config/types.ts | 6 +- .../queryValidation/validateQueryPaths.ts | 2 +- packages/payload/src/exports/components.ts | 3 + .../src/exports/components/elements.ts | 17 + .../exports/components/fields/Relationship.ts | 1 + .../src/exports/components/fields/RichText.ts | 2 +- .../src/exports/components/fields/Select.ts | 1 + .../payload/src/exports/components/forms.ts | 15 +- .../src/exports/components/graphics.ts | 6 + .../payload/src/exports/components/hooks.ts | 11 + .../src/exports/components/rich-text.ts | 3 - .../src/exports/components/utilities.ts | 2 + packages/payload/src/exports/config.ts | 3 +- packages/payload/src/exports/types.ts | 20 +- packages/payload/src/exports/utilities.ts | 4 + packages/payload/src/fields/config/schema.ts | 84 +- packages/payload/src/fields/config/types.ts | 70 +- .../src/fields/hooks/afterChange/index.ts | 2 +- .../src/fields/hooks/afterRead/index.ts | 2 +- .../src/fields/hooks/afterRead/promise.ts | 36 +- .../src/fields/hooks/beforeChange/index.ts | 2 +- .../src/fields/hooks/beforeValidate/index.ts | 2 +- .../richText/richTextRelationshipPromise.ts | 156 - packages/payload/src/fields/validations.ts | 13 - .../src/graphql/schema/buildObjectType.ts | 21 +- .../src/utilities/configToJSONSchema.ts | 2 +- .../payload/src/utilities/deepCopyObject.ts | 4 +- packages/payload/src/utilities/deepMerge.ts | 15 + packages/payload/types.d.ts | 7 +- packages/payload/types.js | 17 +- packages/payload/utilities.d.ts | 4 + packages/payload/utilities.js | 18 +- packages/richtext-slate/.eslintignore | 10 + packages/richtext-slate/.eslintrc.cjs | 15 + packages/richtext-slate/.prettierignore | 10 + packages/richtext-slate/.swcrc | 15 + packages/richtext-slate/package.json | 44 + packages/richtext-slate/src/cell/index.tsx | 16 + .../src/data}/defaultValue.ts | 2 +- .../src/data}/populate.ts | 10 +- .../src/data}/recurseNestedFields.ts | 7 +- .../src/data/richTextRelationshipPromise.ts | 148 + .../richtext-slate/src/data/validation.ts | 18 + .../src/field}/RichText.tsx | 34 +- .../src/field}/buttons.scss | 2 +- .../src/field}/elements/Button.tsx | 2 +- .../EnabledRelationshipsCondition.tsx | 7 +- .../src/field}/elements/ListButton.tsx | 0 .../field}/elements/areAllChildrenElements.ts | 0 .../src/field}/elements/blockquote/index.scss | 2 +- .../src/field}/elements/blockquote/index.tsx | 2 +- .../src/field}/elements/getCommonBlock.tsx | 2 +- .../src/field}/elements/h1/index.tsx | 2 +- .../src/field}/elements/h2/index.tsx | 2 +- .../src/field}/elements/h3/index.tsx | 2 +- .../src/field}/elements/h4/index.tsx | 2 +- .../src/field}/elements/h5/index.tsx | 2 +- .../src/field}/elements/h6/index.tsx | 2 +- .../src/field}/elements/indent/index.tsx | 6 +- .../src/field}/elements/index.tsx | 0 .../src/field}/elements/injectVoid.ts | 2 +- .../src/field}/elements/isActive.tsx | 0 .../src/field}/elements/isBlockElement.ts | 0 .../elements/isLastSelectedElementEmpty.ts | 2 +- .../src/field}/elements/isListActive.ts | 0 .../src/field}/elements/isWithinListItem.ts | 0 .../src/field}/elements/li/index.tsx | 0 .../src/field}/elements/link/Button/index.tsx | 25 +- .../field}/elements/link/Element/index.scss | 2 +- .../field}/elements/link/Element/index.tsx | 28 +- .../elements/link/LinkDrawer/baseFields.ts | 6 +- .../elements/link/LinkDrawer/index.scss | 2 +- .../field}/elements/link/LinkDrawer/index.tsx | 12 +- .../field}/elements/link/LinkDrawer/types.ts | 3 +- .../src/field}/elements/link/index.tsx | 0 .../src/field}/elements/link/shared.ts | 0 .../src/field}/elements/link/utilities.tsx | 3 +- .../src/field}/elements/listTypes.tsx | 0 .../src/field}/elements/ol/index.scss | 2 +- .../src/field}/elements/ol/index.tsx | 2 +- .../relationship/Button/Fields/index.tsx | 19 +- .../elements/relationship/Button/index.scss | 2 +- .../elements/relationship/Button/index.tsx | 4 +- .../elements/relationship/Element/index.scss | 2 +- .../elements/relationship/Element/index.tsx | 17 +- .../field}/elements/relationship/index.tsx | 0 .../field}/elements/relationship/plugin.tsx | 0 .../src/field}/elements/textAlign/index.tsx | 6 +- .../src/field}/elements/toggle.tsx | 0 .../src/field}/elements/toggleList.tsx | 0 .../src/field}/elements/types.ts | 0 .../src/field}/elements/ul/index.scss | 2 +- .../src/field}/elements/ul/index.tsx | 2 +- .../src/field}/elements/unwrapList.ts | 0 .../field}/elements/upload/Button/index.scss | 2 +- .../field}/elements/upload/Button/index.tsx | 4 +- .../upload/Element/UploadDrawer/index.tsx | 25 +- .../field}/elements/upload/Element/index.scss | 2 +- .../field}/elements/upload/Element/index.tsx | 29 +- .../src/field}/elements/upload/index.tsx | 0 .../src/field}/elements/upload/plugin.tsx | 0 .../src/field}/enablePlugins.tsx | 0 .../src/field}/hotkeys.tsx | 0 .../src/field}/icons/AlignCenter/index.tsx | 0 .../src/field}/icons/AlignLeft/index.tsx | 0 .../src/field}/icons/AlignRight/index.tsx | 0 .../src/field}/icons/Blockquote/index.tsx | 0 .../src/field}/icons/Bold/index.tsx | 0 .../src/field}/icons/Code/index.tsx | 0 .../src/field}/icons/IndentLeft/index.scss | 2 +- .../src/field}/icons/IndentLeft/index.tsx | 0 .../src/field}/icons/IndentRight/index.scss | 2 +- .../src/field}/icons/IndentRight/index.tsx | 0 .../src/field}/icons/Italic/index.tsx | 0 .../src/field/icons/Link/index.scss | 11 + .../src/field/icons/Link/index.tsx | 22 + .../src/field}/icons/OrderedList/index.tsx | 0 .../src/field}/icons/Relationship/index.scss | 2 +- .../src/field}/icons/Relationship/index.tsx | 0 .../src/field}/icons/Strikethrough/index.tsx | 0 .../src/field}/icons/Underline/index.tsx | 0 .../src/field}/icons/UnorderedList/index.tsx | 0 .../src/field}/icons/Upload/index.scss | 2 +- .../src/field}/icons/Upload/index.tsx | 0 .../src/field}/icons/headings/H1/index.tsx | 0 .../src/field}/icons/headings/H2/index.tsx | 0 .../src/field}/icons/headings/H3/index.tsx | 0 .../src/field}/icons/headings/H4/index.tsx | 0 .../src/field}/icons/headings/H5/index.tsx | 0 .../src/field}/icons/headings/H6/index.tsx | 0 .../src/field}/icons/headings/index.tsx | 0 .../src/field}/index.scss | 2 +- packages/richtext-slate/src/field/index.tsx | 15 + .../src/field}/leaves/Button.tsx | 0 .../src/field}/leaves/bold/index.tsx | 2 +- .../src/field}/leaves/code/index.tsx | 2 +- .../src/field}/leaves/index.tsx | 0 .../src/field}/leaves/isActive.tsx | 0 .../src/field}/leaves/italic/index.tsx | 2 +- .../src/field}/leaves/strikethrough/index.tsx | 2 +- .../src/field}/leaves/toggle.tsx | 0 .../src/field}/leaves/underline/index.tsx | 2 +- .../src/field}/mergeCustomFunctions.tsx | 0 .../src/field}/plugins/withEnterBreakOut.ts | 0 .../src/field}/plugins/withHTML.tsx | 0 packages/richtext-slate/src/index.ts | 49 + packages/richtext-slate/src/types.ts | 76 + packages/richtext-slate/tsconfig.json | 25 + pnpm-lock.yaml | 2731 ++++++++--------- test/admin/config.ts | 9 +- test/buildConfigWithDefaults.ts | 2 + test/fields/collections/RichText/index.ts | 233 +- test/fields/collections/Tabs/constants.ts | 5 + test/fields/collections/Tabs/index.ts | 7 +- test/fields/e2e.spec.ts | 2 +- test/fields/int.spec.ts | 4 +- tsconfig.json | 3 +- 210 files changed, 2754 insertions(+), 2319 deletions(-) create mode 100644 packages/payload/components/graphics.d.ts create mode 100644 packages/payload/components/graphics.js create mode 100644 packages/payload/src/admin/components/utilities/WithMergedProps/index.tsx delete mode 100644 packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts delete mode 100644 packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/stringifyRichText.ts create mode 100644 packages/payload/src/exports/components/graphics.ts delete mode 100644 packages/payload/src/exports/components/rich-text.ts delete mode 100644 packages/payload/src/fields/richText/richTextRelationshipPromise.ts create mode 100644 packages/payload/src/utilities/deepMerge.ts create mode 100644 packages/richtext-slate/.eslintignore create mode 100644 packages/richtext-slate/.eslintrc.cjs create mode 100644 packages/richtext-slate/.prettierignore create mode 100644 packages/richtext-slate/.swcrc create mode 100644 packages/richtext-slate/package.json create mode 100644 packages/richtext-slate/src/cell/index.tsx rename packages/{payload/src/fields/richText => richtext-slate/src/data}/defaultValue.ts (51%) rename packages/{payload/src/fields/richText => richtext-slate/src/data}/populate.ts (76%) rename packages/{payload/src/fields/richText => richtext-slate/src/data}/recurseNestedFields.ts (96%) create mode 100644 packages/richtext-slate/src/data/richTextRelationshipPromise.ts create mode 100644 packages/richtext-slate/src/data/validation.ts rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/RichText.tsx (94%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/buttons.scss (80%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/Button.tsx (96%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/EnabledRelationshipsCondition.tsx (86%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/ListButton.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/areAllChildrenElements.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/blockquote/index.scss (79%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/blockquote/index.tsx (87%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/getCommonBlock.tsx (93%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h1/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h2/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h3/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h4/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h5/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/h6/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/indent/index.tsx (97%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/injectVoid.ts (95%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/isActive.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/isBlockElement.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/isLastSelectedElementEmpty.ts (94%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/isListActive.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/isWithinListItem.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/li/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/Button/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/Element/index.scss (95%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/Element/index.tsx (87%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/LinkDrawer/baseFields.ts (86%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/LinkDrawer/index.scss (94%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/LinkDrawer/index.tsx (75%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/LinkDrawer/types.ts (60%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/shared.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/link/utilities.tsx (97%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/listTypes.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/ol/index.scss (64%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/ol/index.tsx (86%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/Button/Fields/index.tsx (67%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/Button/index.scss (65%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/Button/index.tsx (94%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/Element/index.scss (96%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/Element/index.tsx (91%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/relationship/plugin.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/textAlign/index.tsx (74%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/toggle.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/toggleList.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/types.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/ul/index.scss (64%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/ul/index.tsx (85%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/unwrapList.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/Button/index.scss (63%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/Button/index.tsx (93%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/Element/UploadDrawer/index.tsx (72%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/Element/index.scss (98%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/Element/index.tsx (88%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/elements/upload/plugin.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/enablePlugins.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/hotkeys.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/AlignCenter/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/AlignLeft/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/AlignRight/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Blockquote/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Bold/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Code/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/IndentLeft/index.scss (87%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/IndentLeft/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/IndentRight/index.scss (87%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/IndentRight/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Italic/index.tsx (100%) create mode 100644 packages/richtext-slate/src/field/icons/Link/index.scss create mode 100644 packages/richtext-slate/src/field/icons/Link/index.tsx rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/OrderedList/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Relationship/index.scss (84%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Relationship/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Strikethrough/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Underline/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/UnorderedList/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Upload/index.scss (80%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/Upload/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H1/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H2/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H3/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H4/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H5/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/H6/index.tsx (100%) rename packages/{payload/src/admin/components => richtext-slate/src/field}/icons/headings/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/index.scss (98%) create mode 100644 packages/richtext-slate/src/field/index.tsx rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/Button.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/bold/index.tsx (85%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/code/index.tsx (85%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/index.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/isActive.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/italic/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/strikethrough/index.tsx (83%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/toggle.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/leaves/underline/index.tsx (84%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/mergeCustomFunctions.tsx (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/plugins/withEnterBreakOut.ts (100%) rename packages/{payload/src/admin/components/forms/field-types/RichText => richtext-slate/src/field}/plugins/withHTML.tsx (100%) create mode 100644 packages/richtext-slate/src/index.ts create mode 100644 packages/richtext-slate/src/types.ts create mode 100644 packages/richtext-slate/tsconfig.json create mode 100644 test/fields/collections/Tabs/constants.ts diff --git a/docs/configuration/overview.mdx b/docs/configuration/overview.mdx index 8f2b87975..d21497b24 100644 --- a/docs/configuration/overview.mdx +++ b/docs/configuration/overview.mdx @@ -26,6 +26,7 @@ Payload is a _config-based_, code-first CMS and application framework. The Paylo | `cors` | Either a whitelist array of URLS to allow CORS requests from, or a wildcard string (`'*'`) to accept incoming requests from any domain. | | `globals` | An array of all Globals that Payload will manage. For more on Globals and their configs, [click here](/docs/configuration/globals). | | `admin` | Base Payload admin configuration. Specify custom components, control metadata, set the Admin user collection, and [more](/docs/admin/overview#admin-options). | +| `editor` | Default richText editor which will be used by richText fields. | | `localization` | Opt-in and control how Payload handles the translation of your content into multiple locales. [More](/docs/configuration/localization) | | `graphQL` | Manage GraphQL-specific functionality here. Define your own queries and mutations, manage query complexity limits, and [more](/docs/graphql/overview#graphql-options). | | `cookiePrefix` | A string that will be prefixed to all cookies that Payload sets. | diff --git a/docs/fields/rich-text.mdx b/docs/fields/rich-text.mdx index 7501665e9..bbc09cc69 100644 --- a/docs/fields/rich-text.mdx +++ b/docs/fields/rich-text.mdx @@ -21,13 +21,7 @@ keywords: rich text, fields, config, configuration, documentation, Content Manag The Admin component is built on the powerful [`slatejs`](https://docs.slatejs.org/) editor and is meant to be as extensible and customizable as possible. - - Consistent with Payload's goal of making you learn as little of Payload as possible, customizing - and using the Rich Text Editor does not involve learning how to develop for a Payload{' '} - rich text editor. - {' '} - Instead, you can invest your time and effort into learning Slate, an open-source tool that will - allow you to apply your learnings elsewhere as well. + Consistent with Payload's goal of making you learn as little of Payload as possible, customizing and using the Rich Text Editor does not involve learning how to develop for a Payload rich text editor. Instead, you can invest your time and effort into learning Slate, an open-source tool that will allow you to apply your learnings elsewhere as well. ### Config @@ -45,6 +39,7 @@ The Admin component is built on the powerful [`slatejs`](https://docs.slatejs.or | **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. | | **`required`** | Require this field to have a value. | | **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). | +| **`editor`** | RichText editor which will be used by this field. | | **`custom`** | Extension point for adding custom data (e.g. for plugins) | _\* An asterisk denotes that a property is required._ diff --git a/docs/production/deployment.mdx b/docs/production/deployment.mdx index 15a77ab20..27e2e2c92 100644 --- a/docs/production/deployment.mdx +++ b/docs/production/deployment.mdx @@ -36,10 +36,7 @@ When you initialize Payload, you provide it with a `secret` property. This prope Because _**you**_ are in complete control of who can do what with your data, you should double and triple-check that you wield that power responsibly before deploying to Production. - - By default, all Access Control functions require that a user is successfully logged in to - Payload to create, read, update, or delete data. - {' '} + By default, all Access Control functions require that a user is successfully logged in to Payload to create, read, update, or delete data.{' '} But, if you allow public user registration, for example, you will want to make sure that your access control functions are more strict - permitting only appropriate users to perform appropriate actions. diff --git a/docs/queries/overview.mdx b/docs/queries/overview.mdx index d54148159..59ab9b53e 100644 --- a/docs/queries/overview.mdx +++ b/docs/queries/overview.mdx @@ -9,9 +9,7 @@ keywords: query, documents, overview, documentation, Content Management System, Payload provides an extremely granular querying language through all APIs. Each API takes the same syntax and fully supports all options. - - Here, "querying" relates to filtering or searching through documents within a Collection. - {' '} + Here, "querying" relates to filtering or searching through documents within a Collection.{' '} You can build queries to pass to Find operations as well as to [restrict which documents certain users can access](/docs/access-control/overview) via access control functions. diff --git a/packages/payload/components.d.ts b/packages/payload/components.d.ts index 7c41320cb..b18413d95 100644 --- a/packages/payload/components.d.ts +++ b/packages/payload/components.d.ts @@ -2,6 +2,8 @@ export { default as Banner } from './dist/admin/components/elements/Banner'; export { default as Button } from './dist/admin/components/elements/Button'; export { default as Pill } from './dist/admin/components/elements/Pill'; export { default as Popup } from './dist/admin/components/elements/Popup'; +export { ShimmerEffect } from './dist/admin/components/elements/ShimmerEffect'; +export { default as Tooltip } from './dist/admin/components/elements/Tooltip'; export { default as Check } from './dist/admin/components/icons/Check'; export { default as Chevron } from './dist/admin/components/icons/Chevron'; export { default as Menu } from './dist/admin/components/icons/Menu'; diff --git a/packages/payload/components.js b/packages/payload/components.js index ac8bf714f..03f20a714 100644 --- a/packages/payload/components.js +++ b/packages/payload/components.js @@ -21,6 +21,12 @@ _export(exports, { Popup: function() { return _Popup.default; }, + ShimmerEffect: function() { + return _ShimmerEffect.ShimmerEffect; + }, + Tooltip: function() { + return _Tooltip.default; + }, Check: function() { return _Check.default; }, @@ -44,6 +50,8 @@ const _Banner = /*#__PURE__*/ _interop_require_default(require("./dist/admin/com const _Button = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/elements/Button")); const _Pill = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/elements/Pill")); const _Popup = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/elements/Popup")); +const _ShimmerEffect = require("./dist/admin/components/elements/ShimmerEffect"); +const _Tooltip = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/elements/Tooltip")); const _Check = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/icons/Check")); const _Chevron = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/icons/Chevron")); const _Menu = /*#__PURE__*/ _interop_require_default(require("./dist/admin/components/icons/Menu")); @@ -56,4 +64,4 @@ function _interop_require_default(obj) { }; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCYW5uZXIgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0Jhbm5lcidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy9CdXR0b24nXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlsbCB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvUGlsbCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3B1cCB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvUG9wdXAnXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9pY29ucy9DaGVjaydcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbiB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvaWNvbnMvQ2hldnJvbidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvaWNvbnMvTWVudSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9pY29ucy9TZWFyY2gnXG5leHBvcnQgeyBkZWZhdWx0IGFzIFggfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2ljb25zL1gnXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbmltYWxUZW1wbGF0ZSB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdGVtcGxhdGVzL01pbmltYWwnXG4iXSwibmFtZXMiOlsiQmFubmVyIiwiQnV0dG9uIiwiUGlsbCIsIlBvcHVwIiwiQ2hlY2siLCJDaGV2cm9uIiwiTWVudSIsIlNlYXJjaCIsIlgiLCJNaW5pbWFsVGVtcGxhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQW9CQSxNQUFNO2VBQU5BLGVBQU07O0lBQ05DLE1BQU07ZUFBTkEsZUFBTTs7SUFFTkMsSUFBSTtlQUFKQSxhQUFJOztJQUVKQyxLQUFLO2VBQUxBLGNBQUs7O0lBQ0xDLEtBQUs7ZUFBTEEsY0FBSzs7SUFDTEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxNQUFNO2VBQU5BLGVBQU07O0lBQ05DLENBQUM7ZUFBREEsVUFBQzs7SUFDREMsZUFBZTtlQUFmQSxnQkFBZTs7OytEQVhEOytEQUNBOzZEQUVGOzhEQUVDOzhEQUNBO2dFQUNFOzZEQUNIOytEQUNFOzBEQUNMO2dFQUNjIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCYW5uZXIgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0Jhbm5lcidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy9CdXR0b24nXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGlsbCB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvUGlsbCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3B1cCB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvUG9wdXAnXG5cbmV4cG9ydCB7IFNoaW1tZXJFZmZlY3QgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1NoaW1tZXJFZmZlY3QnXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvb2x0aXAgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1Rvb2x0aXAnXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9pY29ucy9DaGVjaydcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hldnJvbiB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvaWNvbnMvQ2hldnJvbidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvaWNvbnMvTWVudSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9pY29ucy9TZWFyY2gnXG5leHBvcnQgeyBkZWZhdWx0IGFzIFggfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2ljb25zL1gnXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1pbmltYWxUZW1wbGF0ZSB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdGVtcGxhdGVzL01pbmltYWwnXG4iXSwibmFtZXMiOlsiQmFubmVyIiwiQnV0dG9uIiwiUGlsbCIsIlBvcHVwIiwiU2hpbW1lckVmZmVjdCIsIlRvb2x0aXAiLCJDaGVjayIsIkNoZXZyb24iLCJNZW51IiwiU2VhcmNoIiwiWCIsIk1pbmltYWxUZW1wbGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLE1BQU07ZUFBTkEsZUFBTTs7SUFDTkMsTUFBTTtlQUFOQSxlQUFNOztJQUVOQyxJQUFJO2VBQUpBLGFBQUk7O0lBRUpDLEtBQUs7ZUFBTEEsY0FBSzs7SUFFaEJDLGFBQWE7ZUFBYkEsNEJBQWE7O0lBQ0ZDLE9BQU87ZUFBUEEsZ0JBQU87O0lBQ1BDLEtBQUs7ZUFBTEEsY0FBSzs7SUFDTEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxNQUFNO2VBQU5BLGVBQU07O0lBQ05DLENBQUM7ZUFBREEsVUFBQzs7SUFDREMsZUFBZTtlQUFmQSxnQkFBZTs7OytEQWREOytEQUNBOzZEQUVGOzhEQUVDOytCQUVIO2dFQUNLOzhEQUNGO2dFQUNFOzZEQUNIOytEQUNFOzBEQUNMO2dFQUNjIn0= \ No newline at end of file diff --git a/packages/payload/components/elements.d.ts b/packages/payload/components/elements.d.ts index cdff7846d..3621018f8 100644 --- a/packages/payload/components/elements.d.ts +++ b/packages/payload/components/elements.d.ts @@ -1,6 +1,10 @@ export { default as Button } from '../dist/admin/components/elements/Button'; export { default as Card } from '../dist/admin/components/elements/Card'; +export { DocumentDrawer, DocumentDrawerToggler, baseClass as DocumentDrawerBaseClass, useDocumentDrawer, } from '../dist/admin/components/elements/DocumentDrawer'; +export { Drawer, DrawerToggler, formatDrawerSlug } from '../dist/admin/components/elements/Drawer'; +export { useDrawerSlug } from '../dist/admin/components/elements/Drawer/useDrawerSlug'; export { default as Eyebrow } from '../dist/admin/components/elements/Eyebrow'; export { Gutter } from '../dist/admin/components/elements/Gutter'; +export { ListDrawer, ListDrawerToggler, baseClass as ListDrawerBaseClass, formatListDrawerSlug, useListDrawer, } from '../dist/admin/components/elements/ListDrawer'; export { default as Nav } from '../dist/admin/components/elements/Nav'; //# sourceMappingURL=elements.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/elements.js b/packages/payload/components/elements.js index c15b726be..ca3b845d6 100644 --- a/packages/payload/components/elements.js +++ b/packages/payload/components/elements.js @@ -15,20 +15,63 @@ _export(exports, { Card: function() { return _Card.default; }, + DocumentDrawer: function() { + return _DocumentDrawer.DocumentDrawer; + }, + DocumentDrawerToggler: function() { + return _DocumentDrawer.DocumentDrawerToggler; + }, + DocumentDrawerBaseClass: function() { + return _DocumentDrawer.baseClass; + }, + useDocumentDrawer: function() { + return _DocumentDrawer.useDocumentDrawer; + }, + Drawer: function() { + return _Drawer.Drawer; + }, + DrawerToggler: function() { + return _Drawer.DrawerToggler; + }, + formatDrawerSlug: function() { + return _Drawer.formatDrawerSlug; + }, + useDrawerSlug: function() { + return _useDrawerSlug.useDrawerSlug; + }, Eyebrow: function() { return _Eyebrow.default; }, Gutter: function() { return _Gutter.Gutter; }, + ListDrawer: function() { + return _ListDrawer.ListDrawer; + }, + ListDrawerToggler: function() { + return _ListDrawer.ListDrawerToggler; + }, + ListDrawerBaseClass: function() { + return _ListDrawer.baseClass; + }, + formatListDrawerSlug: function() { + return _ListDrawer.formatListDrawerSlug; + }, + useListDrawer: function() { + return _ListDrawer.useListDrawer; + }, Nav: function() { return _Nav.default; } }); const _Button = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/elements/Button")); const _Card = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/elements/Card")); +const _DocumentDrawer = require("../dist/admin/components/elements/DocumentDrawer"); +const _Drawer = require("../dist/admin/components/elements/Drawer"); +const _useDrawerSlug = require("../dist/admin/components/elements/Drawer/useDrawerSlug"); const _Eyebrow = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/elements/Eyebrow")); const _Gutter = require("../dist/admin/components/elements/Gutter"); +const _ListDrawer = require("../dist/admin/components/elements/ListDrawer"); const _Nav = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/elements/Nav")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { @@ -36,4 +79,4 @@ function _interop_require_default(obj) { }; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZWxlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0J1dHRvbidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyZCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvQ2FyZCdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRXllYnJvdyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvRXllYnJvdydcbmV4cG9ydCB7IEd1dHRlciB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvR3V0dGVyJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOYXYgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdidcbiJdLCJuYW1lcyI6WyJCdXR0b24iLCJDYXJkIiwiRXllYnJvdyIsIkd1dHRlciIsIk5hdiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLE1BQU07ZUFBTkEsZUFBTTs7SUFDTkMsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxPQUFPO2VBQVBBLGdCQUFPOztJQUNsQkMsTUFBTTtlQUFOQSxjQUFNOztJQUNLQyxHQUFHO2VBQUhBLFlBQUc7OzsrREFKVzs2REFDRjtnRUFDRzt3QkFDWjs0REFDUSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZWxlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0J1dHRvbidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyZCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvQ2FyZCdcbmV4cG9ydCB7XG4gIERvY3VtZW50RHJhd2VyLFxuICBEb2N1bWVudERyYXdlclRvZ2dsZXIsXG4gIGJhc2VDbGFzcyBhcyBEb2N1bWVudERyYXdlckJhc2VDbGFzcyxcbiAgdXNlRG9jdW1lbnREcmF3ZXIsXG59IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvRG9jdW1lbnREcmF3ZXInXG5leHBvcnQgeyBEcmF3ZXIsIERyYXdlclRvZ2dsZXIsIGZvcm1hdERyYXdlclNsdWcgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RyYXdlcidcbmV4cG9ydCB7IHVzZURyYXdlclNsdWcgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RyYXdlci91c2VEcmF3ZXJTbHVnJ1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEV5ZWJyb3cgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0V5ZWJyb3cnXG5cbmV4cG9ydCB7IEd1dHRlciB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvR3V0dGVyJ1xuZXhwb3J0IHtcbiAgTGlzdERyYXdlcixcbiAgTGlzdERyYXdlclRvZ2dsZXIsXG4gIGJhc2VDbGFzcyBhcyBMaXN0RHJhd2VyQmFzZUNsYXNzLFxuICBmb3JtYXRMaXN0RHJhd2VyU2x1ZyxcbiAgdXNlTGlzdERyYXdlcixcbn0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy9MaXN0RHJhd2VyJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOYXYgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL05hdidcbiJdLCJuYW1lcyI6WyJCdXR0b24iLCJDYXJkIiwiRG9jdW1lbnREcmF3ZXIiLCJEb2N1bWVudERyYXdlclRvZ2dsZXIiLCJEb2N1bWVudERyYXdlckJhc2VDbGFzcyIsImJhc2VDbGFzcyIsInVzZURvY3VtZW50RHJhd2VyIiwiRHJhd2VyIiwiRHJhd2VyVG9nZ2xlciIsImZvcm1hdERyYXdlclNsdWciLCJ1c2VEcmF3ZXJTbHVnIiwiRXllYnJvdyIsIkd1dHRlciIsIkxpc3REcmF3ZXIiLCJMaXN0RHJhd2VyVG9nZ2xlciIsIkxpc3REcmF3ZXJCYXNlQ2xhc3MiLCJmb3JtYXRMaXN0RHJhd2VyU2x1ZyIsInVzZUxpc3REcmF3ZXIiLCJOYXYiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQW9CQSxNQUFNO2VBQU5BLGVBQU07O0lBQ05DLElBQUk7ZUFBSkEsYUFBSTs7SUFFdEJDLGNBQWM7ZUFBZEEsOEJBQWM7O0lBQ2RDLHFCQUFxQjtlQUFyQkEscUNBQXFCOztJQUNSQyx1QkFBdUI7ZUFBcENDLHlCQUFTOztJQUNUQyxpQkFBaUI7ZUFBakJBLGlDQUFpQjs7SUFFVkMsTUFBTTtlQUFOQSxjQUFNOztJQUFFQyxhQUFhO2VBQWJBLHFCQUFhOztJQUFFQyxnQkFBZ0I7ZUFBaEJBLHdCQUFnQjs7SUFDdkNDLGFBQWE7ZUFBYkEsNEJBQWE7O0lBRUZDLE9BQU87ZUFBUEEsZ0JBQU87O0lBRWxCQyxNQUFNO2VBQU5BLGNBQU07O0lBRWJDLFVBQVU7ZUFBVkEsc0JBQVU7O0lBQ1ZDLGlCQUFpQjtlQUFqQkEsNkJBQWlCOztJQUNKQyxtQkFBbUI7ZUFBaENWLHFCQUFTOztJQUNUVyxvQkFBb0I7ZUFBcEJBLGdDQUFvQjs7SUFDcEJDLGFBQWE7ZUFBYkEseUJBQWE7O0lBRUtDLEdBQUc7ZUFBSEEsWUFBRzs7OytEQXJCVzs2REFDRjtnQ0FNekI7d0JBQ2lEOytCQUMxQjtnRUFFSzt3QkFFWjs0QkFPaEI7NERBQ3dCIn0= \ No newline at end of file diff --git a/packages/payload/components/fields/Relationship.d.ts b/packages/payload/components/fields/Relationship.d.ts index b32261546..a5fd025c0 100644 --- a/packages/payload/components/fields/Relationship.d.ts +++ b/packages/payload/components/fields/Relationship.d.ts @@ -1,2 +1,3 @@ +export { default as RelationshipComponent } from '../../dist/admin/components/forms/field-types/Relationship'; export type { Option, Props, ValueWithRelation, } from '../../dist/admin/components/forms/field-types/Relationship/types'; //# sourceMappingURL=Relationship.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/fields/Relationship.js b/packages/payload/components/fields/Relationship.js index b775d337d..a7c049e28 100644 --- a/packages/payload/components/fields/Relationship.js +++ b/packages/payload/components/fields/Relationship.js @@ -2,5 +2,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "RelationshipComponent", { + enumerable: true, + get: function() { + return _Relationship.default; + } +}); +const _Relationship = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/forms/field-types/Relationship")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZmllbGRzL1JlbGF0aW9uc2hpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFJlbGF0aW9uc2hpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvUmVsYXRpb25zaGlwJ1xuZXhwb3J0IHR5cGUge1xuICBPcHRpb24sXG4gIFByb3BzLFxuICBWYWx1ZVdpdGhSZWxhdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9SZWxhdGlvbnNoaXAvdHlwZXMnXG4iXSwibmFtZXMiOlsiUmVsYXRpb25zaGlwQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7OytCQUFvQkE7OztlQUFBQSxxQkFBcUI7OztxRUFBUSJ9 \ No newline at end of file diff --git a/packages/payload/components/fields/RichText.d.ts b/packages/payload/components/fields/RichText.d.ts index e96c14566..f145f6b5f 100644 --- a/packages/payload/components/fields/RichText.d.ts +++ b/packages/payload/components/fields/RichText.d.ts @@ -1,2 +1,2 @@ -export type { Props } from '../../dist/admin/components/forms/field-types/RichText/types'; +export type { RichTextFieldProps } from '../../dist/admin/components/forms/field-types/RichText/types'; //# sourceMappingURL=RichText.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/fields/Select.d.ts b/packages/payload/components/fields/Select.d.ts index 8fe093d68..d0405e65a 100644 --- a/packages/payload/components/fields/Select.d.ts +++ b/packages/payload/components/fields/Select.d.ts @@ -1,2 +1,3 @@ +export { default as SelectComponent } from '../../dist/admin/components/forms/field-types/Select'; export type { Props } from '../../dist/admin/components/forms/field-types/Select/types'; //# sourceMappingURL=Select.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/fields/Select.js b/packages/payload/components/fields/Select.js index b775d337d..2025e4933 100644 --- a/packages/payload/components/fields/Select.js +++ b/packages/payload/components/fields/Select.js @@ -2,5 +2,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "SelectComponent", { + enumerable: true, + get: function() { + return _Select.default; + } +}); +const _Select = /*#__PURE__*/ _interop_require_default(require("../../dist/admin/components/forms/field-types/Select")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZmllbGRzL1NlbGVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvU2VsZWN0J1xuZXhwb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4uLy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvU2VsZWN0L3R5cGVzJ1xuIl0sIm5hbWVzIjpbIlNlbGVjdENvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBb0JBOzs7ZUFBQUEsZUFBZTs7OytEQUFRIn0= \ No newline at end of file diff --git a/packages/payload/components/forms.d.ts b/packages/payload/components/forms.d.ts index 40edd754d..72bdaee84 100644 --- a/packages/payload/components/forms.d.ts +++ b/packages/payload/components/forms.d.ts @@ -1,3 +1,5 @@ +export { default as Error } from '../dist/admin/components/forms/Error'; +export { default as FieldDescription } from '../dist/admin/components/forms/FieldDescription'; export { default as Form } from '../dist/admin/components/forms/Form'; export { useAllFormFields, useForm, useFormFields, useFormModified, useFormProcessing, useFormSubmitted, /** @@ -7,7 +9,9 @@ useWatchForm, } from '../dist/admin/components/forms/Form/context'; export { default as getSiblingData } from '../dist/admin/components/forms/Form/getSiblingData'; export { default as reduceFieldsToValues } from '../dist/admin/components/forms/Form/reduceFieldsToValues'; export { default as Label } from '../dist/admin/components/forms/Label'; +export { default as RenderFields } from '../dist/admin/components/forms/RenderFields'; export { default as Submit } from '../dist/admin/components/forms/Submit'; +export { default as FormSubmit } from '../dist/admin/components/forms/Submit'; export { default as Checkbox } from '../dist/admin/components/forms/field-types/Checkbox'; export { default as Group } from '../dist/admin/components/forms/field-types/Group'; export { default as Select } from '../dist/admin/components/forms/field-types/Select'; diff --git a/packages/payload/components/forms.js b/packages/payload/components/forms.js index df5b22491..25de5b682 100644 --- a/packages/payload/components/forms.js +++ b/packages/payload/components/forms.js @@ -9,6 +9,12 @@ function _export(target, all) { }); } _export(exports, { + Error: function() { + return _Error.default; + }, + FieldDescription: function() { + return _FieldDescription.default; + }, Form: function() { return _Form.default; }, @@ -44,9 +50,15 @@ _export(exports, { Label: function() { return _Label.default; }, + RenderFields: function() { + return _RenderFields.default; + }, Submit: function() { return _Submit.default; }, + FormSubmit: function() { + return _Submit.default; + }, Checkbox: function() { return _Checkbox.default; }, @@ -75,11 +87,14 @@ _export(exports, { return _withCondition.default; } }); +const _Error = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Error")); +const _FieldDescription = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/FieldDescription")); const _Form = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Form")); const _context = require("../dist/admin/components/forms/Form/context"); const _getSiblingData = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Form/getSiblingData")); const _reduceFieldsToValues = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Form/reduceFieldsToValues")); const _Label = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Label")); +const _RenderFields = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/RenderFields")); const _Submit = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Submit")); const _Checkbox = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/field-types/Checkbox")); const _Group = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/field-types/Group")); @@ -95,4 +110,4 @@ function _interop_require_default(obj) { }; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZm9ybXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtJ1xuXG5leHBvcnQge1xuICB1c2VBbGxGb3JtRmllbGRzLFxuICB1c2VGb3JtLFxuICB1c2VGb3JtRmllbGRzLFxuICB1c2VGb3JtTW9kaWZpZWQsXG4gIHVzZUZvcm1Qcm9jZXNzaW5nLFxuICB1c2VGb3JtU3VibWl0dGVkLFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlV2F0Y2hGb3JtIGlzIG5vIGxvbmdlciBwcmVmZXJyZWQuIElmIHlvdSBuZWVkIGFsbCBmb3JtIGZpZWxkcywgcHJlZmVyIGB1c2VBbGxGb3JtRmllbGRzYC5cbiAgICovXG4gIHVzZVdhdGNoRm9ybSxcbn0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ2V0U2libGluZ0RhdGEgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vZ2V0U2libGluZ0RhdGEnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVkdWNlRmllbGRzVG9WYWx1ZXMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vcmVkdWNlRmllbGRzVG9WYWx1ZXMnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0xhYmVsJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdWJtaXQgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL1N1Ym1pdCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvQ2hlY2tib3gnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgR3JvdXAgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL0dyb3VwJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3QgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1NlbGVjdCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3RJbnB1dCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvU2VsZWN0L0lucHV0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0IH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9UZXh0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0SW5wdXQgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1RleHQvSW5wdXQnXG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVGhpcyBtZXRob2QgaXMgbm93IGNhbGxlZCB1c2VGaWVsZC4gVGhlIHVzZUZpZWxkVHlwZSBhbGlhcyB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL3VzZUZpZWxkJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VGaWVsZCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvdXNlRmllbGQnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgd2l0aENvbmRpdGlvbiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvd2l0aENvbmRpdGlvbidcbiJdLCJuYW1lcyI6WyJGb3JtIiwidXNlQWxsRm9ybUZpZWxkcyIsInVzZUZvcm0iLCJ1c2VGb3JtRmllbGRzIiwidXNlRm9ybU1vZGlmaWVkIiwidXNlRm9ybVByb2Nlc3NpbmciLCJ1c2VGb3JtU3VibWl0dGVkIiwidXNlV2F0Y2hGb3JtIiwiZ2V0U2libGluZ0RhdGEiLCJyZWR1Y2VGaWVsZHNUb1ZhbHVlcyIsIkxhYmVsIiwiU3VibWl0IiwiQ2hlY2tib3giLCJHcm91cCIsIlNlbGVjdCIsIlNlbGVjdElucHV0IiwiVGV4dCIsIlRleHRJbnB1dCIsInVzZUZpZWxkVHlwZSIsInVzZUZpZWxkIiwid2l0aENvbmRpdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLElBQUk7ZUFBSkEsYUFBSTs7SUFHdEJDLGdCQUFnQjtlQUFoQkEseUJBQWdCOztJQUNoQkMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsYUFBYTtlQUFiQSxzQkFBYTs7SUFDYkMsZUFBZTtlQUFmQSx3QkFBZTs7SUFDZkMsaUJBQWlCO2VBQWpCQSwwQkFBaUI7O0lBQ2pCQyxnQkFBZ0I7ZUFBaEJBLHlCQUFnQjs7SUFDaEI7O0dBRUMsR0FDREMsWUFBWTtlQUFaQSxxQkFBWTs7SUFHTUMsY0FBYztlQUFkQSx1QkFBYzs7SUFFZEMsb0JBQW9CO2VBQXBCQSw2QkFBb0I7O0lBRXBCQyxLQUFLO2VBQUxBLGNBQUs7O0lBQ0xDLE1BQU07ZUFBTkEsZUFBTTs7SUFFTkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFFUkMsS0FBSztlQUFMQSxjQUFLOztJQUNMQyxNQUFNO2VBQU5BLGVBQU07O0lBRU5DLFdBQVc7ZUFBWEEsY0FBVzs7SUFDWEMsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxTQUFTO2VBQVRBLGVBQVM7O0lBS1RDLFlBQVk7ZUFBWkEsaUJBQVk7O0lBQ1pDLFFBQVE7ZUFBUkEsaUJBQVE7O0lBRVJDLGFBQWE7ZUFBYkEsc0JBQWE7Ozs2REFyQ0Q7eUJBYXpCO3VFQUVtQzs2RUFFTTs4REFFZjsrREFDQztpRUFFRTs4REFFSDsrREFDQzs4REFFSzs2REFDUDsrREFDSztpRUFLRztzRUFHQyJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZm9ybXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBFcnJvciB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvRXJyb3InXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmllbGREZXNjcmlwdGlvbiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvRmllbGREZXNjcmlwdGlvbidcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtJ1xuXG5leHBvcnQge1xuICB1c2VBbGxGb3JtRmllbGRzLFxuICB1c2VGb3JtLFxuICB1c2VGb3JtRmllbGRzLFxuICB1c2VGb3JtTW9kaWZpZWQsXG4gIHVzZUZvcm1Qcm9jZXNzaW5nLFxuICB1c2VGb3JtU3VibWl0dGVkLFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlV2F0Y2hGb3JtIGlzIG5vIGxvbmdlciBwcmVmZXJyZWQuIElmIHlvdSBuZWVkIGFsbCBmb3JtIGZpZWxkcywgcHJlZmVyIGB1c2VBbGxGb3JtRmllbGRzYC5cbiAgICovXG4gIHVzZVdhdGNoRm9ybSxcbn0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtL2NvbnRleHQnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ2V0U2libGluZ0RhdGEgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vZ2V0U2libGluZ0RhdGEnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlZHVjZUZpZWxkc1RvVmFsdWVzIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtL3JlZHVjZUZpZWxkc1RvVmFsdWVzJ1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIExhYmVsIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9MYWJlbCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZW5kZXJGaWVsZHMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL1JlbmRlckZpZWxkcydcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3VibWl0IH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9TdWJtaXQnXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9ybVN1Ym1pdCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvU3VibWl0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvZmllbGQtdHlwZXMvQ2hlY2tib3gnXG5leHBvcnQgeyBkZWZhdWx0IGFzIEdyb3VwIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9Hcm91cCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3QgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1NlbGVjdCdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0SW5wdXQgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1NlbGVjdC9JbnB1dCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0IH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcy9UZXh0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0SW5wdXQgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1RleHQvSW5wdXQnXG4vKipcbiAqIEBkZXByZWNhdGVkIFRoaXMgbWV0aG9kIGlzIG5vdyBjYWxsZWQgdXNlRmllbGQuIFRoZSB1c2VGaWVsZFR5cGUgYWxpYXMgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHZlcnNpb24uXG4gKi9cbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy91c2VGaWVsZCdcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VGaWVsZCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvdXNlRmllbGQnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHdpdGhDb25kaXRpb24gfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL3dpdGhDb25kaXRpb24nXG4iXSwibmFtZXMiOlsiRXJyb3IiLCJGaWVsZERlc2NyaXB0aW9uIiwiRm9ybSIsInVzZUFsbEZvcm1GaWVsZHMiLCJ1c2VGb3JtIiwidXNlRm9ybUZpZWxkcyIsInVzZUZvcm1Nb2RpZmllZCIsInVzZUZvcm1Qcm9jZXNzaW5nIiwidXNlRm9ybVN1Ym1pdHRlZCIsInVzZVdhdGNoRm9ybSIsImdldFNpYmxpbmdEYXRhIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJMYWJlbCIsIlJlbmRlckZpZWxkcyIsIlN1Ym1pdCIsIkZvcm1TdWJtaXQiLCJDaGVja2JveCIsIkdyb3VwIiwiU2VsZWN0IiwiU2VsZWN0SW5wdXQiLCJUZXh0IiwiVGV4dElucHV0IiwidXNlRmllbGRUeXBlIiwidXNlRmllbGQiLCJ3aXRoQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUFvQkEsS0FBSztlQUFMQSxjQUFLOztJQUVMQyxnQkFBZ0I7ZUFBaEJBLHlCQUFnQjs7SUFFaEJDLElBQUk7ZUFBSkEsYUFBSTs7SUFHdEJDLGdCQUFnQjtlQUFoQkEseUJBQWdCOztJQUNoQkMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsYUFBYTtlQUFiQSxzQkFBYTs7SUFDYkMsZUFBZTtlQUFmQSx3QkFBZTs7SUFDZkMsaUJBQWlCO2VBQWpCQSwwQkFBaUI7O0lBQ2pCQyxnQkFBZ0I7ZUFBaEJBLHlCQUFnQjs7SUFDaEI7O0dBRUMsR0FDREMsWUFBWTtlQUFaQSxxQkFBWTs7SUFHTUMsY0FBYztlQUFkQSx1QkFBYzs7SUFDZEMsb0JBQW9CO2VBQXBCQSw2QkFBb0I7O0lBRXBCQyxLQUFLO2VBQUxBLGNBQUs7O0lBRUxDLFlBQVk7ZUFBWkEscUJBQVk7O0lBQ1pDLE1BQU07ZUFBTkEsZUFBTTs7SUFFTkMsVUFBVTtlQUFWQSxlQUFVOztJQUNWQyxRQUFRO2VBQVJBLGlCQUFROztJQUNSQyxLQUFLO2VBQUxBLGNBQUs7O0lBRUxDLE1BQU07ZUFBTkEsZUFBTTs7SUFDTkMsV0FBVztlQUFYQSxjQUFXOztJQUVYQyxJQUFJO2VBQUpBLGFBQUk7O0lBQ0pDLFNBQVM7ZUFBVEEsZUFBUzs7SUFJVEMsWUFBWTtlQUFaQSxpQkFBWTs7SUFFWkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsYUFBYTtlQUFiQSxzQkFBYTs7OzhEQTFDQTt5RUFFVzs2REFFWjt5QkFhekI7dUVBRW1DOzZFQUNNOzhEQUVmO3FFQUVPOytEQUNOO2lFQUdFOzhEQUNIOytEQUVDOzhEQUNLOzZEQUVQOytEQUNLO2lFQUlHO3NFQUdDIn0= \ No newline at end of file diff --git a/packages/payload/components/graphics.d.ts b/packages/payload/components/graphics.d.ts new file mode 100644 index 000000000..df77422f0 --- /dev/null +++ b/packages/payload/components/graphics.d.ts @@ -0,0 +1,7 @@ +export { default as AccountGraphic } from '../dist/admin/components/graphics/Account'; +export { default as DefaultBlockImageGraphic } from '../dist/admin/components/graphics/DefaultBlockImage'; +export { default as FileGraphic } from '../dist/admin/components/graphics/File'; +export { default as IconGraphic } from '../dist/admin/components/graphics/Icon'; +export { default as LogoGraphic } from '../dist/admin/components/graphics/Logo'; +export { default as SearchGraphic } from '../dist/admin/components/graphics/Search'; +//# sourceMappingURL=graphics.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/graphics.js b/packages/payload/components/graphics.js new file mode 100644 index 000000000..d143b5f1d --- /dev/null +++ b/packages/payload/components/graphics.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AccountGraphic: function() { + return _Account.default; + }, + DefaultBlockImageGraphic: function() { + return _DefaultBlockImage.default; + }, + FileGraphic: function() { + return _File.default; + }, + IconGraphic: function() { + return _Icon.default; + }, + LogoGraphic: function() { + return _Logo.default; + }, + SearchGraphic: function() { + return _Search.default; + } +}); +const _Account = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/Account")); +const _DefaultBlockImage = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/DefaultBlockImage")); +const _File = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/File")); +const _Icon = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/Icon")); +const _Logo = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/Logo")); +const _Search = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/graphics/Search")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvZ3JhcGhpY3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBBY2NvdW50R3JhcGhpYyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZ3JhcGhpY3MvQWNjb3VudCdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVmYXVsdEJsb2NrSW1hZ2VHcmFwaGljIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9ncmFwaGljcy9EZWZhdWx0QmxvY2tJbWFnZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUdyYXBoaWMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2dyYXBoaWNzL0ZpbGUnXG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25HcmFwaGljIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy9ncmFwaGljcy9JY29uJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2dvR3JhcGhpYyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZ3JhcGhpY3MvTG9nbydcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoR3JhcGhpYyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZ3JhcGhpY3MvU2VhcmNoJ1xuIl0sIm5hbWVzIjpbIkFjY291bnRHcmFwaGljIiwiRGVmYXVsdEJsb2NrSW1hZ2VHcmFwaGljIiwiRmlsZUdyYXBoaWMiLCJJY29uR3JhcGhpYyIsIkxvZ29HcmFwaGljIiwiU2VhcmNoR3JhcGhpYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLGNBQWM7ZUFBZEEsZ0JBQWM7O0lBQ2RDLHdCQUF3QjtlQUF4QkEsMEJBQXdCOztJQUN4QkMsV0FBVztlQUFYQSxhQUFXOztJQUNYQyxXQUFXO2VBQVhBLGFBQVc7O0lBQ1hDLFdBQVc7ZUFBWEEsYUFBVzs7SUFDWEMsYUFBYTtlQUFiQSxlQUFhOzs7Z0VBTFM7MEVBQ1U7NkRBQ2I7NkRBQ0E7NkRBQ0E7K0RBQ0UifQ== \ No newline at end of file diff --git a/packages/payload/components/hooks.d.ts b/packages/payload/components/hooks.d.ts index 68eb2ef27..2eee45207 100644 --- a/packages/payload/components/hooks.d.ts +++ b/packages/payload/components/hooks.d.ts @@ -1,2 +1,13 @@ export { useStepNav } from '../dist/admin/components/elements/StepNav'; +export { default as useDebounce } from '../dist/admin/hooks/useDebounce'; +export { useDebouncedCallback } from '../dist/admin/hooks/useDebouncedCallback'; +export { useDelay } from '../dist/admin/hooks/useDelay'; +export { useDelayedRender } from '../dist/admin/hooks/useDelayedRender'; +export { default as useHotkey } from '../dist/admin/hooks/useHotkey'; +export { default as useIntersect } from '../dist/admin/hooks/useIntersect'; +export { default as useMountEffect } from '../dist/admin/hooks/useMountEffect'; +export { default as usePayloadAPI } from '../dist/admin/hooks/usePayloadAPI'; +export { default as useThrottledEffect } from '../dist/admin/hooks/useThrottledEffect'; +export { default as useThumbnail } from '../dist/admin/hooks/useThumbnail'; +export { default as useTitle, formatUseAsTitle } from '../dist/admin/hooks/useTitle'; //# sourceMappingURL=hooks.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/hooks.js b/packages/payload/components/hooks.js index fbd14257b..c1e3cd027 100644 --- a/packages/payload/components/hooks.js +++ b/packages/payload/components/hooks.js @@ -2,12 +2,108 @@ Object.defineProperty(exports, "__esModule", { value: true }); -Object.defineProperty(exports, "useStepNav", { - enumerable: true, - get: function() { +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + useStepNav: function() { return _StepNav.useStepNav; + }, + useDebounce: function() { + return _useDebounce.default; + }, + useDebouncedCallback: function() { + return _useDebouncedCallback.useDebouncedCallback; + }, + useDelay: function() { + return _useDelay.useDelay; + }, + useDelayedRender: function() { + return _useDelayedRender.useDelayedRender; + }, + useHotkey: function() { + return _useHotkey.default; + }, + useIntersect: function() { + return _useIntersect.default; + }, + useMountEffect: function() { + return _useMountEffect.default; + }, + usePayloadAPI: function() { + return _usePayloadAPI.default; + }, + useThrottledEffect: function() { + return _useThrottledEffect.default; + }, + useThumbnail: function() { + return _useThumbnail.default; + }, + useTitle: function() { + return _useTitle.default; + }, + formatUseAsTitle: function() { + return _useTitle.formatUseAsTitle; } }); const _StepNav = require("../dist/admin/components/elements/StepNav"); +const _useDebounce = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useDebounce")); +const _useDebouncedCallback = require("../dist/admin/hooks/useDebouncedCallback"); +const _useDelay = require("../dist/admin/hooks/useDelay"); +const _useDelayedRender = require("../dist/admin/hooks/useDelayedRender"); +const _useHotkey = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useHotkey")); +const _useIntersect = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useIntersect")); +const _useMountEffect = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useMountEffect")); +const _usePayloadAPI = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/usePayloadAPI")); +const _useThrottledEffect = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useThrottledEffect")); +const _useThumbnail = /*#__PURE__*/ _interop_require_default(require("../dist/admin/hooks/useThumbnail")); +const _useTitle = /*#__PURE__*/ _interop_require_wildcard(require("../dist/admin/hooks/useTitle")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvaG9va3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlU3RlcE5hdiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlcE5hdidcbiJdLCJuYW1lcyI6WyJ1c2VTdGVwTmF2Il0sIm1hcHBpbmdzIjoiOzs7OytCQUFTQTs7O2VBQUFBLG1CQUFVOzs7eUJBQVEifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvaG9va3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgdXNlU3RlcE5hdiB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvZWxlbWVudHMvU3RlcE5hdidcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlRGVib3VuY2UgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VEZWJvdW5jZSdcbmV4cG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snXG5leHBvcnQgeyB1c2VEZWxheSB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZURlbGF5J1xuZXhwb3J0IHsgdXNlRGVsYXllZFJlbmRlciB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZURlbGF5ZWRSZW5kZXInXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZUhvdGtleSB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZUhvdGtleSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlSW50ZXJzZWN0IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlSW50ZXJzZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VNb3VudEVmZmVjdCB9IGZyb20gJy4uLy4uL2FkbWluL2hvb2tzL3VzZU1vdW50RWZmZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VQYXlsb2FkQVBJIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlVGhyb3R0bGVkRWZmZWN0IH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlVGhyb3R0bGVkRWZmZWN0J1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUaHVtYm5haWwgfSBmcm9tICcuLi8uLi9hZG1pbi9ob29rcy91c2VUaHVtYm5haWwnXG5leHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRpdGxlLCBmb3JtYXRVc2VBc1RpdGxlIH0gZnJvbSAnLi4vLi4vYWRtaW4vaG9va3MvdXNlVGl0bGUnXG4iXSwibmFtZXMiOlsidXNlU3RlcE5hdiIsInVzZURlYm91bmNlIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJ1c2VEZWxheSIsInVzZURlbGF5ZWRSZW5kZXIiLCJ1c2VIb3RrZXkiLCJ1c2VJbnRlcnNlY3QiLCJ1c2VNb3VudEVmZmVjdCIsInVzZVBheWxvYWRBUEkiLCJ1c2VUaHJvdHRsZWRFZmZlY3QiLCJ1c2VUaHVtYm5haWwiLCJ1c2VUaXRsZSIsImZvcm1hdFVzZUFzVGl0bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQVNBLFVBQVU7ZUFBVkEsbUJBQVU7O0lBQ0NDLFdBQVc7ZUFBWEEsb0JBQVc7O0lBQ3RCQyxvQkFBb0I7ZUFBcEJBLDBDQUFvQjs7SUFDcEJDLFFBQVE7ZUFBUkEsa0JBQVE7O0lBQ1JDLGdCQUFnQjtlQUFoQkEsa0NBQWdCOztJQUNMQyxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxjQUFjO2VBQWRBLHVCQUFjOztJQUNkQyxhQUFhO2VBQWJBLHNCQUFhOztJQUNiQyxrQkFBa0I7ZUFBbEJBLDJCQUFrQjs7SUFDbEJDLFlBQVk7ZUFBWkEscUJBQVk7O0lBQ1pDLFFBQVE7ZUFBUkEsaUJBQVE7O0lBQUVDLGdCQUFnQjtlQUFoQkEsMEJBQWdCOzs7eUJBWG5CO29FQUNZO3NDQUNGOzBCQUNaO2tDQUNRO2tFQUNJO3FFQUNHO3VFQUNFO3NFQUNEOzJFQUNLO3FFQUNOO2tFQUNjIn0= \ No newline at end of file diff --git a/packages/payload/components/index.js b/packages/payload/components/index.js index 93d8f03fd..845967a7e 100644 --- a/packages/payload/components/index.js +++ b/packages/payload/components/index.js @@ -15,7 +15,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,l=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case o:case i:case l:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case v:case m:case u:return e;default:return t}}case a:return t}}}function x(e){return k(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=v,t.Memo=m,t.Portal=a,t.Profiler=i,t.StrictMode=l,t.Suspense=p,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===v},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===i},t.isStrictMode=function(e){return k(e)===l},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===i||e===l||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===g)},t.typeOf=k},9415:(e,t,n)=>{"use strict";e.exports=n(4507)},7223:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.r(t),n.d(t,{BrowserRouter:()=>xe,HashRouter:()=>Se,Link:()=>Oe,MemoryRouter:()=>X,NavLink:()=>Le,Prompt:()=>J,Redirect:()=>re,Route:()=>ue,Router:()=>Y,StaticRouter:()=>he,Switch:()=>me,generatePath:()=>ne,matchPath:()=>ie,useHistory:()=>ye,useLocation:()=>be,useParams:()=>we,useRouteMatch:()=>ke,withRouter:()=>ve});var o=n(9497),l=n.n(o),i=n(7862),u=n.n(i);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0;d--){var p=a[d];"."===p?f(a,d):".."===p?(f(a,d),s++):s&&(f(a,d),s--)}if(!i)for(;s--;s)a.unshift("..");!i||""===a[0]||a[0]&&c(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function p(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const h=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=p(t),a=p(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var m=!0,v="Invariant failed";function g(e,t){if(!e){if(m)throw new Error(v);var n="function"==typeof t?t():t,r=n?"".concat(v,": ").concat(n):v;throw new Error(r)}}function y(e){return"/"===e.charAt(0)?e:"/"+e}function b(e){return"/"===e.charAt(0)?e.substr(1):e}function w(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function k(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function x(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function S(e,t,n,r){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=s({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(a.key=n),r?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=d(a.pathname,r.pathname)):a.pathname=r.pathname:a.pathname||(a.pathname="/"),a}function E(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r=0||(a[n]=e[n]);return a}var U=n(63),B=n.n(U),W=1073741823,H="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var V=l().createContext||function(e,t){var n,r,o="__create-react-context-"+function(){var e="__global_unique_id__";return H[e]=(H[e]||0)+1}()+"__",i=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),l=0;lt?n.splice(t,n.length-t,a):n.push(a),f({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=S(e,t,d(),g.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(g.entries[g.index]=a,f({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=g.index+e;return t>=0&&t{"use strict"; + */var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,l=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,g=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case o:case i:case l:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case v:case m:case u:return e;default:return t}}case a:return t}}}function x(e){return k(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=v,t.Memo=m,t.Portal=a,t.Profiler=i,t.StrictMode=l,t.Suspense=p,t.isAsyncMode=function(e){return x(e)||k(e)===c},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===v},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===i},t.isStrictMode=function(e){return k(e)===l},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===f||e===i||e===l||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===w||e.$$typeof===g)},t.typeOf=k},9415:(e,t,n)=>{"use strict";e.exports=n(4507)},3717:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.r(t),n.d(t,{BrowserRouter:()=>xe,HashRouter:()=>Se,Link:()=>Oe,MemoryRouter:()=>X,NavLink:()=>Le,Prompt:()=>J,Redirect:()=>re,Route:()=>ue,Router:()=>Y,StaticRouter:()=>he,Switch:()=>me,generatePath:()=>ne,matchPath:()=>ie,useHistory:()=>ye,useLocation:()=>be,useParams:()=>we,useRouteMatch:()=>ke,withRouter:()=>ve});var o=n(9497),l=n.n(o),i=n(7862),u=n.n(i);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0;d--){var p=a[d];"."===p?f(a,d):".."===p?(f(a,d),s++):s&&(f(a,d),s--)}if(!i)for(;s--;s)a.unshift("..");!i||""===a[0]||a[0]&&c(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function p(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const h=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=p(t),a=p(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var m=!0,v="Invariant failed";function g(e,t){if(!e){if(m)throw new Error(v);var n="function"==typeof t?t():t,r=n?"".concat(v,": ").concat(n):v;throw new Error(r)}}function y(e){return"/"===e.charAt(0)?e:"/"+e}function b(e){return"/"===e.charAt(0)?e.substr(1):e}function w(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function k(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function x(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function S(e,t,n,r){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=s({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(a.key=n),r?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=d(a.pathname,r.pathname)):a.pathname=r.pathname:a.pathname||(a.pathname="/"),a}function E(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r=0||(a[n]=e[n]);return a}var U=n(63),B=n.n(U),W=1073741823,H="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var V=l().createContext||function(e,t){var n,r,o="__create-react-context-"+function(){var e="__global_unique_id__";return H[e]=(H[e]||0)+1}()+"__",i=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),l=0;lt?n.splice(t,n.length-t,a):n.push(a),f({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=S(e,t,d(),g.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(g.entries[g.index]=a,f({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=g.index+e;return t>=0&&t{"use strict"; /** * @license React * scheduler.production.min.js @@ -24,4 +24,4 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,a=e[r];if(!(0>>1;ro(u,n))so(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else{if(!(so(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var i=Date,u=i.now();t.unstable_now=function(){return i.now()-u}}var s=[],c=[],f=1,d=null,p=3,h=!1,m=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function k(e){if(v=!1,w(e),!m)if(null!==r(s))m=!0,R(x);else{var t=r(c);null!==t&&z(k,t.startTime-e)}}function x(e,n){m=!1,v&&(v=!1,y(_),_=-1),h=!0;var o=p;try{for(w(n),d=r(s);null!==d&&(!(d.expirationTime>n)||e&&!O());){var l=d.callback;if("function"==typeof l){d.callback=null,p=d.priorityLevel;var i=l(d.expirationTime<=n);n=t.unstable_now(),"function"==typeof i?d.callback=i:d===r(s)&&a(s),w(n)}else a(s);d=r(s)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&z(k,f.startTime-n),u=!1}return u}finally{d=null,p=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,C=null,_=-1,P=5,N=-1;function O(){return!(t.unstable_now()-Ne||125l?(e.sortIndex=o,n(c,e),null===r(s)&&e===r(c)&&(v?(y(_),_=-1):v=!0,z(k,o-l))):(e.sortIndex=i,n(s,e),m||h||(m=!0,R(x))),e},t.unstable_shouldYield=O,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},5655:(e,t,n)=>{"use strict";e.exports=n(2197)},7913:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return i},default:function(){return u}});const r=o(n(9497)),a=n(7223);function o(e){return e&&e.__esModule?e:{default:e}}n(7366);const l="banner",i=({alignIcon:e="right",children:t,className:n,icon:o,onClick:i,to:u,type:s="default"})=>{const c=[l,`${l}--type-${s}`,n&&n,u&&`${l}--has-link`,(u||i)&&`${l}--has-action`,o&&`${l}--has-icon`,o&&`${l}--align-icon-${e}`].filter(Boolean).join(" ");let f="div";return i&&!u&&(f="button"),u&&(f=a.Link),r.default.createElement(f,{className:c,onClick:i,to:u||void 0},o&&"left"===e&&r.default.createElement(r.default.Fragment,null,o),r.default.createElement("span",{className:`${l}__content`},t),o&&"right"===e&&r.default.createElement(r.default.Fragment,null,o))},u=i},1925:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return y}});const r=h(n(9497)),a=n(7223),o=d(n(5808)),l=d(n(6277)),i=d(n(2201)),u=d(n(8453)),s=d(n(1137)),c=d(n(2)),f=d(n(6982));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(1117);const m={chevron:o.default,edit:l.default,link:i.default,plus:u.default,swap:s.default,x:c.default},v="btn",g=({children:e,icon:t,showTooltip:n,tooltip:a})=>{const o=m[t];return r.default.createElement(r.Fragment,null,a&&r.default.createElement(f.default,{className:`${v}__tooltip`,show:n},a),r.default.createElement("span",{className:`${v}__content`},e&&r.default.createElement("span",{className:`${v}__label`},e),t&&r.default.createElement("span",{className:`${v}__icon`},(0,r.isValidElement)(t)&&t,o&&r.default.createElement(o,null))))},y=(0,r.forwardRef)(((e,t)=>{const{"aria-label":n,buttonStyle:o="primary",children:l,className:i,disabled:u,el:s="button",icon:c,iconPosition:f="right",iconStyle:d="without-border",id:p,newTab:h,onClick:m,round:y,size:b="medium",to:w,tooltip:k,type:x="button",url:S}=e,[E,C]=r.default.useState(!1);const _={"aria-disabled":u,"aria-label":n,className:[v,i&&i,o&&`${v}--style-${o}`,c&&`${v}--icon`,d&&`${v}--icon-style-${d}`,c&&!l&&`${v}--icon-only`,u&&`${v}--disabled`,y&&`${v}--round`,b&&`${v}--size-${b}`,f&&`${v}--icon-position-${f}`,k&&`${v}--has-tooltip`].filter(Boolean).join(" "),disabled:u,id:p,onClick:u?void 0:function(e){C(!1),"submit"!==x&&m&&e.preventDefault(),m&&m(e)},onMouseEnter:k?()=>C(!0):void 0,onMouseLeave:k?()=>C(!1):void 0,rel:h?"noopener noreferrer":void 0,target:h?"_blank":void 0,type:x};switch(s){case"link":return r.default.createElement(a.Link,{..._,to:w||S},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l));case"anchor":return r.default.createElement("a",{..._,href:S,ref:t},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l));default:const e=s;return r.default.createElement(e,{ref:t,type:"submit",..._},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l))}}))},5061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useDraggableSortable",{enumerable:!0,get:function(){return a}});const r=n(9509),a=e=>{const{disabled:t,id:n}=e,{attributes:a,isDragging:o,listeners:l,setNodeRef:i,transform:u}=(0,r.useSortable)({disabled:t,id:n});return{attributes:{...a,style:{cursor:o?"grabbing":"grab"}},isDragging:o,listeners:l,setNodeRef:i,transform:u&&`translate3d(${u.x}px, ${u.y}px, 0)`}}},9474:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});const r=l(n(9497)),a=n(7223),o=n(5061);function l(e){return e&&e.__esModule?e:{default:e}}n(9279);const i="pill",u=e=>{const{className:t,id:n}=e,{attributes:a,isDragging:l,listeners:u,setNodeRef:c,transform:f}=(0,o.useDraggableSortable)({id:n});return r.default.createElement(s,{...e,className:[l&&`${i}--is-dragging`,t].filter(Boolean).join(" "),elementProps:{...u,...a,ref:c,style:{transform:f}}})},s=e=>{const{alignIcon:t="right","aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,children:s,className:c,draggable:f,elementProps:d,icon:p,onClick:h,pillStyle:m="light",rounded:v,to:g}=e,y=[i,`${i}--style-${m}`,c&&c,g&&`${i}--has-link`,(g||h)&&`${i}--has-action`,p&&`${i}--has-icon`,p&&`${i}--align-icon-${t}`,f&&`${i}--draggable`,v&&`${i}--rounded`].filter(Boolean).join(" ");let b="div";return h&&!g&&(b="button"),g&&(b=a.Link),r.default.createElement(b,{...d,"aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,className:y,onClick:h,to:g||void 0,type:"button"===b?"button":void 0},p&&"left"===t&&r.default.createElement(r.default.Fragment,null,p),s,p&&"right"===t&&r.default.createElement(r.default.Fragment,null,p))},c=e=>{const{draggable:t}=e;return t?r.default.createElement(u,e):r.default.createElement(s,e)}},8507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(4717);const o="popup-button",l=e=>{const{active:t,button:n,buttonType:a,className:l,setActive:i}=e,u=[o,l,`${o}--${a}`].filter(Boolean).join(" "),s=()=>{i(!t)};return"none"===a?null:"custom"===a?r.default.createElement("div",{className:u,onClick:s,onKeyDown:e=>{"Enter"===e.key&&s()},role:"button",tabIndex:0},n):r.default.createElement("button",{className:u,onClick:()=>i(!t),type:"button"},n)}},4929:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return f}});const r=n(9130),a=s(n(9497)),o=i(n(4981)),l=i(n(8507));function i(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(4393);const c="popup",f=e=>{const{boundingRef:t,button:n,buttonClassName:i,buttonType:u="default",caret:s=!0,children:f,className:d,color:p="light",forceOpen:h,horizontalAlign:m="left",initActive:v=!1,onToggleOpen:g,padding:y,render:b,showOnHover:w=!1,showScrollbar:k=!1,size:x="small",verticalAlign:S="top"}=e,{height:E,width:C}=(0,r.useWindowInfo)(),[_,P]=(0,o.default)({root:t?.current||null,rootMargin:"-100px 0px 0px 0px",threshold:1}),N=(0,a.useRef)(null),O=(0,a.useRef)(null),[M,T]=(0,a.useState)(v),[L,R]=(0,a.useState)(S),[z,D]=(0,a.useState)(m),I=(0,a.useCallback)((({horizontal:e=!1,vertical:n=!1})=>{if(O.current){const r=O.current.getBoundingClientRect(),{bottom:a,left:o,right:l,top:i}=r;let u=100,s=window.innerWidth,c=window.innerHeight,f=0;t?.current&&({bottom:c,left:f,right:s,top:u}=t.current.getBoundingClientRect()),e&&(l>s&&o>f?D("right"):oc&&i>u&&R("top"))}}),[t]),j=(0,a.useCallback)((e=>{O.current.contains(e.target)||T(!1)}),[O]);(0,a.useEffect)((()=>{I({horizontal:!0})}),[P,I,C]),(0,a.useEffect)((()=>{I({vertical:!0})}),[P,I,E]),(0,a.useEffect)((()=>("function"==typeof g&&g(M),M?document.addEventListener("mousedown",j):document.removeEventListener("mousedown",j),()=>{document.removeEventListener("mousedown",j)})),[M,j,g]),(0,a.useEffect)((()=>{T(h)}),[h]);const F=[c,d,`${c}--size-${x}`,`${c}--color-${p}`,`${c}--v-align-${L}`,`${c}--h-align-${z}`,M&&`${c}--active`,k&&`${c}--show-scrollbar`].filter(Boolean).join(" ");return a.default.createElement("div",{className:F},a.default.createElement("div",{className:`${c}__wrapper`,ref:N},w?a.default.createElement("div",{className:`${c}__on-hover-watch`,onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1)},a.default.createElement(l.default,{active:M,button:n,buttonType:u,className:i,setActive:T})):a.default.createElement(l.default,{active:M,button:n,buttonType:u,className:i,setActive:T})),a.default.createElement("div",{className:[`${c}__content`,s&&`${c}__content--caret`].filter(Boolean).join(" "),ref:O},a.default.createElement("div",{className:`${c}__wrap`,ref:_},a.default.createElement("div",{className:`${c}__scroll`,style:{padding:y}},b&&b({close:()=>T(!1)}),f&&f))))}},6982:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});const r=i(n(9497)),a=o(n(4981));function o(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function i(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(754);const u=e=>{const{boundingRef:t,children:n,className:o,delay:l=350,show:i=!0}=e,[u,s]=r.default.useState(i),[c,f]=r.default.useState("top"),[d,p]=(0,a.default)({root:t?.current||null,rootMargin:"-145px 0px 0px 100px",threshold:0});return(0,r.useEffect)((()=>{let e;return l&&i?e=setTimeout((()=>{s(i)}),l):s(i),()=>{e&&clearTimeout(e)}}),[i,l]),(0,r.useEffect)((()=>{f(p?.isIntersecting?"top":"bottom")}),[p]),r.default.createElement(r.default.Fragment,null,r.default.createElement("aside",{"aria-hidden":"true",className:["tooltip",o,"tooltip--position-top"].filter(Boolean).join(" "),ref:d},n),r.default.createElement("aside",{className:["tooltip",o,u&&"tooltip--show",`tooltip--position-${c}`].filter(Boolean).join(" ")},n))}},6562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(5809);const o=()=>r.default.createElement("svg",{className:"icon icon--check",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M10.6092 16.0192L17.6477 8.98076",strokeLinecap:"square",strokeLinejoin:"bevel"}),r.default.createElement("path",{className:"stroke",d:"M7.35229 12.7623L10.6092 16.0192",strokeLinecap:"square",strokeLinejoin:"bevel"}))},5808:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(2862);const o=({className:e})=>r.default.createElement("svg",{className:["icon icon--chevron",e].filter(Boolean).join(" "),viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M9 10.5L12.5 14.5L16 10.5"}))},6277:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(5734);const o=()=>r.default.createElement("svg",{className:"icon icon--edit",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("polygon",{className:"fill",points:"16.92 16.86 8.25 16.86 8.25 8.21 12.54 8.21 12.54 6.63 6.68 6.63 6.68 18.43 18.5 18.43 18.5 12.53 16.92 12.53 16.92 16.86"}),r.default.createElement("polygon",{className:"fill",points:"16.31 7.33 17.42 8.44 12.66 13.2 11.51 13.24 11.55 12.09 16.31 7.33"}),r.default.createElement("rect",{className:"fill",height:"1.15",transform:"translate(10.16 -10.48) rotate(45)",width:"1.58",x:"16.94",y:"6.44"}))},2201:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(4574);const o=()=>r.default.createElement("svg",{"aria-hidden":"true",className:"graphic link icon icon--link",fill:"currentColor",focusable:"false",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),r.default.createElement("path",{className:"fill",d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"}))},7771:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3369);const o=()=>r.default.createElement("svg",{className:"icon icon--menu",fill:"none",height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"4.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"11.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"18.5"}))},8453:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3617);const o=()=>r.default.createElement("svg",{className:"icon icon--plus",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"12.4589",x2:"12.4589",y1:"16.9175",y2:"8.50115"}),r.default.createElement("line",{className:"stroke",x1:"8.05164",x2:"16.468",y1:"12.594",y2:"12.594"}))},4954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3174);const o=()=>r.default.createElement("svg",{className:"icon icon--search",fill:"none",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("circle",{className:"stroke",cx:"11.2069",cy:"10.7069",r:"5"}),r.default.createElement("line",{className:"stroke",x1:"14.914",x2:"20.5002",y1:"13.9998",y2:"19.586"}))},1137:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(254);const o=()=>r.default.createElement("svg",{className:"icon icon--swap",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M9.84631 4.78679L6.00004 8.63306L9.84631 12.4793"}),r.default.createElement("path",{className:"stroke",d:"M15.1537 20.1059L19 16.2596L15.1537 12.4133"}),r.default.createElement("line",{className:"stroke",stroke:"#333333",x1:"7",x2:"15",y1:"8.7013",y2:"8.7013"}),r.default.createElement("line",{className:"stroke",x1:"18",x2:"10",y1:"16.1195",y2:"16.1195"}))},2:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7345);const o=({className:e})=>r.default.createElement("svg",{className:[e,"icon icon--x"].filter(Boolean).join(" "),height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"8.74612",x2:"16.3973",y1:"16.347",y2:"8.69584"}),r.default.createElement("line",{className:"stroke",x1:"8.6027",x2:"16.2539",y1:"8.69585",y2:"16.3471"}))},6553:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return r.default},Button:function(){return a.default},Pill:function(){return o.default},Popup:function(){return l.default},Check:function(){return i.default},Chevron:function(){return u.default},Menu:function(){return s.default},Search:function(){return c.default},X:function(){return f.default},MinimalTemplate:function(){return d.default}});const r=p(n(7913)),a=p(n(1925)),o=p(n(9474)),l=p(n(4929)),i=p(n(6562)),u=p(n(5808)),s=p(n(7771)),c=p(n(4954)),f=p(n(2)),d=p(n(3414));function p(e){return e&&e.__esModule?e:{default:e}}},3414:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(2367);const o="template-minimal",l=e=>{const{children:t,className:n,style:a={},width:l="normal"}=e,i=[n,o,`${o}--width-${l}`].filter(Boolean).join(" ");return r.default.createElement("section",{className:i,style:a},r.default.createElement("div",{className:`${o}__wrap`},t))}},4981:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});const r=n(9497),a=({root:e=null,rootMargin:t="0px",threshold:n=0}={})=>{const[a,o]=(0,r.useState)(),[l,i]=(0,r.useState)(null),u=(0,r.useRef)(new window.IntersectionObserver((([e])=>o(e)),{root:e,rootMargin:t,threshold:n}));return(0,r.useEffect)((()=>{const{current:e}=u;return e.disconnect(),l&&e.observe(l),()=>e.disconnect()}),[l]),[i,a]}},9497:e=>{"use strict";e.exports=require("react")}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r=n(6553);module.exports=r})(); \ No newline at end of file + */function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,a=e[r];if(!(0>>1;ro(u,n))so(c,u)?(e[r]=c,e[s]=n,r=s):(e[r]=u,e[i]=n,r=i);else{if(!(so(c,n)))break e;e[r]=c,e[s]=n,r=s}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var i=Date,u=i.now();t.unstable_now=function(){return i.now()-u}}var s=[],c=[],f=1,d=null,p=3,h=!1,m=!1,v=!1,g="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,b="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(s,t)}t=r(c)}}function k(e){if(v=!1,w(e),!m)if(null!==r(s))m=!0,R(x);else{var t=r(c);null!==t&&z(k,t.startTime-e)}}function x(e,n){m=!1,v&&(v=!1,y(_),_=-1),h=!0;var o=p;try{for(w(n),d=r(s);null!==d&&(!(d.expirationTime>n)||e&&!O());){var l=d.callback;if("function"==typeof l){d.callback=null,p=d.priorityLevel;var i=l(d.expirationTime<=n);n=t.unstable_now(),"function"==typeof i?d.callback=i:d===r(s)&&a(s),w(n)}else a(s);d=r(s)}if(null!==d)var u=!0;else{var f=r(c);null!==f&&z(k,f.startTime-n),u=!1}return u}finally{d=null,p=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,C=null,_=-1,P=5,N=-1;function O(){return!(t.unstable_now()-Ne||125l?(e.sortIndex=o,n(c,e),null===r(s)&&e===r(c)&&(v?(y(_),_=-1):v=!0,z(k,o-l))):(e.sortIndex=i,n(s,e),m||h||(m=!0,R(x))),e},t.unstable_shouldYield=O,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},5655:(e,t,n)=>{"use strict";e.exports=n(2197)},7913:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return i},default:function(){return u}});const r=o(n(9497)),a=n(3717);function o(e){return e&&e.__esModule?e:{default:e}}n(7366);const l="banner",i=({alignIcon:e="right",children:t,className:n,icon:o,onClick:i,to:u,type:s="default"})=>{const c=[l,`${l}--type-${s}`,n&&n,u&&`${l}--has-link`,(u||i)&&`${l}--has-action`,o&&`${l}--has-icon`,o&&`${l}--align-icon-${e}`].filter(Boolean).join(" ");let f="div";return i&&!u&&(f="button"),u&&(f=a.Link),r.default.createElement(f,{className:c,onClick:i,to:u||void 0},o&&"left"===e&&r.default.createElement(r.default.Fragment,null,o),r.default.createElement("span",{className:`${l}__content`},t),o&&"right"===e&&r.default.createElement(r.default.Fragment,null,o))},u=i},1925:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return y}});const r=h(n(9497)),a=n(3717),o=d(n(5808)),l=d(n(6277)),i=d(n(2201)),u=d(n(8453)),s=d(n(1137)),c=d(n(2)),f=d(n(6982));function d(e){return e&&e.__esModule?e:{default:e}}function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(p=function(e){return e?n:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=p(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(1117);const m={chevron:o.default,edit:l.default,link:i.default,plus:u.default,swap:s.default,x:c.default},v="btn",g=({children:e,icon:t,showTooltip:n,tooltip:a})=>{const o=m[t];return r.default.createElement(r.Fragment,null,a&&r.default.createElement(f.default,{className:`${v}__tooltip`,show:n},a),r.default.createElement("span",{className:`${v}__content`},e&&r.default.createElement("span",{className:`${v}__label`},e),t&&r.default.createElement("span",{className:`${v}__icon`},(0,r.isValidElement)(t)&&t,o&&r.default.createElement(o,null))))},y=(0,r.forwardRef)(((e,t)=>{const{"aria-label":n,buttonStyle:o="primary",children:l,className:i,disabled:u,el:s="button",icon:c,iconPosition:f="right",iconStyle:d="without-border",id:p,newTab:h,onClick:m,round:y,size:b="medium",to:w,tooltip:k,type:x="button",url:S}=e,[E,C]=r.default.useState(!1);const _={"aria-disabled":u,"aria-label":n,className:[v,i&&i,o&&`${v}--style-${o}`,c&&`${v}--icon`,d&&`${v}--icon-style-${d}`,c&&!l&&`${v}--icon-only`,u&&`${v}--disabled`,y&&`${v}--round`,b&&`${v}--size-${b}`,f&&`${v}--icon-position-${f}`,k&&`${v}--has-tooltip`].filter(Boolean).join(" "),disabled:u,id:p,onClick:u?void 0:function(e){C(!1),"submit"!==x&&m&&e.preventDefault(),m&&m(e)},onMouseEnter:k?()=>C(!0):void 0,onMouseLeave:k?()=>C(!1):void 0,rel:h?"noopener noreferrer":void 0,target:h?"_blank":void 0,type:x};switch(s){case"link":return r.default.createElement(a.Link,{..._,to:w||S},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l));case"anchor":return r.default.createElement("a",{..._,href:S,ref:t},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l));default:const e=s;return r.default.createElement(e,{ref:t,type:"submit",..._},r.default.createElement(g,{icon:c,showTooltip:E,tooltip:k},l))}}))},5061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useDraggableSortable",{enumerable:!0,get:function(){return a}});const r=n(9509),a=e=>{const{disabled:t,id:n}=e,{attributes:a,isDragging:o,listeners:l,setNodeRef:i,transform:u}=(0,r.useSortable)({disabled:t,id:n});return{attributes:{...a,style:{cursor:o?"grabbing":"grab"}},isDragging:o,listeners:l,setNodeRef:i,transform:u&&`translate3d(${u.x}px, ${u.y}px, 0)`}}},9474:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});const r=l(n(9497)),a=n(3717),o=n(5061);function l(e){return e&&e.__esModule?e:{default:e}}n(9279);const i="pill",u=e=>{const{className:t,id:n}=e,{attributes:a,isDragging:l,listeners:u,setNodeRef:c,transform:f}=(0,o.useDraggableSortable)({id:n});return r.default.createElement(s,{...e,className:[l&&`${i}--is-dragging`,t].filter(Boolean).join(" "),elementProps:{...u,...a,ref:c,style:{transform:f}}})},s=e=>{const{alignIcon:t="right","aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,children:s,className:c,draggable:f,elementProps:d,icon:p,onClick:h,pillStyle:m="light",rounded:v,to:g}=e,y=[i,`${i}--style-${m}`,c&&c,g&&`${i}--has-link`,(g||h)&&`${i}--has-action`,p&&`${i}--has-icon`,p&&`${i}--align-icon-${t}`,f&&`${i}--draggable`,v&&`${i}--rounded`].filter(Boolean).join(" ");let b="div";return h&&!g&&(b="button"),g&&(b=a.Link),r.default.createElement(b,{...d,"aria-checked":n,"aria-controls":o,"aria-expanded":l,"aria-label":u,className:y,onClick:h,to:g||void 0,type:"button"===b?"button":void 0},p&&"left"===t&&r.default.createElement(r.default.Fragment,null,p),s,p&&"right"===t&&r.default.createElement(r.default.Fragment,null,p))},c=e=>{const{draggable:t}=e;return t?r.default.createElement(u,e):r.default.createElement(s,e)}},8507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(4717);const o="popup-button",l=e=>{const{active:t,button:n,buttonType:a,className:l,setActive:i}=e,u=[o,l,`${o}--${a}`].filter(Boolean).join(" "),s=()=>{i(!t)};return"none"===a?null:"custom"===a?r.default.createElement("div",{className:u,onClick:s,onKeyDown:e=>{"Enter"===e.key&&s()},role:"button",tabIndex:0},n):r.default.createElement("button",{className:u,onClick:()=>i(!t),type:"button"},n)}},4929:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return f}});const r=n(9130),a=s(n(9497)),o=i(n(4981)),l=i(n(8507));function i(e){return e&&e.__esModule?e:{default:e}}function u(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(u=function(e){return e?n:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=u(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(r,o,l):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(4393);const c="popup",f=e=>{const{boundingRef:t,button:n,buttonClassName:i,buttonType:u="default",caret:s=!0,children:f,className:d,color:p="light",forceOpen:h,horizontalAlign:m="left",initActive:v=!1,onToggleOpen:g,padding:y,render:b,showOnHover:w=!1,showScrollbar:k=!1,size:x="small",verticalAlign:S="top"}=e,{height:E,width:C}=(0,r.useWindowInfo)(),[_,P]=(0,o.default)({root:t?.current||null,rootMargin:"-100px 0px 0px 0px",threshold:1}),N=(0,a.useRef)(null),O=(0,a.useRef)(null),[M,T]=(0,a.useState)(v),[L,R]=(0,a.useState)(S),[z,D]=(0,a.useState)(m),I=(0,a.useCallback)((({horizontal:e=!1,vertical:n=!1})=>{if(O.current){const r=O.current.getBoundingClientRect(),{bottom:a,left:o,right:l,top:i}=r;let u=100,s=window.innerWidth,c=window.innerHeight,f=0;t?.current&&({bottom:c,left:f,right:s,top:u}=t.current.getBoundingClientRect()),e&&(l>s&&o>f?D("right"):oc&&i>u&&R("top"))}}),[t]),j=(0,a.useCallback)((e=>{O.current.contains(e.target)||T(!1)}),[O]);(0,a.useEffect)((()=>{I({horizontal:!0})}),[P,I,C]),(0,a.useEffect)((()=>{I({vertical:!0})}),[P,I,E]),(0,a.useEffect)((()=>("function"==typeof g&&g(M),M?document.addEventListener("mousedown",j):document.removeEventListener("mousedown",j),()=>{document.removeEventListener("mousedown",j)})),[M,j,g]),(0,a.useEffect)((()=>{T(h)}),[h]);const F=[c,d,`${c}--size-${x}`,`${c}--color-${p}`,`${c}--v-align-${L}`,`${c}--h-align-${z}`,M&&`${c}--active`,k&&`${c}--show-scrollbar`].filter(Boolean).join(" ");return a.default.createElement("div",{className:F},a.default.createElement("div",{className:`${c}__wrapper`,ref:N},w?a.default.createElement("div",{className:`${c}__on-hover-watch`,onMouseEnter:()=>T(!0),onMouseLeave:()=>T(!1)},a.default.createElement(l.default,{active:M,button:n,buttonType:u,className:i,setActive:T})):a.default.createElement(l.default,{active:M,button:n,buttonType:u,className:i,setActive:T})),a.default.createElement("div",{className:[`${c}__content`,s&&`${c}__content--caret`].filter(Boolean).join(" "),ref:O},a.default.createElement("div",{className:`${c}__wrap`,ref:_},a.default.createElement("div",{className:`${c}__scroll`,style:{padding:y}},b&&b({close:()=>T(!1)}),f&&f))))}},6982:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});const r=i(n(9497)),a=o(n(4981));function o(e){return e&&e.__esModule?e:{default:e}}function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(l=function(e){return e?n:t})(e)}function i(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=l(t);if(n&&n.has(e))return n.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var i=a?Object.getOwnPropertyDescriptor(e,o):null;i&&(i.get||i.set)?Object.defineProperty(r,o,i):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}n(754);const u=e=>{const{boundingRef:t,children:n,className:o,delay:l=350,show:i=!0}=e,[u,s]=r.default.useState(i),[c,f]=r.default.useState("top"),[d,p]=(0,a.default)({root:t?.current||null,rootMargin:"-145px 0px 0px 100px",threshold:0});return(0,r.useEffect)((()=>{let e;return l&&i?e=setTimeout((()=>{s(i)}),l):s(i),()=>{e&&clearTimeout(e)}}),[i,l]),(0,r.useEffect)((()=>{f(p?.isIntersecting?"top":"bottom")}),[p]),r.default.createElement(r.default.Fragment,null,r.default.createElement("aside",{"aria-hidden":"true",className:["tooltip",o,"tooltip--position-top"].filter(Boolean).join(" "),ref:d},n),r.default.createElement("aside",{className:["tooltip",o,u&&"tooltip--show",`tooltip--position-${c}`].filter(Boolean).join(" ")},n))}},6562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(5809);const o=()=>r.default.createElement("svg",{className:"icon icon--check",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M10.6092 16.0192L17.6477 8.98076",strokeLinecap:"square",strokeLinejoin:"bevel"}),r.default.createElement("path",{className:"stroke",d:"M7.35229 12.7623L10.6092 16.0192",strokeLinecap:"square",strokeLinejoin:"bevel"}))},5808:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(2862);const o=({className:e})=>r.default.createElement("svg",{className:["icon icon--chevron",e].filter(Boolean).join(" "),viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M9 10.5L12.5 14.5L16 10.5"}))},6277:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(5734);const o=()=>r.default.createElement("svg",{className:"icon icon--edit",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("polygon",{className:"fill",points:"16.92 16.86 8.25 16.86 8.25 8.21 12.54 8.21 12.54 6.63 6.68 6.63 6.68 18.43 18.5 18.43 18.5 12.53 16.92 12.53 16.92 16.86"}),r.default.createElement("polygon",{className:"fill",points:"16.31 7.33 17.42 8.44 12.66 13.2 11.51 13.24 11.55 12.09 16.31 7.33"}),r.default.createElement("rect",{className:"fill",height:"1.15",transform:"translate(10.16 -10.48) rotate(45)",width:"1.58",x:"16.94",y:"6.44"}))},2201:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(4574);const o=()=>r.default.createElement("svg",{"aria-hidden":"true",className:"graphic link icon icon--link",fill:"currentColor",focusable:"false",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),r.default.createElement("path",{className:"fill",d:"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"}))},7771:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3369);const o=()=>r.default.createElement("svg",{className:"icon icon--menu",fill:"none",height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"4.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"11.5"}),r.default.createElement("rect",{className:"fill",height:"2",width:"18",x:"3.5",y:"18.5"}))},8453:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3617);const o=()=>r.default.createElement("svg",{className:"icon icon--plus",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"12.4589",x2:"12.4589",y1:"16.9175",y2:"8.50115"}),r.default.createElement("line",{className:"stroke",x1:"8.05164",x2:"16.468",y1:"12.594",y2:"12.594"}))},4954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(3174);const o=()=>r.default.createElement("svg",{className:"icon icon--search",fill:"none",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("circle",{className:"stroke",cx:"11.2069",cy:"10.7069",r:"5"}),r.default.createElement("line",{className:"stroke",x1:"14.914",x2:"20.5002",y1:"13.9998",y2:"19.586"}))},1137:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(254);const o=()=>r.default.createElement("svg",{className:"icon icon--swap",viewBox:"0 0 25 25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("path",{className:"stroke",d:"M9.84631 4.78679L6.00004 8.63306L9.84631 12.4793"}),r.default.createElement("path",{className:"stroke",d:"M15.1537 20.1059L19 16.2596L15.1537 12.4133"}),r.default.createElement("line",{className:"stroke",stroke:"#333333",x1:"7",x2:"15",y1:"8.7013",y2:"8.7013"}),r.default.createElement("line",{className:"stroke",x1:"18",x2:"10",y1:"16.1195",y2:"16.1195"}))},2:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(7345);const o=({className:e})=>r.default.createElement("svg",{className:[e,"icon icon--x"].filter(Boolean).join(" "),height:"25",viewBox:"0 0 25 25",width:"25",xmlns:"http://www.w3.org/2000/svg"},r.default.createElement("line",{className:"stroke",x1:"8.74612",x2:"16.3973",y1:"16.347",y2:"8.69584"}),r.default.createElement("line",{className:"stroke",x1:"8.6027",x2:"16.2539",y1:"8.69585",y2:"16.3471"}))},6553:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{Banner:function(){return r.default},Button:function(){return a.default},Pill:function(){return o.default},Popup:function(){return l.default},Check:function(){return i.default},Chevron:function(){return u.default},Menu:function(){return s.default},Search:function(){return c.default},X:function(){return f.default},MinimalTemplate:function(){return d.default}});const r=p(n(7913)),a=p(n(1925)),o=p(n(9474)),l=p(n(4929)),i=p(n(6562)),u=p(n(5808)),s=p(n(7771)),c=p(n(4954)),f=p(n(2)),d=p(n(3414));function p(e){return e&&e.__esModule?e:{default:e}}},3414:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});const r=a(n(9497));function a(e){return e&&e.__esModule?e:{default:e}}n(2367);const o="template-minimal",l=e=>{const{children:t,className:n,style:a={},width:l="normal"}=e,i=[n,o,`${o}--width-${l}`].filter(Boolean).join(" ");return r.default.createElement("section",{className:i,style:a},r.default.createElement("div",{className:`${o}__wrap`},t))}},4981:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});const r=n(9497),a=({root:e=null,rootMargin:t="0px",threshold:n=0}={})=>{const[a,o]=(0,r.useState)(),[l,i]=(0,r.useState)(null),u=(0,r.useRef)(new window.IntersectionObserver((([e])=>o(e)),{root:e,rootMargin:t,threshold:n}));return(0,r.useEffect)((()=>{const{current:e}=u;return e.disconnect(),l&&e.observe(l),()=>e.disconnect()}),[l]),[i,a]}},9497:e=>{"use strict";e.exports=require("react")}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r=n(6553);module.exports=r})(); \ No newline at end of file diff --git a/packages/payload/components/utilities.d.ts b/packages/payload/components/utilities.d.ts index 4e6ae5fb2..be6077b9a 100644 --- a/packages/payload/components/utilities.d.ts +++ b/packages/payload/components/utilities.d.ts @@ -1,7 +1,9 @@ +export { default as buildStateFromSchema } from '../dist/admin/components/forms/Form/buildStateFromSchema'; export { useAuth } from '../dist/admin/components/utilities/Auth'; export { useConfig } from '../dist/admin/components/utilities/Config'; export { useDocumentInfo } from '../dist/admin/components/utilities/DocumentInfo'; export { useEditDepth } from '../dist/admin/components/utilities/EditDepth'; export { useLocale } from '../dist/admin/components/utilities/Locale'; export { default as Meta } from '../dist/admin/components/utilities/Meta'; +export { withMergedProps } from '../dist/admin/components/utilities/WithMergedProps'; //# sourceMappingURL=utilities.d.ts.map \ No newline at end of file diff --git a/packages/payload/components/utilities.js b/packages/payload/components/utilities.js index 871ca5788..eb2050cf8 100644 --- a/packages/payload/components/utilities.js +++ b/packages/payload/components/utilities.js @@ -9,6 +9,9 @@ function _export(target, all) { }); } _export(exports, { + buildStateFromSchema: function() { + return _buildStateFromSchema.default; + }, useAuth: function() { return _Auth.useAuth; }, @@ -26,18 +29,23 @@ _export(exports, { }, Meta: function() { return _Meta.default; + }, + withMergedProps: function() { + return _WithMergedProps.withMergedProps; } }); +const _buildStateFromSchema = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/forms/Form/buildStateFromSchema")); const _Auth = require("../dist/admin/components/utilities/Auth"); const _Config = require("../dist/admin/components/utilities/Config"); const _DocumentInfo = require("../dist/admin/components/utilities/DocumentInfo"); const _EditDepth = require("../dist/admin/components/utilities/EditDepth"); const _Locale = require("../dist/admin/components/utilities/Locale"); const _Meta = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/utilities/Meta")); +const _WithMergedProps = require("../dist/admin/components/utilities/WithMergedProps"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHVzZUF1dGggfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9BdXRoJ1xuZXhwb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvQ29uZmlnJ1xuZXhwb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvRG9jdW1lbnRJbmZvJ1xuZXhwb3J0IHsgdXNlRWRpdERlcHRoIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvRWRpdERlcHRoJ1xuZXhwb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvTG9jYWxlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZXRhIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvTWV0YSdcbiJdLCJuYW1lcyI6WyJ1c2VBdXRoIiwidXNlQ29uZmlnIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlRWRpdERlcHRoIiwidXNlTG9jYWxlIiwiTWV0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBU0EsT0FBTztlQUFQQSxhQUFPOztJQUNQQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxlQUFlO2VBQWZBLDZCQUFlOztJQUNmQyxZQUFZO2VBQVpBLHVCQUFZOztJQUNaQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNFQyxJQUFJO2VBQUpBLGFBQUk7OztzQkFMQTt3QkFDRTs4QkFDTTsyQkFDSDt3QkFDSDs2REFDTSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgYnVpbGRTdGF0ZUZyb21TY2hlbWEgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEnXG5leHBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvQXV0aCdcbmV4cG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0NvbmZpZydcbmV4cG9ydCB7IHVzZURvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmV4cG9ydCB7IHVzZUVkaXREZXB0aCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0VkaXREZXB0aCdcbmV4cG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0xvY2FsZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWV0YSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL01ldGEnXG5leHBvcnQgeyB3aXRoTWVyZ2VkUHJvcHMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9XaXRoTWVyZ2VkUHJvcHMnXG4iXSwibmFtZXMiOlsiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJ1c2VBdXRoIiwidXNlQ29uZmlnIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlRWRpdERlcHRoIiwidXNlTG9jYWxlIiwiTWV0YSIsIndpdGhNZXJnZWRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLG9CQUFvQjtlQUFwQkEsNkJBQW9COztJQUMvQkMsT0FBTztlQUFQQSxhQUFPOztJQUNQQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxlQUFlO2VBQWZBLDZCQUFlOztJQUNmQyxZQUFZO2VBQVpBLHVCQUFZOztJQUNaQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNFQyxJQUFJO2VBQUpBLGFBQUk7O0lBQ2ZDLGVBQWU7ZUFBZkEsZ0NBQWU7Ozs2RUFQd0I7c0JBQ3hCO3dCQUNFOzhCQUNNOzJCQUNIO3dCQUNIOzZEQUNNO2lDQUNBIn0= \ No newline at end of file diff --git a/packages/payload/config.d.ts b/packages/payload/config.d.ts index ef05a08a6..00296950b 100644 --- a/packages/payload/config.d.ts +++ b/packages/payload/config.d.ts @@ -1,5 +1,6 @@ export { buildConfig } from './dist/config/build'; export * from './dist/config/types'; +export { type FieldTypes, fieldTypes } from './dist/admin/components/forms/field-types'; export { defaults } from './dist/config/defaults'; export { sanitizeConfig } from './dist/config/sanitize'; //# sourceMappingURL=config.d.ts.map \ No newline at end of file diff --git a/packages/payload/config.js b/packages/payload/config.js index 08039dc4c..d43fec7e2 100644 --- a/packages/payload/config.js +++ b/packages/payload/config.js @@ -12,6 +12,9 @@ _export(exports, { buildConfig: function() { return _build.buildConfig; }, + fieldTypes: function() { + return _fieldtypes.fieldTypes; + }, defaults: function() { return _defaults.defaults; }, @@ -21,6 +24,7 @@ _export(exports, { }); const _build = require("./dist/config/build"); _export_star(require("./dist/config/types"), exports); +const _fieldtypes = require("./dist/admin/components/forms/field-types"); const _defaults = require("./dist/config/defaults"); const _sanitize = require("./dist/config/sanitize"); function _export_star(from, to) { @@ -37,4 +41,4 @@ function _export_star(from, to) { return from; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9idWlsZCdcbmV4cG9ydCAqIGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdHMnXG5cbmV4cG9ydCB7IHNhbml0aXplQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL3Nhbml0aXplJ1xuIl0sIm5hbWVzIjpbImJ1aWxkQ29uZmlnIiwiZGVmYXVsdHMiLCJzYW5pdGl6ZUNvbmZpZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBU0EsV0FBVztlQUFYQSxrQkFBVzs7SUFHWEMsUUFBUTtlQUFSQSxrQkFBUTs7SUFFUkMsY0FBYztlQUFkQSx3QkFBYzs7O3VCQUxLO3FCQUNkOzBCQUVXOzBCQUVNIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL2NvbmZpZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9idWlsZCdcbmV4cG9ydCAqIGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgdHlwZSBGaWVsZFR5cGVzLCBmaWVsZFR5cGVzIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9maWVsZC10eXBlcydcblxuZXhwb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdHMnXG5leHBvcnQgeyBzYW5pdGl6ZUNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy9zYW5pdGl6ZSdcbiJdLCJuYW1lcyI6WyJidWlsZENvbmZpZyIsImZpZWxkVHlwZXMiLCJkZWZhdWx0cyIsInNhbml0aXplQ29uZmlnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUFTQSxXQUFXO2VBQVhBLGtCQUFXOztJQUdNQyxVQUFVO2VBQVZBLHNCQUFVOztJQUUzQkMsUUFBUTtlQUFSQSxrQkFBUTs7SUFDUkMsY0FBYztlQUFkQSx3QkFBYzs7O3VCQU5LO3FCQUNkOzRCQUU4QjswQkFFbkI7MEJBQ00ifQ== \ No newline at end of file diff --git a/packages/payload/package.json b/packages/payload/package.json index dda858014..b1fec6e39 100644 --- a/packages/payload/package.json +++ b/packages/payload/package.json @@ -14,14 +14,15 @@ "require": "./src/index.ts", "types": "./src/index.ts" }, + "./scss": { + "import": "./src/exports/scss.scss", + "require": "./src/exports/scss.scss", + "default": "./src/exports/scss.scss" + }, "./*": { "import": "./src/exports/*.ts", "require": "./src/exports/*.ts", "types": "./src/exports/*.ts" - }, - "./scss": { - "import": "./src/exports/scss.scss", - "require": "./src/exports/scss.scss" } }, "scripts": { @@ -129,10 +130,8 @@ "scheduler": "0.23.0", "scmp": "2.1.0", "sharp": "0.31.3", - "slate": "0.91.4", - "slate-history": "0.86.0", - "slate-hyperscript": "0.81.3", - "slate-react": "0.92.0", + "swc-loader": "0.2.3", + "terser-webpack-plugin": "5.3.9", "ts-essentials": "7.0.3", "use-context-selector": "1.4.1", "uuid": "8.3.2" diff --git a/packages/payload/src/admin/components/elements/EditMany/index.tsx b/packages/payload/src/admin/components/elements/EditMany/index.tsx index f59846d8b..acb9589eb 100644 --- a/packages/payload/src/admin/components/elements/EditMany/index.tsx +++ b/packages/payload/src/admin/components/elements/EditMany/index.tsx @@ -9,7 +9,7 @@ import Form from '../../forms/Form' import { useForm } from '../../forms/Form/context' import RenderFields from '../../forms/RenderFields' import FormSubmit from '../../forms/Submit' -import fieldTypes from '../../forms/field-types' +import { fieldTypes } from '../../forms/field-types' import X from '../../icons/X' import { useAuth } from '../../utilities/Auth' import { useConfig } from '../../utilities/Config' diff --git a/packages/payload/src/admin/components/forms/Form/fieldReducer.ts b/packages/payload/src/admin/components/forms/Form/fieldReducer.ts index 21e60cca8..5548baba6 100644 --- a/packages/payload/src/admin/components/forms/Form/fieldReducer.ts +++ b/packages/payload/src/admin/components/forms/Form/fieldReducer.ts @@ -3,7 +3,7 @@ import equal from 'deep-equal' import type { FieldAction, Fields, FormField } from './types' -import deepCopyObject from '../../../../utilities/deepCopyObject' +import { deepCopyObject } from '../../../../utilities/deepCopyObject' import getSiblingData from './getSiblingData' import reduceFieldsToValues from './reduceFieldsToValues' import { flattenRows, separateRows } from './rows' diff --git a/packages/payload/src/admin/components/forms/RenderFields/filterFields.tsx b/packages/payload/src/admin/components/forms/RenderFields/filterFields.tsx index 06626f791..472927002 100644 --- a/packages/payload/src/admin/components/forms/RenderFields/filterFields.tsx +++ b/packages/payload/src/admin/components/forms/RenderFields/filterFields.tsx @@ -69,12 +69,12 @@ export const filterFields = (args: { if (FieldComponent) { acc.push({ + name: 'name' in field ? field.name : '', FieldComponent, field, fieldIsPresentational, fieldPermissions, isFieldAffectingData, - name: 'name' in field ? field.name : '', readOnly, }) } diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/index.tsx b/packages/payload/src/admin/components/forms/field-types/RichText/index.tsx index 35e33425c..4400bb931 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/index.tsx +++ b/packages/payload/src/admin/components/forms/field-types/RichText/index.tsx @@ -1,16 +1,15 @@ -import React, { Suspense, lazy } from 'react' +import React from 'react' -import type { Props } from './types' +import type { RichTextField } from '../../../../../fields/config/types' +import type { RichTextAdapter } from './types' -import { ShimmerEffect } from '../../../elements/ShimmerEffect' +import { useConfig } from '../../../utilities/Config' -// @ts-expect-error Just TypeScript being broken // TODO: Open TypeScript issue -const RichText = lazy(() => import('./RichText')) +const RichText: React.FC = (props) => { + const config = useConfig() + // eslint-disable-next-line react/destructuring-assignment + const editor: RichTextAdapter = props.editor || config.editor + return +} -const RichTextField: React.FC = (props) => ( - }> - - -) - -export default RichTextField +export default RichText diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/types.ts b/packages/payload/src/admin/components/forms/field-types/RichText/types.ts index ae2b81903..91e22cfee 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/types.ts +++ b/packages/payload/src/admin/components/forms/field-types/RichText/types.ts @@ -1,17 +1,24 @@ +import type { PayloadRequest } from '../../../../../express/types' import type { RichTextField } from '../../../../../fields/config/types' +import type { CellComponentProps } from '../../../views/collections/List/Cell/types' -export type Props = Omit & { +export type RichTextFieldProps = Omit< + RichTextField, + 'type' +> & { path?: string } -export type TextNode = { [x: string]: unknown; text: string } - -export type ElementNode = { children: (ElementNode | TextNode)[]; type?: string } - -export function nodeIsTextNode(node: ElementNode | TextNode): node is TextNode { - return 'text' in node -} - -export interface RichTextAdapter { - component: React.FC +export type RichTextAdapter = { + CellComponent: React.FC>> + FieldComponent: React.FC> + afterReadPromise?: (data: { + currentDepth?: number + depth: number + field: RichTextField + overrideAccess?: boolean + req: PayloadRequest + showHiddenFields: boolean + siblingDoc: Record + }) => Promise | null } diff --git a/packages/payload/src/admin/components/forms/field-types/index.tsx b/packages/payload/src/admin/components/forms/field-types/index.tsx index 80c5dd7c7..a2550341e 100644 --- a/packages/payload/src/admin/components/forms/field-types/index.tsx +++ b/packages/payload/src/admin/components/forms/field-types/index.tsx @@ -50,7 +50,7 @@ export type FieldTypes = { upload: React.ComponentType } -const fieldTypes: FieldTypes = { +export const fieldTypes: FieldTypes = { array, blocks, checkbox, @@ -76,5 +76,3 @@ const fieldTypes: FieldTypes = { ui, upload, } - -export default fieldTypes diff --git a/packages/payload/src/admin/components/utilities/WithMergedProps/index.tsx b/packages/payload/src/admin/components/utilities/WithMergedProps/index.tsx new file mode 100644 index 000000000..35d3c563c --- /dev/null +++ b/packages/payload/src/admin/components/utilities/WithMergedProps/index.tsx @@ -0,0 +1,36 @@ +import { deepMerge } from 'payload/utilities' +import React from 'react' + +/** + * Creates a higher-order component (HOC) that merges predefined properties (`toMergeIntoProps`) + * with any properties passed to the resulting component. + * + * Use this when you want to pre-specify some props for a component, while also allowing users to + * pass in their own props. The HOC ensures the passed props and predefined props are combined before + * rendering the original component. + * + * @example + * const PredefinedComponent = getMergedPropsComponent({ + * Component: OriginalComponent, + * toMergeIntoProps: { someExtraValue: 5 } + * }); + * // Using will result in + * // + * + * @returns A higher-order component with combined properties. + */ +export function withMergedProps({ + Component, + toMergeIntoProps, +}: { + Component: React.FC + toMergeIntoProps: ToMergeIntoProps +}): React.FC { + // A wrapper around the args.Component to inject the args.toMergeArgs as props, which are merged with the passed props + const MergedPropsComponent: React.FC = (passedProps) => { + const mergedProps = deepMerge(toMergeIntoProps, passedProps) + return + } + + return MergedPropsComponent +} diff --git a/packages/payload/src/admin/components/views/Account/Default.tsx b/packages/payload/src/admin/components/views/Account/Default.tsx index 2c623fde8..0d123180d 100644 --- a/packages/payload/src/admin/components/views/Account/Default.tsx +++ b/packages/payload/src/admin/components/views/Account/Default.tsx @@ -12,7 +12,7 @@ import ReactSelect from '../../elements/ReactSelect' import Form from '../../forms/Form' import Label from '../../forms/Label' import RenderFields from '../../forms/RenderFields' -import fieldTypes from '../../forms/field-types' +import { fieldTypes } from '../../forms/field-types' import LeaveWithoutSaving from '../../modals/LeaveWithoutSaving' import { useAuth } from '../../utilities/Auth' import Meta from '../../utilities/Meta' diff --git a/packages/payload/src/admin/components/views/CreateFirstUser/index.tsx b/packages/payload/src/admin/components/views/CreateFirstUser/index.tsx index 6728c45fb..ebb74e1af 100644 --- a/packages/payload/src/admin/components/views/CreateFirstUser/index.tsx +++ b/packages/payload/src/admin/components/views/CreateFirstUser/index.tsx @@ -7,7 +7,7 @@ import type { Props } from './types' import Form from '../../forms/Form' import RenderFields from '../../forms/RenderFields' import FormSubmit from '../../forms/Submit' -import fieldTypes from '../../forms/field-types' +import { fieldTypes } from '../../forms/field-types' import MinimalTemplate from '../../templates/Minimal' import { useAuth } from '../../utilities/Auth' import { useConfig } from '../../utilities/Config' diff --git a/packages/payload/src/admin/components/views/Global/Default/index.tsx b/packages/payload/src/admin/components/views/Global/Default/index.tsx index 9b248987f..2f90925df 100644 --- a/packages/payload/src/admin/components/views/Global/Default/index.tsx +++ b/packages/payload/src/admin/components/views/Global/Default/index.tsx @@ -8,7 +8,7 @@ import { DocumentControls } from '../../../elements/DocumentControls' import { Gutter } from '../../../elements/Gutter' import ViewDescription from '../../../elements/ViewDescription' import RenderFields from '../../../forms/RenderFields' -import fieldTypes from '../../../forms/field-types' +import { fieldTypes } from '../../../forms/field-types' import LeaveWithoutSaving from '../../../modals/LeaveWithoutSaving' import Meta from '../../../utilities/Meta' import './index.scss' diff --git a/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts b/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts deleted file mode 100644 index a65d2f0a6..000000000 --- a/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Text } from 'slate' - -export const richTextToHTML = (content: unknown): string => { - if (Array.isArray(content)) { - return content.reduce((output, node) => { - const isTextNode = Text.isText(node) - - const { bold, code, italic, strikethrough, text, underline } = node - - if (isTextNode) { - // convert straight single quotations to curly - // "\u201C" is starting double curly - // "\u201D" is ending double curly - let html = text?.replace(/'/g, '\u2019') // single quotes - - if (bold) { - html = `${html}` - } - - if (code) { - html = `${html}` - } - - if (italic) { - html = `${html}` - } - - if (underline) { - html = `${html}` - } - - if (strikethrough) { - html = `${html}` - } - - return `${output}${html}` - } - - if (node) { - let nodeHTML - switch (node.type) { - case 'h1': - nodeHTML = `

${richTextToHTML(node.children)}

` - break - - case 'h2': - nodeHTML = `

${richTextToHTML(node.children)}

` - break - - case 'h3': - nodeHTML = `

${richTextToHTML(node.children)}

` - break - - case 'h4': - nodeHTML = `

${richTextToHTML(node.children)}

` - break - - case 'h5': - nodeHTML = `
${richTextToHTML(node.children)}
` - break - - case 'h6': - nodeHTML = `
${richTextToHTML(node.children)}
` - break - - case 'blockquote': - nodeHTML = `
${richTextToHTML(node.children)}
` - break - - case 'ul': - nodeHTML = `
    ${richTextToHTML(node.children)}
` - break - - case 'ol': - nodeHTML = `
    ${richTextToHTML(node.children)}
` - break - - case 'li': - nodeHTML = `
  • ${richTextToHTML(node.children)}
  • ` - break - - case 'link': - nodeHTML = `${richTextToHTML(node.children)}` - break - - case 'relationship': - nodeHTML = `Relationship to ${node.relationTo}: ${node.value}
    ` - break - - case 'upload': - nodeHTML = `${node.relationTo} Upload: ${node.value}
    ` - break - - case 'p': - case undefined: - nodeHTML = `

    ${richTextToHTML(node.children)}

    ` - break - - default: - nodeHTML = `${node.type}:
    ${JSON.stringify(node)}` - break - } - - return `${output}${nodeHTML}\n` - } - - return output - }, '') - } - - return '' -} diff --git a/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/stringifyRichText.ts b/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/stringifyRichText.ts deleted file mode 100644 index 8c7fd0bb2..000000000 --- a/packages/payload/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/stringifyRichText.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Text } from 'slate' - -export const stringifyRichText = (content: unknown): string => { - if (Array.isArray(content)) { - return content.reduce((output, node) => { - const isTextNode = Text.isText(node) - - const { text } = node - - if (isTextNode) { - // convert straight single quotations to curly - // "\u201C" is starting double curly - // "\u201D" is ending double curly - const sanitizedText = text?.replace(/'/g, '\u2019') // single quotes - return `${output}${sanitizedText}` - } - - if (node) { - let nodeHTML - switch (node.type) { - case 'h1': - case 'h2': - case 'h3': - case 'h4': - case 'h5': - case 'h6': - case 'li': - case 'p': - case undefined: - nodeHTML = `${stringifyRichText(node.children)}\n` - break - - case 'ul': - case 'ol': - nodeHTML = `${stringifyRichText(node.children)}\n\n` - break - - case 'link': - nodeHTML = `${stringifyRichText(node.children)}` - break - - case 'relationship': - nodeHTML = `Relationship to ${node.relationTo}: ${node?.value?.id}\n\n` - break - - case 'upload': - nodeHTML = `${node.relationTo} Upload: ${node?.value?.id}\n\n` - break - - default: - nodeHTML = `${node.type}: ${JSON.stringify(node)}\n\n` - break - } - - return `${output}${nodeHTML}` - } - - return output - }, '') - } - - return '' -} diff --git a/packages/payload/src/admin/components/views/collections/Edit/Default/index.tsx b/packages/payload/src/admin/components/views/collections/Edit/Default/index.tsx index e13dc78c9..8afdcf52d 100644 --- a/packages/payload/src/admin/components/views/collections/Edit/Default/index.tsx +++ b/packages/payload/src/admin/components/views/collections/Edit/Default/index.tsx @@ -8,7 +8,7 @@ import { DocumentControls } from '../../../../elements/DocumentControls' import { Gutter } from '../../../../elements/Gutter' import RenderFields from '../../../../forms/RenderFields' import { filterFields } from '../../../../forms/RenderFields/filterFields' -import fieldTypes from '../../../../forms/field-types' +import { fieldTypes } from '../../../../forms/field-types' import LeaveWithoutSaving from '../../../../modals/LeaveWithoutSaving' import Meta from '../../../../utilities/Meta' import Auth from '../Auth' diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Array/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Array/index.tsx index dbeb7bb0d..0ab678157 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Array/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Array/index.tsx @@ -2,15 +2,14 @@ import React from 'react' import { useTranslation } from 'react-i18next' import type { ArrayField } from '../../../../../../../../fields/config/types' +import type { CellComponentProps } from '../../types' import { getTranslation } from '../../../../../../../../utilities/getTranslation' -type Props = { - data: Record - field: ArrayField -} - -const ArrayCell: React.FC = ({ data, field }) => { +const ArrayCell: React.FC>> = ({ + data, + field, +}) => { const { i18n, t } = useTranslation('general') const arrayFields = data ?? [] const label = `${arrayFields.length} ${getTranslation(field?.labels?.plural || t('rows'), i18n)}` diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Blocks/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Blocks/index.tsx index 95a781ee4..fa366c869 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Blocks/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Blocks/index.tsx @@ -2,15 +2,11 @@ import React from 'react' import { useTranslation } from 'react-i18next' import type { BlockField } from '../../../../../../../../fields/config/types' +import type { CellComponentProps } from '../../types' import { getTranslation } from '../../../../../../../../utilities/getTranslation' -type Props = { - data: any - field: BlockField -} - -const BlocksCell: React.FC = ({ data, field }: Props) => { +const BlocksCell: React.FC> = ({ data, field }) => { const { i18n, t } = useTranslation('fields') const selectedBlocks = data ? data.map(({ blockType }) => blockType) : [] const blockLabels = field.blocks.map((s) => ({ diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Checkbox/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Checkbox/index.tsx index 5efbd0abe..723434060 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Checkbox/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Checkbox/index.tsx @@ -1,9 +1,12 @@ import React from 'react' +import type { CheckboxField } from '../../../../../../../../exports/types' +import type { CellComponentProps } from '../../types' + import './index.scss' // Handles boolean values -const Checkbox = ({ data }) => ( +const Checkbox: React.FC> = ({ data }) => ( {JSON.stringify(data)} diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Code/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Code/index.tsx index 8a1c39246..c27c5e6d0 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Code/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Code/index.tsx @@ -1,8 +1,11 @@ import React from 'react' +import type { CodeField } from '../../../../../../../../exports/types' +import type { CellComponentProps } from '../../types' + import './index.scss' -const CodeCell = ({ data }) => { +const CodeCell: React.FC> = ({ data }) => { const textToShow = data.length > 100 ? `${data.substring(0, 100)}\u2026` : data return ( diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Date/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Date/index.tsx index 80b83f915..ad9181455 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Date/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Date/index.tsx @@ -1,10 +1,13 @@ import React from 'react' import { useTranslation } from 'react-i18next' +import type { DateField } from '../../../../../../../../exports/types' +import type { CellComponentProps } from '../../types' + import { formatDate } from '../../../../../../../utilities/formatDate' import { useConfig } from '../../../../../../utilities/Config' -const DateCell = ({ data, field }) => { +const DateCell: React.FC> = ({ data, field }) => { const { admin: { dateFormat: dateFormatFromConfig }, } = useConfig() diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/File/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/File/index.tsx index 73f833494..0550f9741 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/File/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/File/index.tsx @@ -1,11 +1,13 @@ import React from 'react' +import type { CellComponentProps } from '../../types' + import Thumbnail from '../../../../../../elements/Thumbnail' import './index.scss' const baseClass = 'file' -const File = ({ collection, data, rowData }) => { +const File: React.FC> = ({ collection, data, rowData }) => { return (
    { +const JSONCell: React.FC> = ({ data }) => { const textToShow = data.length > 100 ? `${data.substring(0, 100)}\u2026` : data return ( diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Relationship/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Relationship/index.tsx index 3993c513b..a2c270238 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Relationship/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Relationship/index.tsx @@ -1,7 +1,8 @@ import React, { useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' -import type { Props as DefaultCellProps } from '../../types' +import type { RelationshipField } from '../../../../../../../../exports/types' +import type { CellComponentProps } from '../../types' import { getTranslation } from '../../../../../../../../utilities/getTranslation' import useIntersect from '../../../../../../../hooks/useIntersect' @@ -14,10 +15,7 @@ type Value = { relationTo: string; value: number | string } const baseClass = 'relationship-cell' const totalToShow = 3 -const RelationshipCell: React.FC<{ - data: DefaultCellProps['cellData'] - field: DefaultCellProps['field'] -}> = (props) => { +const RelationshipCell: React.FC> = (props) => { const { data: cellData, field } = props const config = useConfig() const { collections, routes } = config diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Richtext/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Richtext/index.tsx index 694f7f0f9..8b0b218db 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Richtext/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Richtext/index.tsx @@ -1,10 +1,17 @@ import React from 'react' -const RichTextCell = ({ data }) => { - const flattenedText = data?.map((i) => i?.children?.map((c) => c.text)).join(' ') - const textToShow = - flattenedText?.length > 100 ? `${flattenedText.slice(0, 100)}\u2026` : flattenedText - return {textToShow} +import type { RichTextField } from '../../../../../../../../fields/config/types' +import type { RichTextAdapter } from '../../../../../../forms/field-types/RichText/types' +import type { CellComponentProps } from '../../types' + +import { useConfig } from '../../../../../../utilities/Config' + +const RichTextCell: React.FC> = (props) => { + const config = useConfig() + // eslint-disable-next-line react/destructuring-assignment + const editor: RichTextAdapter = props.field.editor || config.editor + + return } export default RichTextCell diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Select/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Select/index.tsx index 35d3f7e93..38a710b90 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Select/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Select/index.tsx @@ -2,16 +2,12 @@ import React from 'react' import { useTranslation } from 'react-i18next' import type { OptionObject, SelectField } from '../../../../../../../../fields/config/types' +import type { CellComponentProps } from '../../types' import { optionsAreObjects } from '../../../../../../../../fields/config/types' import { getTranslation } from '../../../../../../../../utilities/getTranslation' -type Props = { - data: any - field: SelectField -} - -const SelectCell: React.FC = ({ data, field }: Props) => { +const SelectCell: React.FC> = ({ data, field }) => { const { i18n } = useTranslation() const findLabel = (items: string[]) => items diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Textarea/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Textarea/index.tsx index 86ce20789..5d9922b01 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Textarea/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/field-types/Textarea/index.tsx @@ -1,6 +1,9 @@ import React from 'react' -const TextareaCell = ({ data }) => { +import type { TextareaField } from '../../../../../../../../exports/types' +import type { CellComponentProps } from '../../types' + +const TextareaCell: React.FC> = ({ data }) => { const textToShow = data?.length > 100 ? `${data.substr(0, 100)}\u2026` : data return {textToShow} } diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/index.tsx b/packages/payload/src/admin/components/views/collections/List/Cell/index.tsx index f8eeec7d7..207383eb9 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/index.tsx +++ b/packages/payload/src/admin/components/views/collections/List/Cell/index.tsx @@ -2,7 +2,7 @@ import React from 'react' import { useTranslation } from 'react-i18next' import { Link } from 'react-router-dom' -import type { Props } from './types' +import type { CellComponentProps, Props } from './types' import { fieldAffectsData } from '../../../../../../fields/config/types' import { getTranslation } from '../../../../../../utilities/getTranslation' @@ -52,7 +52,7 @@ const DefaultCell: React.FC = (props) => { } } - let CellComponent = cellData && cellComponents[field.type] + let CellComponent: React.FC = cellData && cellComponents[field.type] if (!CellComponent) { if (collection.upload && fieldAffectsData(field) && field.name === 'filename') { @@ -100,16 +100,18 @@ const Cell: React.FC = (props) => { ) } diff --git a/packages/payload/src/admin/components/views/collections/List/Cell/types.ts b/packages/payload/src/admin/components/views/collections/List/Cell/types.ts index a996c5bfc..4040245eb 100644 --- a/packages/payload/src/admin/components/views/collections/List/Cell/types.ts +++ b/packages/payload/src/admin/components/views/collections/List/Cell/types.ts @@ -13,3 +13,11 @@ export type Props = { [path: string]: unknown } } + +export type CellComponentProps = Pick< + Props, + 'collection' | 'rowData' +> & { + data: Data + field: Field +} diff --git a/packages/payload/src/config/defaults.ts b/packages/payload/src/config/defaults.ts index 5f9a3eda8..f5d329227 100644 --- a/packages/payload/src/config/defaults.ts +++ b/packages/payload/src/config/defaults.ts @@ -2,7 +2,7 @@ import path from 'path' import type { Config } from './types' -export const defaults: Omit = { +export const defaults: Omit = { admin: { avatar: 'default', buildPath: path.resolve(process.cwd(), './build'), diff --git a/packages/payload/src/config/schema.ts b/packages/payload/src/config/schema.ts index 6db44c010..a264fac15 100644 --- a/packages/payload/src/config/schema.ts +++ b/packages/payload/src/config/schema.ts @@ -81,6 +81,11 @@ export default joi.object({ debug: joi.boolean(), defaultDepth: joi.number().min(0).max(30), defaultMaxTextLength: joi.number(), + editor: joi.object().required().keys({ + CellComponent: component.required(), + FieldComponent: component.required(), + afterReadPromise: joi.func().required(), + }), email: joi.object(), endpoints: endpointsSchema, express: joi.object().keys({ diff --git a/packages/payload/src/config/types.ts b/packages/payload/src/config/types.ts index 73cee2038..1cac0ba41 100644 --- a/packages/payload/src/config/types.ts +++ b/packages/payload/src/config/types.ts @@ -9,6 +9,7 @@ import type React from 'react' import type { DeepRequired } from 'ts-essentials' import type { Configuration } from 'webpack' +import type { RichTextAdapter } from '../admin/components/forms/field-types/RichText/types' import type { User } from '../auth/types' import type { PayloadBundler } from '../bundlers/types' import type { @@ -303,6 +304,7 @@ export type Config = { prefillOnly?: boolean } | false + /** Set account profile picture. Options: gravatar, default or a custom React component. */ avatar?: 'default' | 'gravatar' | React.ComponentType /** @@ -428,12 +430,12 @@ export type Config = { * @default "payload" */ cookiePrefix?: string - /** Either a whitelist array of URLS to allow CORS requests from, or a wildcard string ('*') to accept incoming requests from any domain. */ cors?: '*' | string[] /** A whitelist array of URLs to allow Payload cookies to be accepted from as a form of CSRF protection. */ csrf?: string[] + /** Extension point to add your custom data. */ custom?: Record /** Pass in a database adapter for use on this project. */ @@ -454,6 +456,8 @@ export type Config = { * @default 40000 */ defaultMaxTextLength?: number + /** Default richtext editor to use for richText fields */ + editor: RichTextAdapter /** * Email configuration options. This value is overridden by `email` in Payload.init if passed. * diff --git a/packages/payload/src/database/queryValidation/validateQueryPaths.ts b/packages/payload/src/database/queryValidation/validateQueryPaths.ts index e7c4c0034..9164b4c75 100644 --- a/packages/payload/src/database/queryValidation/validateQueryPaths.ts +++ b/packages/payload/src/database/queryValidation/validateQueryPaths.ts @@ -8,7 +8,7 @@ import type { EntityPolicies } from './types' import QueryError from '../../errors/QueryError' import { validOperators } from '../../types/constants' -import deepCopyObject from '../../utilities/deepCopyObject' +import { deepCopyObject } from '../../utilities/deepCopyObject' import flattenFields from '../../utilities/flattenTopLevelFields' import { validateSearchParam } from './validateSearchParams' diff --git a/packages/payload/src/exports/components.ts b/packages/payload/src/exports/components.ts index 6922a02c8..f0f65c543 100644 --- a/packages/payload/src/exports/components.ts +++ b/packages/payload/src/exports/components.ts @@ -4,6 +4,9 @@ export { default as Button } from '../admin/components/elements/Button' export { default as Pill } from '../admin/components/elements/Pill' export { default as Popup } from '../admin/components/elements/Popup' + +export { ShimmerEffect } from '../admin/components/elements/ShimmerEffect' +export { default as Tooltip } from '../admin/components/elements/Tooltip' export { default as Check } from '../admin/components/icons/Check' export { default as Chevron } from '../admin/components/icons/Chevron' export { default as Menu } from '../admin/components/icons/Menu' diff --git a/packages/payload/src/exports/components/elements.ts b/packages/payload/src/exports/components/elements.ts index 9cae351e0..7d5515aa0 100644 --- a/packages/payload/src/exports/components/elements.ts +++ b/packages/payload/src/exports/components/elements.ts @@ -1,5 +1,22 @@ export { default as Button } from '../../admin/components/elements/Button' export { default as Card } from '../../admin/components/elements/Card' +export { + DocumentDrawer, + DocumentDrawerToggler, + baseClass as DocumentDrawerBaseClass, + useDocumentDrawer, +} from '../../admin/components/elements/DocumentDrawer' +export { Drawer, DrawerToggler, formatDrawerSlug } from '../../admin/components/elements/Drawer' +export { useDrawerSlug } from '../../admin/components/elements/Drawer/useDrawerSlug' + export { default as Eyebrow } from '../../admin/components/elements/Eyebrow' + export { Gutter } from '../../admin/components/elements/Gutter' +export { + ListDrawer, + ListDrawerToggler, + baseClass as ListDrawerBaseClass, + formatListDrawerSlug, + useListDrawer, +} from '../../admin/components/elements/ListDrawer' export { default as Nav } from '../../admin/components/elements/Nav' diff --git a/packages/payload/src/exports/components/fields/Relationship.ts b/packages/payload/src/exports/components/fields/Relationship.ts index a95dfdf69..fed678ef2 100644 --- a/packages/payload/src/exports/components/fields/Relationship.ts +++ b/packages/payload/src/exports/components/fields/Relationship.ts @@ -1,3 +1,4 @@ +export { default as RelationshipComponent } from '../../../admin/components/forms/field-types/Relationship' export type { Option, Props, diff --git a/packages/payload/src/exports/components/fields/RichText.ts b/packages/payload/src/exports/components/fields/RichText.ts index e5885b99a..716ea9b39 100644 --- a/packages/payload/src/exports/components/fields/RichText.ts +++ b/packages/payload/src/exports/components/fields/RichText.ts @@ -1 +1 @@ -export type { Props } from '../../../admin/components/forms/field-types/RichText/types' +export type { RichTextFieldProps } from '../../../admin/components/forms/field-types/RichText/types' diff --git a/packages/payload/src/exports/components/fields/Select.ts b/packages/payload/src/exports/components/fields/Select.ts index e669d7698..282552369 100644 --- a/packages/payload/src/exports/components/fields/Select.ts +++ b/packages/payload/src/exports/components/fields/Select.ts @@ -1 +1,2 @@ +export { default as SelectComponent } from '../../../admin/components/forms/field-types/Select' export type { Props } from '../../../admin/components/forms/field-types/Select/types' diff --git a/packages/payload/src/exports/components/forms.ts b/packages/payload/src/exports/components/forms.ts index 90c6ab61f..866217a91 100644 --- a/packages/payload/src/exports/components/forms.ts +++ b/packages/payload/src/exports/components/forms.ts @@ -1,3 +1,7 @@ +export { default as Error } from '../../admin/components/forms/Error' + +export { default as FieldDescription } from '../../admin/components/forms/FieldDescription' + export { default as Form } from '../../admin/components/forms/Form' export { @@ -14,25 +18,26 @@ export { } from '../../admin/components/forms/Form/context' export { default as getSiblingData } from '../../admin/components/forms/Form/getSiblingData' - export { default as reduceFieldsToValues } from '../../admin/components/forms/Form/reduceFieldsToValues' export { default as Label } from '../../admin/components/forms/Label' + +export { default as RenderFields } from '../../admin/components/forms/RenderFields' export { default as Submit } from '../../admin/components/forms/Submit' +export { default as FormSubmit } from '../../admin/components/forms/Submit' export { default as Checkbox } from '../../admin/components/forms/field-types/Checkbox' - export { default as Group } from '../../admin/components/forms/field-types/Group' -export { default as Select } from '../../admin/components/forms/field-types/Select' +export { default as Select } from '../../admin/components/forms/field-types/Select' export { default as SelectInput } from '../../admin/components/forms/field-types/Select/Input' + export { default as Text } from '../../admin/components/forms/field-types/Text' export { default as TextInput } from '../../admin/components/forms/field-types/Text/Input' - /** * @deprecated This method is now called useField. The useFieldType alias will be removed in an upcoming version. */ export { default as useFieldType } from '../../admin/components/forms/useField' -export { default as useField } from '../../admin/components/forms/useField' +export { default as useField } from '../../admin/components/forms/useField' export { default as withCondition } from '../../admin/components/forms/withCondition' diff --git a/packages/payload/src/exports/components/graphics.ts b/packages/payload/src/exports/components/graphics.ts new file mode 100644 index 000000000..c98adb630 --- /dev/null +++ b/packages/payload/src/exports/components/graphics.ts @@ -0,0 +1,6 @@ +export { default as AccountGraphic } from '../../admin/components/graphics/Account' +export { default as DefaultBlockImageGraphic } from '../../admin/components/graphics/DefaultBlockImage' +export { default as FileGraphic } from '../../admin/components/graphics/File' +export { default as IconGraphic } from '../../admin/components/graphics/Icon' +export { default as LogoGraphic } from '../../admin/components/graphics/Logo' +export { default as SearchGraphic } from '../../admin/components/graphics/Search' diff --git a/packages/payload/src/exports/components/hooks.ts b/packages/payload/src/exports/components/hooks.ts index 7b6a382d7..3de93fbb8 100644 --- a/packages/payload/src/exports/components/hooks.ts +++ b/packages/payload/src/exports/components/hooks.ts @@ -1 +1,12 @@ export { useStepNav } from '../../admin/components/elements/StepNav' +export { default as useDebounce } from '../../admin/hooks/useDebounce' +export { useDebouncedCallback } from '../../admin/hooks/useDebouncedCallback' +export { useDelay } from '../../admin/hooks/useDelay' +export { useDelayedRender } from '../../admin/hooks/useDelayedRender' +export { default as useHotkey } from '../../admin/hooks/useHotkey' +export { default as useIntersect } from '../../admin/hooks/useIntersect' +export { default as useMountEffect } from '../../admin/hooks/useMountEffect' +export { default as usePayloadAPI } from '../../admin/hooks/usePayloadAPI' +export { default as useThrottledEffect } from '../../admin/hooks/useThrottledEffect' +export { default as useThumbnail } from '../../admin/hooks/useThumbnail' +export { default as useTitle, formatUseAsTitle } from '../../admin/hooks/useTitle' diff --git a/packages/payload/src/exports/components/rich-text.ts b/packages/payload/src/exports/components/rich-text.ts deleted file mode 100644 index cdcadb011..000000000 --- a/packages/payload/src/exports/components/rich-text.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { default as ElementButton } from '../../admin/components/forms/field-types/RichText/elements/Button' -export { default as toggleElement } from '../../admin/components/forms/field-types/RichText/elements/toggle' -export { default as LeafButton } from '../../admin/components/forms/field-types/RichText/leaves/Button' diff --git a/packages/payload/src/exports/components/utilities.ts b/packages/payload/src/exports/components/utilities.ts index f5c588b93..483a10015 100644 --- a/packages/payload/src/exports/components/utilities.ts +++ b/packages/payload/src/exports/components/utilities.ts @@ -1,6 +1,8 @@ +export { default as buildStateFromSchema } from '../../admin/components/forms/Form/buildStateFromSchema' export { useAuth } from '../../admin/components/utilities/Auth' export { useConfig } from '../../admin/components/utilities/Config' export { useDocumentInfo } from '../../admin/components/utilities/DocumentInfo' export { useEditDepth } from '../../admin/components/utilities/EditDepth' export { useLocale } from '../../admin/components/utilities/Locale' export { default as Meta } from '../../admin/components/utilities/Meta' +export { withMergedProps } from '../../admin/components/utilities/WithMergedProps' diff --git a/packages/payload/src/exports/config.ts b/packages/payload/src/exports/config.ts index eb5b1efed..f2609fc2e 100644 --- a/packages/payload/src/exports/config.ts +++ b/packages/payload/src/exports/config.ts @@ -1,6 +1,7 @@ export { buildConfig } from '../config/build' export * from '../config/types' -export { defaults } from '../config/defaults' +export { type FieldTypes, fieldTypes } from '../admin/components/forms/field-types' +export { defaults } from '../config/defaults' export { sanitizeConfig } from '../config/sanitize' diff --git a/packages/payload/src/exports/types.ts b/packages/payload/src/exports/types.ts index a9c81b96d..da2d6e510 100644 --- a/packages/payload/src/exports/types.ts +++ b/packages/payload/src/exports/types.ts @@ -1,5 +1,19 @@ export * from './../types' +export type { + CreateFormData, + Fields, + FormField, + FormFieldsContext, +} from '../admin/components/forms/Form/types' + +export type { + RichTextAdapter, + RichTextFieldProps, +} from '../admin/components/forms/field-types/RichText/types' + +export type { CellComponentProps } from '../admin/components/views/collections/List/Cell/types' + export { CustomPublishButtonProps, CustomSaveButtonProps, @@ -22,6 +36,7 @@ export { BeforeOperationHook as CollectionBeforeOperationHook, BeforeReadHook as CollectionBeforeReadHook, BeforeValidateHook as CollectionBeforeValidateHook, + Collection, CollectionConfig, SanitizedCollectionConfig, TypeWithID, @@ -67,11 +82,7 @@ export { RadioField, RelationshipField, RelationshipValue, - RichTextCustomElement, - RichTextCustomLeaf, - RichTextElement, RichTextField, - RichTextLeaf, RowAdmin, RowField, SelectField, @@ -101,7 +112,6 @@ export { tabHasName, valueIsValueWithRelation, } from './../fields/config/types' - export { AfterChangeHook as GlobalAfterChangeHook, AfterReadHook as GlobalAfterReadHook, diff --git a/packages/payload/src/exports/utilities.ts b/packages/payload/src/exports/utilities.ts index 2fbac1311..574a51e63 100644 --- a/packages/payload/src/exports/utilities.ts +++ b/packages/payload/src/exports/utilities.ts @@ -1,7 +1,11 @@ +export { extractTranslations } from '../translations/extractTranslations' export { i18nInit } from '../translations/init' export { combineMerge } from '../utilities/combineMerge' export { configToJSONSchema, entityToJSONSchema } from '../utilities/configToJSONSchema' export { createArrayFromCommaDelineated } from '../utilities/createArrayFromCommaDelineated'; +export { deepCopyObject } from '../utilities/deepCopyObject' +export { deepMerge } from '../utilities/deepMerge' export { default as flattenTopLevelFields } from '../utilities/flattenTopLevelFields' +export { getTranslation } from '../utilities/getTranslation' diff --git a/packages/payload/src/fields/config/schema.ts b/packages/payload/src/fields/config/schema.ts index fa4848036..fb310c2e5 100644 --- a/packages/payload/src/fields/config/schema.ts +++ b/packages/payload/src/fields/config/schema.ts @@ -61,13 +61,14 @@ export const baseField = joi .default() export const idField = baseField.keys({ - localized: joi.invalid(true), name: joi.string().valid('id'), + localized: joi.invalid(true), required: joi.not(false, 0).default(true), type: joi.string().valid('text', 'number'), }) export const text = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ autoComplete: joi.string(), placeholder: joi @@ -78,11 +79,11 @@ export const text = baseField.keys({ defaultValue: joi.alternatives().try(joi.string(), joi.func()), maxLength: joi.number(), minLength: joi.number(), - name: joi.string().required(), type: joi.string().valid('text').required(), }) export const number = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ autoComplete: joi.string(), placeholder: joi.string(), @@ -94,11 +95,11 @@ export const number = baseField.keys({ maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }), min: joi.number(), minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }), - name: joi.string().required(), type: joi.string().valid('number').required(), }) export const textarea = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ placeholder: joi.string(), rows: joi.number(), @@ -107,11 +108,11 @@ export const textarea = baseField.keys({ defaultValue: joi.alternatives().try(joi.string(), joi.func()), maxLength: joi.number(), minLength: joi.number(), - name: joi.string().required(), type: joi.string().valid('textarea').required(), }) export const email = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ autoComplete: joi.string(), placeholder: joi.string(), @@ -119,27 +120,27 @@ export const email = baseField.keys({ defaultValue: joi.alternatives().try(joi.string(), joi.func()), maxLength: joi.number(), minLength: joi.number(), - name: joi.string().required(), type: joi.string().valid('email').required(), }) export const code = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react language: joi.string(), }), defaultValue: joi.alternatives().try(joi.string(), joi.func()), - name: joi.string().required(), type: joi.string().valid('code').required(), }) export const json = baseField.keys({ - defaultValue: joi.alternatives().try(joi.array(), joi.object()), name: joi.string().required(), + defaultValue: joi.alternatives().try(joi.array(), joi.object()), type: joi.string().valid('json').required(), }) export const select = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ isClearable: joi.boolean().default(false), isSortable: joi.boolean().default(false), @@ -148,7 +149,6 @@ export const select = baseField.keys({ .alternatives() .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()), hasMany: joi.boolean().default(false), - name: joi.string().required(), options: joi .array() .min(1) @@ -168,11 +168,11 @@ export const select = baseField.keys({ }) export const radio = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ layout: joi.string().valid('vertical', 'horizontal'), }), defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()), - name: joi.string().required(), options: joi .array() .min(1) @@ -206,6 +206,7 @@ export const collapsible = baseField.keys({ }) const tab = baseField.keys({ + name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }), description: joi.alternatives().try(joi.string(), componentSchema), fields: joi.array().items(joi.link('#field')).required(), interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }), @@ -214,7 +215,6 @@ const tab = baseField.keys({ .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])) .when('name', { is: joi.not(), then: joi.required() }), localized: joi.boolean(), - name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }), saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()), }) @@ -229,17 +229,18 @@ export const tabs = baseField.keys({ }) export const group = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ hideGutter: joi.boolean().default(true), }), defaultValue: joi.alternatives().try(joi.object(), joi.func()), fields: joi.array().items(joi.link('#field')), interfaceName: joi.string(), - name: joi.string().required(), type: joi.string().valid('group').required(), }) export const array = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields .keys({ components: baseAdminComponentFields @@ -262,32 +263,32 @@ export const array = baseField.keys({ }), maxRows: joi.number(), minRows: joi.number(), - name: joi.string().required(), type: joi.string().valid('array').required(), }) export const upload = baseField.keys({ + name: joi.string().required(), defaultValue: joi.alternatives().try(joi.object(), joi.func()), filterOptions: joi.alternatives().try(joi.object(), joi.func()), maxDepth: joi.number(), - name: joi.string().required(), relationTo: joi.string().required(), type: joi.string().valid('upload').required(), }) export const checkbox = baseField.keys({ - defaultValue: joi.alternatives().try(joi.boolean(), joi.func()), name: joi.string().required(), + defaultValue: joi.alternatives().try(joi.boolean(), joi.func()), type: joi.string().valid('checkbox').required(), }) export const point = baseField.keys({ - defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()), name: joi.string().required(), + defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()), type: joi.string().valid('point').required(), }) export const relationship = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ allowCreate: joi.boolean().default(true), isSortable: joi.boolean().default(false), @@ -306,12 +307,12 @@ export const relationship = baseField.keys({ .when('hasMany', { is: joi.not(true), then: joi.forbidden() }) .warning('deprecated', { message: 'Use minRows instead.' }), minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }), - name: joi.string().required(), relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())), type: joi.string().valid('relationship').required(), }) export const blocks = baseField.keys({ + name: joi.string().required(), blocks: joi .array() .items( @@ -346,55 +347,23 @@ export const blocks = baseField.keys({ }), maxRows: joi.number(), minRows: joi.number(), - name: joi.string().required(), type: joi.string().valid('blocks').required(), }) export const richText = baseField.keys({ - admin: baseAdminFields.keys({ - elements: joi.array().items( - joi.alternatives().try( - joi.string(), - joi.object({ - Button: componentSchema, - Element: componentSchema, - name: joi.string().required(), - plugins: joi.array().items(componentSchema), - }), - ), - ), - hideGutter: joi.boolean().default(true), - leaves: joi.array().items( - joi.alternatives().try( - joi.string(), - joi.object({ - Button: componentSchema, - Leaf: componentSchema, - name: joi.string().required(), - plugins: joi.array().items(componentSchema), - }), - ), - ), - link: joi.object({ - fields: joi.alternatives(joi.array().items(joi.link('#field')), joi.func()), - }), - placeholder: joi.string(), - rtl: joi.boolean(), - upload: joi.object({ - collections: joi.object().pattern( - joi.string(), - joi.object().keys({ - fields: joi.array().items(joi.link('#field')), - }), - ), - }), - }), - defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()), name: joi.string().required(), + admin: baseAdminFields.default(), + defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()), + editor: joi.object().keys({ + CellComponent: componentSchema.required(), + FieldComponent: componentSchema.required(), + afterReadPromise: joi.func().required(), + }), type: joi.string().valid('richText').required(), }) export const date = baseField.keys({ + name: joi.string().required(), admin: baseAdminFields.keys({ date: joi.object({ displayFormat: joi.string(), @@ -410,11 +379,11 @@ export const date = baseField.keys({ placeholder: joi.string(), }), defaultValue: joi.alternatives().try(joi.string(), joi.func()), - name: joi.string().required(), type: joi.string().valid('date').required(), }) export const ui = joi.object().keys({ + name: joi.string().required(), admin: joi .object() .keys({ @@ -432,7 +401,6 @@ export const ui = joi.object().keys({ .default(), custom: joi.object().pattern(joi.string(), joi.any()), label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])), - name: joi.string().required(), type: joi.string().valid('ui').required(), }) diff --git a/packages/payload/src/fields/config/types.ts b/packages/payload/src/fields/config/types.ts index 2f0b9b9f6..a69bd0d6c 100644 --- a/packages/payload/src/fields/config/types.ts +++ b/packages/payload/src/fields/config/types.ts @@ -1,16 +1,15 @@ /* eslint-disable no-use-before-define */ import type { EditorProps } from '@monaco-editor/react' -import type { i18n as Ii18n, TFunction } from 'i18next' +import type { TFunction } from 'i18next' import type { CSSProperties } from 'react' -import type { Editor } from 'slate' import monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode) import type { ConditionalDateProps } from '../../admin/components/elements/DatePicker/types' import type { Description } from '../../admin/components/forms/FieldDescription/types' import type { RowLabel } from '../../admin/components/forms/RowLabel/types' +import type { RichTextAdapter } from '../../admin/components/forms/field-types/RichText/types' import type { User } from '../../auth' import type { TypeWithID } from '../../collections/config/types' -import type { SanitizedConfig } from '../../config/types' import type { PayloadRequest, RequestContext } from '../../express/types' import type { Payload } from '../../payload' import type { Operation, Where } from '../../types' @@ -396,68 +395,11 @@ export type RelationshipValue = | ValueWithRelation[] | (number | string) -type RichTextPlugin = (editor: Editor) => Editor - -export type RichTextCustomElement = { - Button: React.ComponentType - Element: React.ComponentType - name: string - plugins?: RichTextPlugin[] -} - -export type RichTextCustomLeaf = { - Button: React.ComponentType - Leaf: React.ComponentType - name: string - plugins?: RichTextPlugin[] -} - -export type RichTextElement = - | 'blockquote' - | 'h1' - | 'h2' - | 'h3' - | 'h4' - | 'h5' - | 'h6' - | 'indent' - | 'link' - | 'ol' - | 'relationship' - | 'textAlign' - | 'ul' - | 'upload' - | RichTextCustomElement -export type RichTextLeaf = - | 'bold' - | 'code' - | 'italic' - | 'strikethrough' - | 'underline' - | RichTextCustomLeaf - -export type RichTextField = FieldBase & { - admin?: Admin & { - elements?: RichTextElement[] - hideGutter?: boolean - leaves?: RichTextLeaf[] - link?: { - fields?: - | ((args: { config: SanitizedConfig; defaultFields: Field[]; i18n: Ii18n }) => Field[]) - | Field[] - } - placeholder?: Record | string - rtl?: boolean - upload?: { - collections: { - [collection: string]: { - fields: Field[] - } - } - } - } +export type RichTextField = FieldBase & { + admin?: Admin + editor?: RichTextAdapter type: 'richText' -} +} & AdapterProps export type ArrayField = FieldBase & { admin?: Admin & { diff --git a/packages/payload/src/fields/hooks/afterChange/index.ts b/packages/payload/src/fields/hooks/afterChange/index.ts index 90fab805e..36b3ac519 100644 --- a/packages/payload/src/fields/hooks/afterChange/index.ts +++ b/packages/payload/src/fields/hooks/afterChange/index.ts @@ -2,7 +2,7 @@ import type { SanitizedCollectionConfig } from '../../../collections/config/type import type { PayloadRequest, RequestContext } from '../../../express/types' import type { SanitizedGlobalConfig } from '../../../globals/config/types' -import deepCopyObject from '../../../utilities/deepCopyObject' +import { deepCopyObject } from '../../../utilities/deepCopyObject' import { traverseFields } from './traverseFields' type Args = { diff --git a/packages/payload/src/fields/hooks/afterRead/index.ts b/packages/payload/src/fields/hooks/afterRead/index.ts index 77f81edab..fa2a1ad5b 100644 --- a/packages/payload/src/fields/hooks/afterRead/index.ts +++ b/packages/payload/src/fields/hooks/afterRead/index.ts @@ -2,7 +2,7 @@ import type { SanitizedCollectionConfig } from '../../../collections/config/type import type { PayloadRequest, RequestContext } from '../../../express/types' import type { SanitizedGlobalConfig } from '../../../globals/config/types' -import deepCopyObject from '../../../utilities/deepCopyObject' +import { deepCopyObject } from '../../../utilities/deepCopyObject' import { traverseFields } from './traverseFields' type Args = { diff --git a/packages/payload/src/fields/hooks/afterRead/promise.ts b/packages/payload/src/fields/hooks/afterRead/promise.ts index b3af9eac5..cd8e4500f 100644 --- a/packages/payload/src/fields/hooks/afterRead/promise.ts +++ b/packages/payload/src/fields/hooks/afterRead/promise.ts @@ -1,9 +1,9 @@ /* eslint-disable no-param-reassign */ +import type { RichTextAdapter } from '../../../admin/components/forms/field-types/RichText/types' import type { PayloadRequest, RequestContext } from '../../../express/types' import type { Field, TabAsField } from '../../config/types' import { fieldAffectsData, tabHasName } from '../../config/types' -import richTextRelationshipPromise from '../../richText/richTextRelationshipPromise' import relationshipPopulationPromise from './relationshipPopulationPromise' import { traverseFields } from './traverseFields' @@ -128,23 +128,21 @@ export const promise = async ({ } case 'richText': { - if ( - field.admin?.elements?.includes('relationship') || - field.admin?.elements?.includes('upload') || - field.admin?.elements?.includes('link') || - !field?.admin?.elements - ) { - populationPromises.push( - richTextRelationshipPromise({ - currentDepth, - depth, - field, - overrideAccess, - req, - showHiddenFields, - siblingDoc, - }), - ) + const editor: RichTextAdapter = field?.editor || req?.payload?.config?.editor + if (editor?.afterReadPromise) { + const afterReadPromise = editor.afterReadPromise({ + currentDepth, + depth, + field, + overrideAccess, + req, + showHiddenFields, + siblingDoc, + }) + + if (afterReadPromise) { + populationPromises.push(afterReadPromise) + } } break @@ -221,9 +219,9 @@ export const promise = async ({ const result = overrideAccess ? true : await field.access.read({ + id: doc.id as number | string, data: doc, doc, - id: doc.id as number | string, req, siblingData: siblingDoc, }) diff --git a/packages/payload/src/fields/hooks/beforeChange/index.ts b/packages/payload/src/fields/hooks/beforeChange/index.ts index 8149fce23..8955e02ba 100644 --- a/packages/payload/src/fields/hooks/beforeChange/index.ts +++ b/packages/payload/src/fields/hooks/beforeChange/index.ts @@ -4,7 +4,7 @@ import type { SanitizedGlobalConfig } from '../../../globals/config/types' import type { Operation } from '../../../types' import { ValidationError } from '../../../errors' -import deepCopyObject from '../../../utilities/deepCopyObject' +import { deepCopyObject } from '../../../utilities/deepCopyObject' import { traverseFields } from './traverseFields' type Args = { diff --git a/packages/payload/src/fields/hooks/beforeValidate/index.ts b/packages/payload/src/fields/hooks/beforeValidate/index.ts index fe8968bdc..793c70ee1 100644 --- a/packages/payload/src/fields/hooks/beforeValidate/index.ts +++ b/packages/payload/src/fields/hooks/beforeValidate/index.ts @@ -2,7 +2,7 @@ import type { SanitizedCollectionConfig } from '../../../collections/config/type import type { PayloadRequest, RequestContext } from '../../../express/types' import type { SanitizedGlobalConfig } from '../../../globals/config/types' -import deepCopyObject from '../../../utilities/deepCopyObject' +import { deepCopyObject } from '../../../utilities/deepCopyObject' import { traverseFields } from './traverseFields' type Args = { diff --git a/packages/payload/src/fields/richText/richTextRelationshipPromise.ts b/packages/payload/src/fields/richText/richTextRelationshipPromise.ts deleted file mode 100644 index d4c608e4c..000000000 --- a/packages/payload/src/fields/richText/richTextRelationshipPromise.ts +++ /dev/null @@ -1,156 +0,0 @@ -import type { PayloadRequest } from '../../express/types' -import type { RichTextField } from '../config/types' - -import { populate } from './populate' -import { recurseNestedFields } from './recurseNestedFields' - -type Args = { - currentDepth?: number - depth: number - field: RichTextField - overrideAccess?: boolean - req: PayloadRequest - showHiddenFields: boolean - siblingDoc: Record -} - -type RecurseRichTextArgs = { - children: unknown[] - currentDepth: number - depth: number - field: RichTextField - overrideAccess: boolean - promises: Promise[] - req: PayloadRequest - showHiddenFields: boolean -} - -export const recurseRichText = ({ - children, - currentDepth = 0, - depth, - field, - overrideAccess = false, - promises, - req, - showHiddenFields, -}: RecurseRichTextArgs): void => { - if (Array.isArray(children)) { - ;(children as any[]).forEach((element) => { - if (depth && currentDepth <= depth) { - if ((element.type === 'relationship' || element.type === 'upload') && element?.value?.id) { - const collection = req.payload.collections[element?.relationTo] - - if (collection) { - promises.push( - populate({ - collection, - currentDepth, - data: element, - depth, - field, - id: element.value.id, - key: 'value', - overrideAccess, - req, - showHiddenFields, - }), - ) - } - - if ( - element.type === 'upload' && - Array.isArray(field.admin?.upload?.collections?.[element?.relationTo]?.fields) - ) { - recurseNestedFields({ - currentDepth, - data: element.fields || {}, - depth, - fields: field.admin.upload.collections[element.relationTo].fields, - overrideAccess, - promises, - req, - showHiddenFields, - }) - } - } - - if (element.type === 'link') { - if (element?.doc?.value && element?.doc?.relationTo) { - const collection = req.payload.collections[element?.doc?.relationTo] - - if (collection) { - promises.push( - populate({ - collection, - currentDepth, - data: element.doc, - depth, - field, - id: element.doc.value, - key: 'value', - overrideAccess, - req, - showHiddenFields, - }), - ) - } - } - - if (Array.isArray(field.admin?.link?.fields)) { - recurseNestedFields({ - currentDepth, - data: element.fields || {}, - depth, - fields: field.admin?.link?.fields, - overrideAccess, - promises, - req, - showHiddenFields, - }) - } - } - } - - if (element?.children) { - recurseRichText({ - children: element.children, - currentDepth, - depth, - field, - overrideAccess, - promises, - req, - showHiddenFields, - }) - } - }) - } -} - -const richTextRelationshipPromise = async ({ - currentDepth, - depth, - field, - overrideAccess, - req, - showHiddenFields, - siblingDoc, -}: Args): Promise => { - const promises = [] - - recurseRichText({ - children: siblingDoc[field.name] as unknown[], - currentDepth, - depth, - field, - overrideAccess, - promises, - req, - showHiddenFields, - }) - - await Promise.all(promises) -} - -export default richTextRelationshipPromise diff --git a/packages/payload/src/fields/validations.ts b/packages/payload/src/fields/validations.ts index 6c768fecd..d44ec3c92 100644 --- a/packages/payload/src/fields/validations.ts +++ b/packages/payload/src/fields/validations.ts @@ -11,7 +11,6 @@ import type { RadioField, RelationshipField, RelationshipValue, - RichTextField, SelectField, TextField, TextareaField, @@ -23,7 +22,6 @@ import canUseDOM from '../utilities/canUseDOM' import { getIDType } from '../utilities/getIDType' import { isValidID } from '../utilities/isValidID' import { fieldAffectsData } from './config/types' -import defaultRichTextValue from './richText/defaultValue' export const number: Validate = ( value: number | number[], @@ -186,16 +184,6 @@ export const json: Validate = (value, { required, t }) => { - if (required) { - const stringifiedDefaultValue = JSON.stringify(defaultRichTextValue) - if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true - return t('validation:required') - } - - return true -} - export const checkbox: Validate = ( value: boolean, { required, t }, @@ -519,7 +507,6 @@ export default { point, radio, relationship, - richText, select, text, textarea, diff --git a/packages/payload/src/graphql/schema/buildObjectType.ts b/packages/payload/src/graphql/schema/buildObjectType.ts index dbabb77f5..399cb5248 100644 --- a/packages/payload/src/graphql/schema/buildObjectType.ts +++ b/packages/payload/src/graphql/schema/buildObjectType.ts @@ -18,6 +18,7 @@ import { DateTimeResolver, EmailAddressResolver } from 'graphql-scalars' /* eslint-disable no-use-before-define */ import { GraphQLJSON } from 'graphql-type-json' +import type { RichTextAdapter } from '../../admin/components/forms/field-types/RichText/types' import type { ArrayField, BlockField, @@ -44,7 +45,6 @@ import type { import type { Payload } from '../../payload' import { tabHasName } from '../../fields/config/types' -import createRichTextRelationshipPromise from '../../fields/richText/richTextRelationshipPromise' import { toWords } from '../../utilities/formatLabels' import combineParentName from '../utilities/combineParentName' import formatName from '../utilities/formatName' @@ -79,10 +79,10 @@ type Args = { } function buildObjectType({ + name, baseFields = {}, fields, forceNullable, - name, parentName, payload, }: Args): GraphQLObjectType { @@ -94,9 +94,9 @@ function buildObjectType({ if (!payload.types.arrayTypes[interfaceName]) { // eslint-disable-next-line no-param-reassign payload.types.arrayTypes[interfaceName] = buildObjectType({ + name: interfaceName, fields: field.fields, forceNullable: isFieldNullable(field, forceNullable), - name: interfaceName, parentName: interfaceName, payload, }) @@ -116,6 +116,7 @@ function buildObjectType({ block?.interfaceName || block?.graphQL?.singularName || toWords(block.slug, true) // eslint-disable-next-line no-param-reassign payload.types.blockTypes[block.slug] = buildObjectType({ + name: interfaceName, fields: [ ...block.fields, { @@ -124,7 +125,6 @@ function buildObjectType({ }, ], forceNullable, - name: interfaceName, parentName: interfaceName, payload, }) @@ -179,9 +179,9 @@ function buildObjectType({ if (!payload.types.groupTypes[interfaceName]) { // eslint-disable-next-line no-param-reassign payload.types.groupTypes[interfaceName] = buildObjectType({ + name: interfaceName, fields: field.fields, forceNullable: isFieldNullable(field, forceNullable), - name: interfaceName, parentName: interfaceName, payload, }) @@ -258,6 +258,7 @@ function buildObjectType({ const types = relationTo.map((relation) => payload.collections[relation].graphQL.type) type = new GraphQLObjectType({ + name: `${relationshipName}_Relationship`, fields: { relationTo: { type: relationToType, @@ -272,7 +273,6 @@ function buildObjectType({ }), }, }, - name: `${relationshipName}_Relationship`, }) } else { ;({ type } = payload.collections[relationTo].graphQL) @@ -427,9 +427,10 @@ function buildObjectType({ async resolve(parent, args, context) { let depth = payload.config.defaultDepth if (typeof args.depth !== 'undefined') depth = args.depth + const editor: RichTextAdapter = field?.editor || payload?.config?.editor - if (depth > 0) { - await createRichTextRelationshipPromise({ + if (editor?.afterReadPromise) { + await editor?.afterReadPromise({ depth, field, req: context.req, @@ -474,9 +475,9 @@ function buildObjectType({ if (!payload.types.tabTypes[interfaceName]) { // eslint-disable-next-line no-param-reassign payload.types.tabTypes[interfaceName] = buildObjectType({ + name: interfaceName, fields: tab.fields, forceNullable, - name: interfaceName, parentName: interfaceName, payload, }) @@ -581,6 +582,7 @@ function buildObjectType({ } const objectSchema = { + name, fields: () => fields.reduce((objectTypeConfig, field) => { const fieldSchema = fieldToSchemaMap[field.type] @@ -594,7 +596,6 @@ function buildObjectType({ ...fieldSchema(objectTypeConfig, field), } }, baseFields), - name, } const newlyCreatedBlockType = new GraphQLObjectType(objectSchema) diff --git a/packages/payload/src/utilities/configToJSONSchema.ts b/packages/payload/src/utilities/configToJSONSchema.ts index 669ba15ee..6fd933d7f 100644 --- a/packages/payload/src/utilities/configToJSONSchema.ts +++ b/packages/payload/src/utilities/configToJSONSchema.ts @@ -8,7 +8,7 @@ import type { Field, FieldAffectingData, Option } from '../fields/config/types' import type { SanitizedGlobalConfig } from '../globals/config/types' import { fieldAffectsData, tabHasName } from '../fields/config/types' -import deepCopyObject from './deepCopyObject' +import { deepCopyObject } from './deepCopyObject' import { toWords } from './formatLabels' const propertyIsRequired = (field: Field) => { diff --git a/packages/payload/src/utilities/deepCopyObject.ts b/packages/payload/src/utilities/deepCopyObject.ts index 5bae732a8..b1b37a49d 100644 --- a/packages/payload/src/utilities/deepCopyObject.ts +++ b/packages/payload/src/utilities/deepCopyObject.ts @@ -1,4 +1,4 @@ -const deepCopyObject = (inObject) => { +export const deepCopyObject = (inObject) => { if (inObject instanceof Date) return inObject if (inObject instanceof Set) return new Set(inObject) @@ -21,5 +21,3 @@ const deepCopyObject = (inObject) => { return outObject } - -export default deepCopyObject diff --git a/packages/payload/src/utilities/deepMerge.ts b/packages/payload/src/utilities/deepMerge.ts new file mode 100644 index 000000000..2efcc4796 --- /dev/null +++ b/packages/payload/src/utilities/deepMerge.ts @@ -0,0 +1,15 @@ +export function deepMerge(obj1, obj2) { + const output = { ...obj1 } + + for (const key in obj2) { + if (Object.prototype.hasOwnProperty.call(obj2, key)) { + if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) { + output[key] = deepMerge(obj1[key], obj2[key]) + } else { + output[key] = obj2[key] + } + } + } + + return output +} diff --git a/packages/payload/types.d.ts b/packages/payload/types.d.ts index 60036c638..be00c109a 100644 --- a/packages/payload/types.d.ts +++ b/packages/payload/types.d.ts @@ -1,10 +1,13 @@ export * from './dist/types'; +export type { CreateFormData, Fields, FormField, FormFieldsContext, } from './dist/admin/components/forms/Form/types'; +export type { RichTextAdapter, RichTextFieldProps, } from './dist/admin/components/forms/field-types/RichText/types'; +export type { CellComponentProps } from './dist/admin/components/views/collections/List/Cell/types'; export { CustomPublishButtonProps, CustomSaveButtonProps, CustomSaveDraftButtonProps, } from './dist/admin/components/elements/types'; export { RowLabel } from './dist/admin/components/forms/RowLabel/types'; -export { AfterChangeHook as CollectionAfterChangeHook, AfterDeleteHook as CollectionAfterDeleteHook, AfterForgotPasswordHook as CollectionAfterForgotPasswordHook, AfterLoginHook as CollectionAfterLoginHook, AfterOperationHook as CollectionAfterOperationHook, AfterReadHook as CollectionAfterReadHook, BeforeChangeHook as CollectionBeforeChangeHook, BeforeDeleteHook as CollectionBeforeDeleteHook, BeforeDuplicate, BeforeLoginHook as CollectionBeforeLoginHook, BeforeOperationHook as CollectionBeforeOperationHook, BeforeReadHook as CollectionBeforeReadHook, BeforeValidateHook as CollectionBeforeValidateHook, CollectionConfig, SanitizedCollectionConfig, TypeWithID, } from './dist/collections/config/types'; +export { AfterChangeHook as CollectionAfterChangeHook, AfterDeleteHook as CollectionAfterDeleteHook, AfterForgotPasswordHook as CollectionAfterForgotPasswordHook, AfterLoginHook as CollectionAfterLoginHook, AfterOperationHook as CollectionAfterOperationHook, AfterReadHook as CollectionAfterReadHook, BeforeChangeHook as CollectionBeforeChangeHook, BeforeDeleteHook as CollectionBeforeDeleteHook, BeforeDuplicate, BeforeLoginHook as CollectionBeforeLoginHook, BeforeOperationHook as CollectionBeforeOperationHook, BeforeReadHook as CollectionBeforeReadHook, BeforeValidateHook as CollectionBeforeValidateHook, Collection, CollectionConfig, SanitizedCollectionConfig, TypeWithID, } from './dist/collections/config/types'; export { Access, AccessArgs } from './dist/config/types'; export { DatabaseAdapter } from './dist/database/types'; -export { ArrayField, Block, BlockField, CheckboxField, CodeField, CollapsibleField, Condition, DateField, EmailField, Field, FieldAccess, FieldAffectingData, FieldBase, FieldHook, FieldHookArgs, FieldPresentationalOnly, FieldWithMany, FieldWithMaxDepth, FieldWithPath, FieldWithSubFields, FilterOptions, FilterOptionsProps, GroupField, HookName, JSONField, Labels, NamedTab, NonPresentationalField, NumberField, Option, OptionObject, PointField, RadioField, RelationshipField, RelationshipValue, RichTextCustomElement, RichTextCustomLeaf, RichTextElement, RichTextField, RichTextLeaf, RowAdmin, RowField, SelectField, Tab, TabAsField, TabsAdmin, TabsField, TextField, TextareaField, UIField, UnnamedTab, UploadField, Validate, ValidateOptions, ValueWithRelation, fieldAffectsData, fieldHasMaxDepth, fieldHasSubFields, fieldIsArrayType, fieldIsBlockType, fieldIsLocalized, fieldIsPresentationalOnly, fieldSupportsMany, optionIsObject, optionIsValue, optionsAreObjects, tabHasName, valueIsValueWithRelation, } from './dist/fields/config/types'; +export { ArrayField, Block, BlockField, CheckboxField, CodeField, CollapsibleField, Condition, DateField, EmailField, Field, FieldAccess, FieldAffectingData, FieldBase, FieldHook, FieldHookArgs, FieldPresentationalOnly, FieldWithMany, FieldWithMaxDepth, FieldWithPath, FieldWithSubFields, FilterOptions, FilterOptionsProps, GroupField, HookName, JSONField, Labels, NamedTab, NonPresentationalField, NumberField, Option, OptionObject, PointField, RadioField, RelationshipField, RelationshipValue, RichTextField, RowAdmin, RowField, SelectField, Tab, TabAsField, TabsAdmin, TabsField, TextField, TextareaField, UIField, UnnamedTab, UploadField, Validate, ValidateOptions, ValueWithRelation, fieldAffectsData, fieldHasMaxDepth, fieldHasSubFields, fieldIsArrayType, fieldIsBlockType, fieldIsLocalized, fieldIsPresentationalOnly, fieldSupportsMany, optionIsObject, optionIsValue, optionsAreObjects, tabHasName, valueIsValueWithRelation, } from './dist/fields/config/types'; export { AfterChangeHook as GlobalAfterChangeHook, AfterReadHook as GlobalAfterReadHook, BeforeChangeHook as GlobalBeforeChangeHook, BeforeReadHook as GlobalBeforeReadHook, BeforeValidateHook as GlobalBeforeValidateHook, GlobalConfig, SanitizedGlobalConfig, } from './dist/globals/config/types'; export { validOperators } from './dist/types/constants'; //# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/packages/payload/types.js b/packages/payload/types.js index 39f56afa8..ffc6c980e 100644 --- a/packages/payload/types.js +++ b/packages/payload/types.js @@ -60,6 +60,9 @@ _export(exports, { CollectionBeforeValidateHook: function() { return _types2.BeforeValidateHook; }, + Collection: function() { + return _types2.Collection; + }, CollectionConfig: function() { return _types2.CollectionConfig; }, @@ -183,21 +186,9 @@ _export(exports, { RelationshipValue: function() { return _types5.RelationshipValue; }, - RichTextCustomElement: function() { - return _types5.RichTextCustomElement; - }, - RichTextCustomLeaf: function() { - return _types5.RichTextCustomLeaf; - }, - RichTextElement: function() { - return _types5.RichTextElement; - }, RichTextField: function() { return _types5.RichTextField; }, - RichTextLeaf: function() { - return _types5.RichTextLeaf; - }, RowAdmin: function() { return _types5.RowAdmin; }, @@ -330,4 +321,4 @@ function _export_star(from, to) { return from; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vLi4vdHlwZXMnXG5cbmV4cG9ydCB7XG4gIEN1c3RvbVB1Ymxpc2hCdXR0b25Qcm9wcyxcbiAgQ3VzdG9tU2F2ZUJ1dHRvblByb3BzLFxuICBDdXN0b21TYXZlRHJhZnRCdXR0b25Qcm9wcyxcbn0gZnJvbSAnLi8uLi9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL3R5cGVzJ1xuXG5leHBvcnQgeyBSb3dMYWJlbCB9IGZyb20gJy4vLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Sb3dMYWJlbC90eXBlcydcblxuZXhwb3J0IHtcbiAgQWZ0ZXJDaGFuZ2VIb29rIGFzIENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2ssXG4gIEFmdGVyRGVsZXRlSG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJEZWxldGVIb29rLFxuICBBZnRlckZvcmdvdFBhc3N3b3JkSG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJGb3Jnb3RQYXNzd29yZEhvb2ssXG4gIEFmdGVyTG9naW5Ib29rIGFzIENvbGxlY3Rpb25BZnRlckxvZ2luSG9vayxcbiAgQWZ0ZXJPcGVyYXRpb25Ib29rIGFzIENvbGxlY3Rpb25BZnRlck9wZXJhdGlvbkhvb2ssXG4gIEFmdGVyUmVhZEhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyUmVhZEhvb2ssXG4gIEJlZm9yZUNoYW5nZUhvb2sgYXMgQ29sbGVjdGlvbkJlZm9yZUNoYW5nZUhvb2ssXG4gIEJlZm9yZURlbGV0ZUhvb2sgYXMgQ29sbGVjdGlvbkJlZm9yZURlbGV0ZUhvb2ssXG4gIEJlZm9yZUR1cGxpY2F0ZSxcbiAgQmVmb3JlTG9naW5Ib29rIGFzIENvbGxlY3Rpb25CZWZvcmVMb2dpbkhvb2ssXG4gIEJlZm9yZU9wZXJhdGlvbkhvb2sgYXMgQ29sbGVjdGlvbkJlZm9yZU9wZXJhdGlvbkhvb2ssXG4gIEJlZm9yZVJlYWRIb29rIGFzIENvbGxlY3Rpb25CZWZvcmVSZWFkSG9vayxcbiAgQmVmb3JlVmFsaWRhdGVIb29rIGFzIENvbGxlY3Rpb25CZWZvcmVWYWxpZGF0ZUhvb2ssXG4gIENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG4gIFR5cGVXaXRoSUQsXG59IGZyb20gJy4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgeyBBY2Nlc3MsIEFjY2Vzc0FyZ3MgfSBmcm9tICcuLy4uL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAnLi8uLi9kYXRhYmFzZS90eXBlcydcblxuZXhwb3J0IHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgQ29uZGl0aW9uLFxuICBEYXRlRmllbGQsXG4gIEVtYWlsRmllbGQsXG4gIEZpZWxkLFxuICBGaWVsZEFjY2VzcyxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBGaWVsZEJhc2UsXG4gIEZpZWxkSG9vayxcbiAgRmllbGRIb29rQXJncyxcbiAgRmllbGRQcmVzZW50YXRpb25hbE9ubHksXG4gIEZpZWxkV2l0aE1hbnksXG4gIEZpZWxkV2l0aE1heERlcHRoLFxuICBGaWVsZFdpdGhQYXRoLFxuICBGaWVsZFdpdGhTdWJGaWVsZHMsXG4gIEZpbHRlck9wdGlvbnMsXG4gIEZpbHRlck9wdGlvbnNQcm9wcyxcbiAgR3JvdXBGaWVsZCxcbiAgSG9va05hbWUsXG4gIEpTT05GaWVsZCxcbiAgTGFiZWxzLFxuICBOYW1lZFRhYixcbiAgTm9uUHJlc2VudGF0aW9uYWxGaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIE9wdGlvbixcbiAgT3B0aW9uT2JqZWN0LFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmVsYXRpb25zaGlwVmFsdWUsXG4gIFJpY2hUZXh0Q3VzdG9tRWxlbWVudCxcbiAgUmljaFRleHRDdXN0b21MZWFmLFxuICBSaWNoVGV4dEVsZW1lbnQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJpY2hUZXh0TGVhZixcbiAgUm93QWRtaW4sXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJBc0ZpZWxkLFxuICBUYWJzQWRtaW4sXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVSUZpZWxkLFxuICBVbm5hbWVkVGFiLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG4gIFZhbGlkYXRlT3B0aW9ucyxcbiAgVmFsdWVXaXRoUmVsYXRpb24sXG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSGFzTWF4RGVwdGgsXG4gIGZpZWxkSGFzU3ViRmllbGRzLFxuICBmaWVsZElzQXJyYXlUeXBlLFxuICBmaWVsZElzQmxvY2tUeXBlLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICBmaWVsZFN1cHBvcnRzTWFueSxcbiAgb3B0aW9uSXNPYmplY3QsXG4gIG9wdGlvbklzVmFsdWUsXG4gIG9wdGlvbnNBcmVPYmplY3RzLFxuICB0YWJIYXNOYW1lLFxuICB2YWx1ZUlzVmFsdWVXaXRoUmVsYXRpb24sXG59IGZyb20gJy4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHtcbiAgQWZ0ZXJDaGFuZ2VIb29rIGFzIEdsb2JhbEFmdGVyQ2hhbmdlSG9vayxcbiAgQWZ0ZXJSZWFkSG9vayBhcyBHbG9iYWxBZnRlclJlYWRIb29rLFxuICBCZWZvcmVDaGFuZ2VIb29rIGFzIEdsb2JhbEJlZm9yZUNoYW5nZUhvb2ssXG4gIEJlZm9yZVJlYWRIb29rIGFzIEdsb2JhbEJlZm9yZVJlYWRIb29rLFxuICBCZWZvcmVWYWxpZGF0ZUhvb2sgYXMgR2xvYmFsQmVmb3JlVmFsaWRhdGVIb29rLFxuICBHbG9iYWxDb25maWcsXG4gIFNhbml0aXplZEdsb2JhbENvbmZpZyxcbn0gZnJvbSAnLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgdmFsaWRPcGVyYXRvcnMgfSBmcm9tICcuLy4uL3R5cGVzL2NvbnN0YW50cydcbiJdLCJuYW1lcyI6WyJDdXN0b21QdWJsaXNoQnV0dG9uUHJvcHMiLCJDdXN0b21TYXZlQnV0dG9uUHJvcHMiLCJDdXN0b21TYXZlRHJhZnRCdXR0b25Qcm9wcyIsIlJvd0xhYmVsIiwiQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vayIsIkFmdGVyQ2hhbmdlSG9vayIsIkNvbGxlY3Rpb25BZnRlckRlbGV0ZUhvb2siLCJBZnRlckRlbGV0ZUhvb2siLCJDb2xsZWN0aW9uQWZ0ZXJGb3Jnb3RQYXNzd29yZEhvb2siLCJBZnRlckZvcmdvdFBhc3N3b3JkSG9vayIsIkNvbGxlY3Rpb25BZnRlckxvZ2luSG9vayIsIkFmdGVyTG9naW5Ib29rIiwiQ29sbGVjdGlvbkFmdGVyT3BlcmF0aW9uSG9vayIsIkFmdGVyT3BlcmF0aW9uSG9vayIsIkNvbGxlY3Rpb25BZnRlclJlYWRIb29rIiwiQWZ0ZXJSZWFkSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVDaGFuZ2VIb29rIiwiQmVmb3JlQ2hhbmdlSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVEZWxldGVIb29rIiwiQmVmb3JlRGVsZXRlSG9vayIsIkJlZm9yZUR1cGxpY2F0ZSIsIkNvbGxlY3Rpb25CZWZvcmVMb2dpbkhvb2siLCJCZWZvcmVMb2dpbkhvb2siLCJDb2xsZWN0aW9uQmVmb3JlT3BlcmF0aW9uSG9vayIsIkJlZm9yZU9wZXJhdGlvbkhvb2siLCJDb2xsZWN0aW9uQmVmb3JlUmVhZEhvb2siLCJCZWZvcmVSZWFkSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVWYWxpZGF0ZUhvb2siLCJCZWZvcmVWYWxpZGF0ZUhvb2siLCJDb2xsZWN0aW9uQ29uZmlnIiwiU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyIsIlR5cGVXaXRoSUQiLCJBY2Nlc3MiLCJBY2Nlc3NBcmdzIiwiRGF0YWJhc2VBZGFwdGVyIiwiQXJyYXlGaWVsZCIsIkJsb2NrIiwiQmxvY2tGaWVsZCIsIkNoZWNrYm94RmllbGQiLCJDb2RlRmllbGQiLCJDb2xsYXBzaWJsZUZpZWxkIiwiQ29uZGl0aW9uIiwiRGF0ZUZpZWxkIiwiRW1haWxGaWVsZCIsIkZpZWxkIiwiRmllbGRBY2Nlc3MiLCJGaWVsZEFmZmVjdGluZ0RhdGEiLCJGaWVsZEJhc2UiLCJGaWVsZEhvb2siLCJGaWVsZEhvb2tBcmdzIiwiRmllbGRQcmVzZW50YXRpb25hbE9ubHkiLCJGaWVsZFdpdGhNYW55IiwiRmllbGRXaXRoTWF4RGVwdGgiLCJGaWVsZFdpdGhQYXRoIiwiRmllbGRXaXRoU3ViRmllbGRzIiwiRmlsdGVyT3B0aW9ucyIsIkZpbHRlck9wdGlvbnNQcm9wcyIsIkdyb3VwRmllbGQiLCJIb29rTmFtZSIsIkpTT05GaWVsZCIsIkxhYmVscyIsIk5hbWVkVGFiIiwiTm9uUHJlc2VudGF0aW9uYWxGaWVsZCIsIk51bWJlckZpZWxkIiwiT3B0aW9uIiwiT3B0aW9uT2JqZWN0IiwiUG9pbnRGaWVsZCIsIlJhZGlvRmllbGQiLCJSZWxhdGlvbnNoaXBGaWVsZCIsIlJlbGF0aW9uc2hpcFZhbHVlIiwiUmljaFRleHRDdXN0b21FbGVtZW50IiwiUmljaFRleHRDdXN0b21MZWFmIiwiUmljaFRleHRFbGVtZW50IiwiUmljaFRleHRGaWVsZCIsIlJpY2hUZXh0TGVhZiIsIlJvd0FkbWluIiwiUm93RmllbGQiLCJTZWxlY3RGaWVsZCIsIlRhYiIsIlRhYkFzRmllbGQiLCJUYWJzQWRtaW4iLCJUYWJzRmllbGQiLCJUZXh0RmllbGQiLCJUZXh0YXJlYUZpZWxkIiwiVUlGaWVsZCIsIlVubmFtZWRUYWIiLCJVcGxvYWRGaWVsZCIsIlZhbGlkYXRlIiwiVmFsaWRhdGVPcHRpb25zIiwiVmFsdWVXaXRoUmVsYXRpb24iLCJmaWVsZEFmZmVjdHNEYXRhIiwiZmllbGRIYXNNYXhEZXB0aCIsImZpZWxkSGFzU3ViRmllbGRzIiwiZmllbGRJc0FycmF5VHlwZSIsImZpZWxkSXNCbG9ja1R5cGUiLCJmaWVsZElzTG9jYWxpemVkIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImZpZWxkU3VwcG9ydHNNYW55Iiwib3B0aW9uSXNPYmplY3QiLCJvcHRpb25Jc1ZhbHVlIiwib3B0aW9uc0FyZU9iamVjdHMiLCJ0YWJIYXNOYW1lIiwidmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uIiwiR2xvYmFsQWZ0ZXJDaGFuZ2VIb29rIiwiR2xvYmFsQWZ0ZXJSZWFkSG9vayIsIkdsb2JhbEJlZm9yZUNoYW5nZUhvb2siLCJHbG9iYWxCZWZvcmVSZWFkSG9vayIsIkdsb2JhbEJlZm9yZVZhbGlkYXRlSG9vayIsIkdsb2JhbENvbmZpZyIsIlNhbml0aXplZEdsb2JhbENvbmZpZyIsInZhbGlkT3BlcmF0b3JzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUdFQSx3QkFBd0I7ZUFBeEJBLCtCQUF3Qjs7SUFDeEJDLHFCQUFxQjtlQUFyQkEsNEJBQXFCOztJQUNyQkMsMEJBQTBCO2VBQTFCQSxpQ0FBMEI7O0lBR25CQyxRQUFRO2VBQVJBLGdCQUFROztJQUdJQyx5QkFBeUI7ZUFBNUNDLHVCQUFlOztJQUNJQyx5QkFBeUI7ZUFBNUNDLHVCQUFlOztJQUNZQyxpQ0FBaUM7ZUFBNURDLCtCQUF1Qjs7SUFDTEMsd0JBQXdCO2VBQTFDQyxzQkFBYzs7SUFDUUMsNEJBQTRCO2VBQWxEQywwQkFBa0I7O0lBQ0RDLHVCQUF1QjtlQUF4Q0MscUJBQWE7O0lBQ09DLDBCQUEwQjtlQUE5Q0Msd0JBQWdCOztJQUNJQywwQkFBMEI7ZUFBOUNDLHdCQUFnQjs7SUFDaEJDLGVBQWU7ZUFBZkEsdUJBQWU7O0lBQ0lDLHlCQUF5QjtlQUE1Q0MsdUJBQWU7O0lBQ1FDLDZCQUE2QjtlQUFwREMsMkJBQW1COztJQUNEQyx3QkFBd0I7ZUFBMUNDLHNCQUFjOztJQUNRQyw0QkFBNEI7ZUFBbERDLDBCQUFrQjs7SUFDbEJDLGdCQUFnQjtlQUFoQkEsd0JBQWdCOztJQUNoQkMseUJBQXlCO2VBQXpCQSxpQ0FBeUI7O0lBQ3pCQyxVQUFVO2VBQVZBLGtCQUFVOztJQUdIQyxNQUFNO2VBQU5BLGNBQU07O0lBQUVDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBRWxCQyxlQUFlO2VBQWZBLHVCQUFlOztJQUd0QkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsS0FBSztlQUFMQSxhQUFLOztJQUNMQyxVQUFVO2VBQVZBLGtCQUFVOztJQUNWQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxnQkFBZ0I7ZUFBaEJBLHdCQUFnQjs7SUFDaEJDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLEtBQUs7ZUFBTEEsYUFBSzs7SUFDTEMsV0FBVztlQUFYQSxtQkFBVzs7SUFDWEMsa0JBQWtCO2VBQWxCQSwwQkFBa0I7O0lBQ2xCQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyx1QkFBdUI7ZUFBdkJBLCtCQUF1Qjs7SUFDdkJDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLGlCQUFpQjtlQUFqQkEseUJBQWlCOztJQUNqQkMsYUFBYTtlQUFiQSxxQkFBYTs7SUFDYkMsa0JBQWtCO2VBQWxCQSwwQkFBa0I7O0lBQ2xCQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyxrQkFBa0I7ZUFBbEJBLDBCQUFrQjs7SUFDbEJDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLFFBQVE7ZUFBUkEsZ0JBQVE7O0lBQ1JDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLE1BQU07ZUFBTkEsY0FBTTs7SUFDTkMsUUFBUTtlQUFSQSxnQkFBUTs7SUFDUkMsc0JBQXNCO2VBQXRCQSw4QkFBc0I7O0lBQ3RCQyxXQUFXO2VBQVhBLG1CQUFXOztJQUNYQyxNQUFNO2VBQU5BLGNBQU07O0lBQ05DLFlBQVk7ZUFBWkEsb0JBQVk7O0lBQ1pDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLGlCQUFpQjtlQUFqQkEseUJBQWlCOztJQUNqQkMsaUJBQWlCO2VBQWpCQSx5QkFBaUI7O0lBQ2pCQyxxQkFBcUI7ZUFBckJBLDZCQUFxQjs7SUFDckJDLGtCQUFrQjtlQUFsQkEsMEJBQWtCOztJQUNsQkMsZUFBZTtlQUFmQSx1QkFBZTs7SUFDZkMsYUFBYTtlQUFiQSxxQkFBYTs7SUFDYkMsWUFBWTtlQUFaQSxvQkFBWTs7SUFDWkMsUUFBUTtlQUFSQSxnQkFBUTs7SUFDUkMsUUFBUTtlQUFSQSxnQkFBUTs7SUFDUkMsV0FBVztlQUFYQSxtQkFBVzs7SUFDWEMsR0FBRztlQUFIQSxXQUFHOztJQUNIQyxVQUFVO2VBQVZBLGtCQUFVOztJQUNWQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyxPQUFPO2VBQVBBLGVBQU87O0lBQ1BDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLFdBQVc7ZUFBWEEsbUJBQVc7O0lBQ1hDLFFBQVE7ZUFBUkEsZ0JBQVE7O0lBQ1JDLGVBQWU7ZUFBZkEsdUJBQWU7O0lBQ2ZDLGlCQUFpQjtlQUFqQkEseUJBQWlCOztJQUNqQkMsZ0JBQWdCO2VBQWhCQSx3QkFBZ0I7O0lBQ2hCQyxnQkFBZ0I7ZUFBaEJBLHdCQUFnQjs7SUFDaEJDLGlCQUFpQjtlQUFqQkEseUJBQWlCOztJQUNqQkMsZ0JBQWdCO2VBQWhCQSx3QkFBZ0I7O0lBQ2hCQyxnQkFBZ0I7ZUFBaEJBLHdCQUFnQjs7SUFDaEJDLGdCQUFnQjtlQUFoQkEsd0JBQWdCOztJQUNoQkMseUJBQXlCO2VBQXpCQSxpQ0FBeUI7O0lBQ3pCQyxpQkFBaUI7ZUFBakJBLHlCQUFpQjs7SUFDakJDLGNBQWM7ZUFBZEEsc0JBQWM7O0lBQ2RDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLGlCQUFpQjtlQUFqQkEseUJBQWlCOztJQUNqQkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsd0JBQXdCO2VBQXhCQSxnQ0FBd0I7O0lBSUxDLHFCQUFxQjtlQUF4Q2xHLHVCQUFlOztJQUNFbUcsbUJBQW1CO2VBQXBDekYscUJBQWE7O0lBQ08wRixzQkFBc0I7ZUFBMUN4Rix3QkFBZ0I7O0lBQ0V5RixvQkFBb0I7ZUFBdENoRixzQkFBYzs7SUFDUWlGLHdCQUF3QjtlQUE5Qy9FLDBCQUFrQjs7SUFDbEJnRixZQUFZO2VBQVpBLG9CQUFZOztJQUNaQyxxQkFBcUI7ZUFBckJBLDZCQUFxQjs7SUFHZEMsY0FBYztlQUFkQSx5QkFBYzs7O3FCQWxIVDt1QkFNUDt3QkFFa0I7d0JBbUJsQjt3QkFFNEI7d0JBRUg7d0JBdUV6Qjt3QkFVQTsyQkFFd0IifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vLi4vdHlwZXMnXG5cbmV4cG9ydCB0eXBlIHtcbiAgQ3JlYXRlRm9ybURhdGEsXG4gIEZpZWxkcyxcbiAgRm9ybUZpZWxkLFxuICBGb3JtRmllbGRzQ29udGV4dCxcbn0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9mb3Jtcy9Gb3JtL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSB7XG4gIFJpY2hUZXh0QWRhcHRlcixcbiAgUmljaFRleHRGaWVsZFByb3BzLFxufSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuXG5leHBvcnQgdHlwZSB7IENlbGxDb21wb25lbnRQcm9wcyB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvY29sbGVjdGlvbnMvTGlzdC9DZWxsL3R5cGVzJ1xuXG5leHBvcnQge1xuICBDdXN0b21QdWJsaXNoQnV0dG9uUHJvcHMsXG4gIEN1c3RvbVNhdmVCdXR0b25Qcm9wcyxcbiAgQ3VzdG9tU2F2ZURyYWZ0QnV0dG9uUHJvcHMsXG59IGZyb20gJy4vLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy90eXBlcydcblxuZXhwb3J0IHsgUm93TGFiZWwgfSBmcm9tICcuLy4uL2FkbWluL2NvbXBvbmVudHMvZm9ybXMvUm93TGFiZWwvdHlwZXMnXG5cbmV4cG9ydCB7XG4gIEFmdGVyQ2hhbmdlSG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rLFxuICBBZnRlckRlbGV0ZUhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyRGVsZXRlSG9vayxcbiAgQWZ0ZXJGb3Jnb3RQYXNzd29yZEhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyRm9yZ290UGFzc3dvcmRIb29rLFxuICBBZnRlckxvZ2luSG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJMb2dpbkhvb2ssXG4gIEFmdGVyT3BlcmF0aW9uSG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJPcGVyYXRpb25Ib29rLFxuICBBZnRlclJlYWRIb29rIGFzIENvbGxlY3Rpb25BZnRlclJlYWRIb29rLFxuICBCZWZvcmVDaGFuZ2VIb29rIGFzIENvbGxlY3Rpb25CZWZvcmVDaGFuZ2VIb29rLFxuICBCZWZvcmVEZWxldGVIb29rIGFzIENvbGxlY3Rpb25CZWZvcmVEZWxldGVIb29rLFxuICBCZWZvcmVEdXBsaWNhdGUsXG4gIEJlZm9yZUxvZ2luSG9vayBhcyBDb2xsZWN0aW9uQmVmb3JlTG9naW5Ib29rLFxuICBCZWZvcmVPcGVyYXRpb25Ib29rIGFzIENvbGxlY3Rpb25CZWZvcmVPcGVyYXRpb25Ib29rLFxuICBCZWZvcmVSZWFkSG9vayBhcyBDb2xsZWN0aW9uQmVmb3JlUmVhZEhvb2ssXG4gIEJlZm9yZVZhbGlkYXRlSG9vayBhcyBDb2xsZWN0aW9uQmVmb3JlVmFsaWRhdGVIb29rLFxuICBDb2xsZWN0aW9uLFxuICBDb2xsZWN0aW9uQ29uZmlnLFxuICBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnLFxuICBUeXBlV2l0aElELFxufSBmcm9tICcuLy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgQWNjZXNzLCBBY2Nlc3NBcmdzIH0gZnJvbSAnLi8uLi9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCB7IERhdGFiYXNlQWRhcHRlciB9IGZyb20gJy4vLi4vZGF0YWJhc2UvdHlwZXMnXG5cbmV4cG9ydCB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIENvbmRpdGlvbixcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBY2Nlc3MsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgRmllbGRCYXNlLFxuICBGaWVsZEhvb2ssXG4gIEZpZWxkSG9va0FyZ3MsXG4gIEZpZWxkUHJlc2VudGF0aW9uYWxPbmx5LFxuICBGaWVsZFdpdGhNYW55LFxuICBGaWVsZFdpdGhNYXhEZXB0aCxcbiAgRmllbGRXaXRoUGF0aCxcbiAgRmllbGRXaXRoU3ViRmllbGRzLFxuICBGaWx0ZXJPcHRpb25zLFxuICBGaWx0ZXJPcHRpb25zUHJvcHMsXG4gIEdyb3VwRmllbGQsXG4gIEhvb2tOYW1lLFxuICBKU09ORmllbGQsXG4gIExhYmVscyxcbiAgTmFtZWRUYWIsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBPcHRpb24sXG4gIE9wdGlvbk9iamVjdCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dBZG1pbixcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYkFzRmllbGQsXG4gIFRhYnNBZG1pbixcbiAgVGFic0ZpZWxkLFxuICBUZXh0RmllbGQsXG4gIFRleHRhcmVhRmllbGQsXG4gIFVJRmllbGQsXG4gIFVubmFtZWRUYWIsXG4gIFVwbG9hZEZpZWxkLFxuICBWYWxpZGF0ZSxcbiAgVmFsaWRhdGVPcHRpb25zLFxuICBWYWx1ZVdpdGhSZWxhdGlvbixcbiAgZmllbGRBZmZlY3RzRGF0YSxcbiAgZmllbGRIYXNNYXhEZXB0aCxcbiAgZmllbGRIYXNTdWJGaWVsZHMsXG4gIGZpZWxkSXNBcnJheVR5cGUsXG4gIGZpZWxkSXNCbG9ja1R5cGUsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIGZpZWxkU3VwcG9ydHNNYW55LFxuICBvcHRpb25Jc09iamVjdCxcbiAgb3B0aW9uSXNWYWx1ZSxcbiAgb3B0aW9uc0FyZU9iamVjdHMsXG4gIHRhYkhhc05hbWUsXG4gIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbixcbn0gZnJvbSAnLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuZXhwb3J0IHtcbiAgQWZ0ZXJDaGFuZ2VIb29rIGFzIEdsb2JhbEFmdGVyQ2hhbmdlSG9vayxcbiAgQWZ0ZXJSZWFkSG9vayBhcyBHbG9iYWxBZnRlclJlYWRIb29rLFxuICBCZWZvcmVDaGFuZ2VIb29rIGFzIEdsb2JhbEJlZm9yZUNoYW5nZUhvb2ssXG4gIEJlZm9yZVJlYWRIb29rIGFzIEdsb2JhbEJlZm9yZVJlYWRIb29rLFxuICBCZWZvcmVWYWxpZGF0ZUhvb2sgYXMgR2xvYmFsQmVmb3JlVmFsaWRhdGVIb29rLFxuICBHbG9iYWxDb25maWcsXG4gIFNhbml0aXplZEdsb2JhbENvbmZpZyxcbn0gZnJvbSAnLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IHsgdmFsaWRPcGVyYXRvcnMgfSBmcm9tICcuLy4uL3R5cGVzL2NvbnN0YW50cydcbiJdLCJuYW1lcyI6WyJDdXN0b21QdWJsaXNoQnV0dG9uUHJvcHMiLCJDdXN0b21TYXZlQnV0dG9uUHJvcHMiLCJDdXN0b21TYXZlRHJhZnRCdXR0b25Qcm9wcyIsIlJvd0xhYmVsIiwiQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vayIsIkFmdGVyQ2hhbmdlSG9vayIsIkNvbGxlY3Rpb25BZnRlckRlbGV0ZUhvb2siLCJBZnRlckRlbGV0ZUhvb2siLCJDb2xsZWN0aW9uQWZ0ZXJGb3Jnb3RQYXNzd29yZEhvb2siLCJBZnRlckZvcmdvdFBhc3N3b3JkSG9vayIsIkNvbGxlY3Rpb25BZnRlckxvZ2luSG9vayIsIkFmdGVyTG9naW5Ib29rIiwiQ29sbGVjdGlvbkFmdGVyT3BlcmF0aW9uSG9vayIsIkFmdGVyT3BlcmF0aW9uSG9vayIsIkNvbGxlY3Rpb25BZnRlclJlYWRIb29rIiwiQWZ0ZXJSZWFkSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVDaGFuZ2VIb29rIiwiQmVmb3JlQ2hhbmdlSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVEZWxldGVIb29rIiwiQmVmb3JlRGVsZXRlSG9vayIsIkJlZm9yZUR1cGxpY2F0ZSIsIkNvbGxlY3Rpb25CZWZvcmVMb2dpbkhvb2siLCJCZWZvcmVMb2dpbkhvb2siLCJDb2xsZWN0aW9uQmVmb3JlT3BlcmF0aW9uSG9vayIsIkJlZm9yZU9wZXJhdGlvbkhvb2siLCJDb2xsZWN0aW9uQmVmb3JlUmVhZEhvb2siLCJCZWZvcmVSZWFkSG9vayIsIkNvbGxlY3Rpb25CZWZvcmVWYWxpZGF0ZUhvb2siLCJCZWZvcmVWYWxpZGF0ZUhvb2siLCJDb2xsZWN0aW9uIiwiQ29sbGVjdGlvbkNvbmZpZyIsIlNhbml0aXplZENvbGxlY3Rpb25Db25maWciLCJUeXBlV2l0aElEIiwiQWNjZXNzIiwiQWNjZXNzQXJncyIsIkRhdGFiYXNlQWRhcHRlciIsIkFycmF5RmllbGQiLCJCbG9jayIsIkJsb2NrRmllbGQiLCJDaGVja2JveEZpZWxkIiwiQ29kZUZpZWxkIiwiQ29sbGFwc2libGVGaWVsZCIsIkNvbmRpdGlvbiIsIkRhdGVGaWVsZCIsIkVtYWlsRmllbGQiLCJGaWVsZCIsIkZpZWxkQWNjZXNzIiwiRmllbGRBZmZlY3RpbmdEYXRhIiwiRmllbGRCYXNlIiwiRmllbGRIb29rIiwiRmllbGRIb29rQXJncyIsIkZpZWxkUHJlc2VudGF0aW9uYWxPbmx5IiwiRmllbGRXaXRoTWFueSIsIkZpZWxkV2l0aE1heERlcHRoIiwiRmllbGRXaXRoUGF0aCIsIkZpZWxkV2l0aFN1YkZpZWxkcyIsIkZpbHRlck9wdGlvbnMiLCJGaWx0ZXJPcHRpb25zUHJvcHMiLCJHcm91cEZpZWxkIiwiSG9va05hbWUiLCJKU09ORmllbGQiLCJMYWJlbHMiLCJOYW1lZFRhYiIsIk5vblByZXNlbnRhdGlvbmFsRmllbGQiLCJOdW1iZXJGaWVsZCIsIk9wdGlvbiIsIk9wdGlvbk9iamVjdCIsIlBvaW50RmllbGQiLCJSYWRpb0ZpZWxkIiwiUmVsYXRpb25zaGlwRmllbGQiLCJSZWxhdGlvbnNoaXBWYWx1ZSIsIlJpY2hUZXh0RmllbGQiLCJSb3dBZG1pbiIsIlJvd0ZpZWxkIiwiU2VsZWN0RmllbGQiLCJUYWIiLCJUYWJBc0ZpZWxkIiwiVGFic0FkbWluIiwiVGFic0ZpZWxkIiwiVGV4dEZpZWxkIiwiVGV4dGFyZWFGaWVsZCIsIlVJRmllbGQiLCJVbm5hbWVkVGFiIiwiVXBsb2FkRmllbGQiLCJWYWxpZGF0ZSIsIlZhbGlkYXRlT3B0aW9ucyIsIlZhbHVlV2l0aFJlbGF0aW9uIiwiZmllbGRBZmZlY3RzRGF0YSIsImZpZWxkSGFzTWF4RGVwdGgiLCJmaWVsZEhhc1N1YkZpZWxkcyIsImZpZWxkSXNBcnJheVR5cGUiLCJmaWVsZElzQmxvY2tUeXBlIiwiZmllbGRJc0xvY2FsaXplZCIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJmaWVsZFN1cHBvcnRzTWFueSIsIm9wdGlvbklzT2JqZWN0Iiwib3B0aW9uSXNWYWx1ZSIsIm9wdGlvbnNBcmVPYmplY3RzIiwidGFiSGFzTmFtZSIsInZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiIsIkdsb2JhbEFmdGVyQ2hhbmdlSG9vayIsIkdsb2JhbEFmdGVyUmVhZEhvb2siLCJHbG9iYWxCZWZvcmVDaGFuZ2VIb29rIiwiR2xvYmFsQmVmb3JlUmVhZEhvb2siLCJHbG9iYWxCZWZvcmVWYWxpZGF0ZUhvb2siLCJHbG9iYWxDb25maWciLCJTYW5pdGl6ZWRHbG9iYWxDb25maWciLCJ2YWxpZE9wZXJhdG9ycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFpQkVBLHdCQUF3QjtlQUF4QkEsK0JBQXdCOztJQUN4QkMscUJBQXFCO2VBQXJCQSw0QkFBcUI7O0lBQ3JCQywwQkFBMEI7ZUFBMUJBLGlDQUEwQjs7SUFHbkJDLFFBQVE7ZUFBUkEsZ0JBQVE7O0lBR0lDLHlCQUF5QjtlQUE1Q0MsdUJBQWU7O0lBQ0lDLHlCQUF5QjtlQUE1Q0MsdUJBQWU7O0lBQ1lDLGlDQUFpQztlQUE1REMsK0JBQXVCOztJQUNMQyx3QkFBd0I7ZUFBMUNDLHNCQUFjOztJQUNRQyw0QkFBNEI7ZUFBbERDLDBCQUFrQjs7SUFDREMsdUJBQXVCO2VBQXhDQyxxQkFBYTs7SUFDT0MsMEJBQTBCO2VBQTlDQyx3QkFBZ0I7O0lBQ0lDLDBCQUEwQjtlQUE5Q0Msd0JBQWdCOztJQUNoQkMsZUFBZTtlQUFmQSx1QkFBZTs7SUFDSUMseUJBQXlCO2VBQTVDQyx1QkFBZTs7SUFDUUMsNkJBQTZCO2VBQXBEQywyQkFBbUI7O0lBQ0RDLHdCQUF3QjtlQUExQ0Msc0JBQWM7O0lBQ1FDLDRCQUE0QjtlQUFsREMsMEJBQWtCOztJQUNsQkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsZ0JBQWdCO2VBQWhCQSx3QkFBZ0I7O0lBQ2hCQyx5QkFBeUI7ZUFBekJBLGlDQUF5Qjs7SUFDekJDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBR0hDLE1BQU07ZUFBTkEsY0FBTTs7SUFBRUMsVUFBVTtlQUFWQSxrQkFBVTs7SUFFbEJDLGVBQWU7ZUFBZkEsdUJBQWU7O0lBR3RCQyxVQUFVO2VBQVZBLGtCQUFVOztJQUNWQyxLQUFLO2VBQUxBLGFBQUs7O0lBQ0xDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLGdCQUFnQjtlQUFoQkEsd0JBQWdCOztJQUNoQkMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsS0FBSztlQUFMQSxhQUFLOztJQUNMQyxXQUFXO2VBQVhBLG1CQUFXOztJQUNYQyxrQkFBa0I7ZUFBbEJBLDBCQUFrQjs7SUFDbEJDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLFNBQVM7ZUFBVEEsaUJBQVM7O0lBQ1RDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLHVCQUF1QjtlQUF2QkEsK0JBQXVCOztJQUN2QkMsYUFBYTtlQUFiQSxxQkFBYTs7SUFDYkMsaUJBQWlCO2VBQWpCQSx5QkFBaUI7O0lBQ2pCQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyxrQkFBa0I7ZUFBbEJBLDBCQUFrQjs7SUFDbEJDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLGtCQUFrQjtlQUFsQkEsMEJBQWtCOztJQUNsQkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsUUFBUTtlQUFSQSxnQkFBUTs7SUFDUkMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsTUFBTTtlQUFOQSxjQUFNOztJQUNOQyxRQUFRO2VBQVJBLGdCQUFROztJQUNSQyxzQkFBc0I7ZUFBdEJBLDhCQUFzQjs7SUFDdEJDLFdBQVc7ZUFBWEEsbUJBQVc7O0lBQ1hDLE1BQU07ZUFBTkEsY0FBTTs7SUFDTkMsWUFBWTtlQUFaQSxvQkFBWTs7SUFDWkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsaUJBQWlCO2VBQWpCQSx5QkFBaUI7O0lBQ2pCQyxpQkFBaUI7ZUFBakJBLHlCQUFpQjs7SUFDakJDLGFBQWE7ZUFBYkEscUJBQWE7O0lBQ2JDLFFBQVE7ZUFBUkEsZ0JBQVE7O0lBQ1JDLFFBQVE7ZUFBUkEsZ0JBQVE7O0lBQ1JDLFdBQVc7ZUFBWEEsbUJBQVc7O0lBQ1hDLEdBQUc7ZUFBSEEsV0FBRzs7SUFDSEMsVUFBVTtlQUFWQSxrQkFBVTs7SUFDVkMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsU0FBUztlQUFUQSxpQkFBUzs7SUFDVEMsYUFBYTtlQUFiQSxxQkFBYTs7SUFDYkMsT0FBTztlQUFQQSxlQUFPOztJQUNQQyxVQUFVO2VBQVZBLGtCQUFVOztJQUNWQyxXQUFXO2VBQVhBLG1CQUFXOztJQUNYQyxRQUFRO2VBQVJBLGdCQUFROztJQUNSQyxlQUFlO2VBQWZBLHVCQUFlOztJQUNmQyxpQkFBaUI7ZUFBakJBLHlCQUFpQjs7SUFDakJDLGdCQUFnQjtlQUFoQkEsd0JBQWdCOztJQUNoQkMsZ0JBQWdCO2VBQWhCQSx3QkFBZ0I7O0lBQ2hCQyxpQkFBaUI7ZUFBakJBLHlCQUFpQjs7SUFDakJDLGdCQUFnQjtlQUFoQkEsd0JBQWdCOztJQUNoQkMsZ0JBQWdCO2VBQWhCQSx3QkFBZ0I7O0lBQ2hCQyxnQkFBZ0I7ZUFBaEJBLHdCQUFnQjs7SUFDaEJDLHlCQUF5QjtlQUF6QkEsaUNBQXlCOztJQUN6QkMsaUJBQWlCO2VBQWpCQSx5QkFBaUI7O0lBQ2pCQyxjQUFjO2VBQWRBLHNCQUFjOztJQUNkQyxhQUFhO2VBQWJBLHFCQUFhOztJQUNiQyxpQkFBaUI7ZUFBakJBLHlCQUFpQjs7SUFDakJDLFVBQVU7ZUFBVkEsa0JBQVU7O0lBQ1ZDLHdCQUF3QjtlQUF4QkEsZ0NBQXdCOztJQUdMQyxxQkFBcUI7ZUFBeEMvRix1QkFBZTs7SUFDRWdHLG1CQUFtQjtlQUFwQ3RGLHFCQUFhOztJQUNPdUYsc0JBQXNCO2VBQTFDckYsd0JBQWdCOztJQUNFc0Ysb0JBQW9CO2VBQXRDN0Usc0JBQWM7O0lBQ1E4RSx3QkFBd0I7ZUFBOUM1RSwwQkFBa0I7O0lBQ2xCNkUsWUFBWTtlQUFaQSxvQkFBWTs7SUFDWkMscUJBQXFCO2VBQXJCQSw2QkFBcUI7O0lBR2RDLGNBQWM7ZUFBZEEseUJBQWM7OztxQkE1SFQ7dUJBb0JQO3dCQUVrQjt3QkFvQmxCO3dCQUU0Qjt3QkFFSDt3QkFtRXpCO3dCQVNBOzJCQUV3QiJ9 \ No newline at end of file diff --git a/packages/payload/utilities.d.ts b/packages/payload/utilities.d.ts index d2ab857e9..af6288556 100644 --- a/packages/payload/utilities.d.ts +++ b/packages/payload/utilities.d.ts @@ -1,6 +1,10 @@ +export { extractTranslations } from './dist/translations/extractTranslations'; export { i18nInit } from './dist/translations/init'; export { combineMerge } from './dist/utilities/combineMerge'; export { configToJSONSchema, entityToJSONSchema } from './dist/utilities/configToJSONSchema'; export { createArrayFromCommaDelineated } from './dist/utilities/createArrayFromCommaDelineated'; +export { deepCopyObject } from './dist/utilities/deepCopyObject'; +export { deepMerge } from './dist/utilities/deepMerge'; export { default as flattenTopLevelFields } from './dist/utilities/flattenTopLevelFields'; +export { getTranslation } from './dist/utilities/getTranslation'; //# sourceMappingURL=utilities.d.ts.map \ No newline at end of file diff --git a/packages/payload/utilities.js b/packages/payload/utilities.js index 95fa53936..1ea83d855 100644 --- a/packages/payload/utilities.js +++ b/packages/payload/utilities.js @@ -9,6 +9,9 @@ function _export(target, all) { }); } _export(exports, { + extractTranslations: function() { + return _extractTranslations.extractTranslations; + }, i18nInit: function() { return _init.i18nInit; }, @@ -24,19 +27,32 @@ _export(exports, { createArrayFromCommaDelineated: function() { return _createArrayFromCommaDelineated.createArrayFromCommaDelineated; }, + deepCopyObject: function() { + return _deepCopyObject.deepCopyObject; + }, + deepMerge: function() { + return _deepMerge.deepMerge; + }, flattenTopLevelFields: function() { return _flattenTopLevelFields.default; + }, + getTranslation: function() { + return _getTranslation.getTranslation; } }); +const _extractTranslations = require("./dist/translations/extractTranslations"); const _init = require("./dist/translations/init"); const _combineMerge = require("./dist/utilities/combineMerge"); const _configToJSONSchema = require("./dist/utilities/configToJSONSchema"); const _createArrayFromCommaDelineated = require("./dist/utilities/createArrayFromCommaDelineated"); +const _deepCopyObject = require("./dist/utilities/deepCopyObject"); +const _deepMerge = require("./dist/utilities/deepMerge"); const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("./dist/utilities/flattenTopLevelFields")); +const _getTranslation = require("./dist/utilities/getTranslation"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL3V0aWxpdGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBpMThuSW5pdCB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9pbml0J1xuXG5leHBvcnQgeyBjb21iaW5lTWVyZ2UgfSBmcm9tICcuLi91dGlsaXRpZXMvY29tYmluZU1lcmdlJ1xuZXhwb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hLCBlbnRpdHlUb0pTT05TY2hlbWEgfSBmcm9tICcuLi91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hJ1xuZXhwb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCc7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2ZsYXR0ZW5Ub3BMZXZlbEZpZWxkcydcbiJdLCJuYW1lcyI6WyJpMThuSW5pdCIsImNvbWJpbmVNZXJnZSIsImNvbmZpZ1RvSlNPTlNjaGVtYSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsImZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBU0EsUUFBUTtlQUFSQSxjQUFROztJQUVSQyxZQUFZO2VBQVpBLDBCQUFZOztJQUNaQyxrQkFBa0I7ZUFBbEJBLHNDQUFrQjs7SUFBRUMsa0JBQWtCO2VBQWxCQSxzQ0FBa0I7O0lBQ3RDQyw4QkFBOEI7ZUFBOUJBLDhEQUE4Qjs7SUFFbkJDLHFCQUFxQjtlQUFyQkEsOEJBQXFCOzs7c0JBTmhCOzhCQUVJO29DQUMwQjtnREFDUjs4RUFFRSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL3V0aWxpdGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBleHRyYWN0VHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vdHJhbnNsYXRpb25zL2V4dHJhY3RUcmFuc2xhdGlvbnMnXG5leHBvcnQgeyBpMThuSW5pdCB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9pbml0J1xuXG5leHBvcnQgeyBjb21iaW5lTWVyZ2UgfSBmcm9tICcuLi91dGlsaXRpZXMvY29tYmluZU1lcmdlJ1xuZXhwb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hLCBlbnRpdHlUb0pTT05TY2hlbWEgfSBmcm9tICcuLi91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hJ1xuZXhwb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCc7XG5cbmV4cG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi4vdXRpbGl0aWVzL2RlZXBDb3B5T2JqZWN0J1xuZXhwb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2RlZXBNZXJnZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2ZsYXR0ZW5Ub3BMZXZlbEZpZWxkcydcbmV4cG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuIl0sIm5hbWVzIjpbImV4dHJhY3RUcmFuc2xhdGlvbnMiLCJpMThuSW5pdCIsImNvbWJpbmVNZXJnZSIsImNvbmZpZ1RvSlNPTlNjaGVtYSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsImRlZXBDb3B5T2JqZWN0IiwiZGVlcE1lcmdlIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZ2V0VHJhbnNsYXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQVNBLG1CQUFtQjtlQUFuQkEsd0NBQW1COztJQUNuQkMsUUFBUTtlQUFSQSxjQUFROztJQUVSQyxZQUFZO2VBQVpBLDBCQUFZOztJQUNaQyxrQkFBa0I7ZUFBbEJBLHNDQUFrQjs7SUFBRUMsa0JBQWtCO2VBQWxCQSxzQ0FBa0I7O0lBQ3RDQyw4QkFBOEI7ZUFBOUJBLDhEQUE4Qjs7SUFFOUJDLGNBQWM7ZUFBZEEsOEJBQWM7O0lBQ2RDLFNBQVM7ZUFBVEEsb0JBQVM7O0lBQ0VDLHFCQUFxQjtlQUFyQkEsOEJBQXFCOztJQUNoQ0MsY0FBYztlQUFkQSw4QkFBYzs7O3FDQVZhO3NCQUNYOzhCQUVJO29DQUMwQjtnREFDUjtnQ0FFaEI7MkJBQ0w7OEVBQ3VCO2dDQUNsQiJ9 \ No newline at end of file diff --git a/packages/richtext-slate/.eslintignore b/packages/richtext-slate/.eslintignore new file mode 100644 index 000000000..247f3f12d --- /dev/null +++ b/packages/richtext-slate/.eslintignore @@ -0,0 +1,10 @@ +.tmp +**/.git +**/.hg +**/.pnp.* +**/.svn +**/.yarn/** +**/build +**/dist/** +**/node_modules +**/temp diff --git a/packages/richtext-slate/.eslintrc.cjs b/packages/richtext-slate/.eslintrc.cjs new file mode 100644 index 000000000..638d7f813 --- /dev/null +++ b/packages/richtext-slate/.eslintrc.cjs @@ -0,0 +1,15 @@ +/** @type {import('prettier').Config} */ +module.exports = { + extends: ['@payloadcms'], + overrides: [ + { + extends: ['plugin:@typescript-eslint/disable-type-checked'], + files: ['*.js', '*.cjs', '*.json', '*.md', '*.yml', '*.yaml'], + }, + ], + parserOptions: { + project: ['./tsconfig.json'], + tsconfigRootDir: __dirname, + }, + root: true, +} diff --git a/packages/richtext-slate/.prettierignore b/packages/richtext-slate/.prettierignore new file mode 100644 index 000000000..247f3f12d --- /dev/null +++ b/packages/richtext-slate/.prettierignore @@ -0,0 +1,10 @@ +.tmp +**/.git +**/.hg +**/.pnp.* +**/.svn +**/.yarn/** +**/build +**/dist/** +**/node_modules +**/temp diff --git a/packages/richtext-slate/.swcrc b/packages/richtext-slate/.swcrc new file mode 100644 index 000000000..d46b555fe --- /dev/null +++ b/packages/richtext-slate/.swcrc @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "sourceMaps": "inline", + "jsc": { + "target": "esnext", + "parser": { + "syntax": "typescript", + "tsx": true, + "dts": true + } + }, + "module": { + "type": "commonjs" + } +} diff --git a/packages/richtext-slate/package.json b/packages/richtext-slate/package.json new file mode 100644 index 000000000..0bd36f6e6 --- /dev/null +++ b/packages/richtext-slate/package.json @@ -0,0 +1,44 @@ +{ + "name": "@payloadcms/richtext-slate", + "description": "The officially supported Slate richtext adapter for Payload", + "author": "Payload CMS, Inc.", + "dependencies": { + "@faceless-ui/modal": "2.0.1", + "i18next": "22.5.1", + "is-hotkey": "0.2.0", + "react": "18.2.0", + "react-i18next": "11.18.6", + "slate": "0.91.4", + "slate-history": "0.86.0", + "slate-hyperscript": "0.81.3", + "slate-react": "0.92.0" + }, + "devDependencies": { + "@payloadcms/eslint-config": "workspace:*", + "@types/node": "20.5.7", + "@types/react": "18.2.15", + "payload": "workspace:*" + }, + "exports": { + ".": { + "default": "./src/index.ts", + "types": "./src/index.ts" + } + }, + "license": "MIT", + "main": "./src/index.ts", + "publishConfig": { + "exports": null, + "main": "./dist/index.js", + "registry": "https://registry.npmjs.org/", + "types": "./dist/index.d.ts" + }, + "repository": "https://github.com/payloadcms/payload", + "scripts": { + "build": "pnpm build:swc && pnpm build:types", + "build:swc": "swc ./src -d ./dist --config-file .swcrc", + "build:types": "tsc --emitDeclarationOnly --outDir dist" + }, + "types": "./src/index.ts", + "version": "0.0.1" +} diff --git a/packages/richtext-slate/src/cell/index.tsx b/packages/richtext-slate/src/cell/index.tsx new file mode 100644 index 000000000..2f8019a57 --- /dev/null +++ b/packages/richtext-slate/src/cell/index.tsx @@ -0,0 +1,16 @@ +import type { CellComponentProps, RichTextField } from 'payload/types' + +import React from 'react' + +import type { AdapterArguments } from '../types' + +const RichTextCell: React.FC, any>> = ({ + data, +}) => { + const flattenedText = data?.map((i) => i?.children?.map((c) => c.text)).join(' ') + const textToShow = + flattenedText?.length > 100 ? `${flattenedText.slice(0, 100)}\u2026` : flattenedText + return {textToShow} +} + +export default RichTextCell diff --git a/packages/payload/src/fields/richText/defaultValue.ts b/packages/richtext-slate/src/data/defaultValue.ts similarity index 51% rename from packages/payload/src/fields/richText/defaultValue.ts rename to packages/richtext-slate/src/data/defaultValue.ts index 17cc99aed..900789c3d 100644 --- a/packages/payload/src/fields/richText/defaultValue.ts +++ b/packages/richtext-slate/src/data/defaultValue.ts @@ -1,4 +1,4 @@ -export default [ +export const defaultRichTextValue = [ { children: [{ text: '' }], }, diff --git a/packages/payload/src/fields/richText/populate.ts b/packages/richtext-slate/src/data/populate.ts similarity index 76% rename from packages/payload/src/fields/richText/populate.ts rename to packages/richtext-slate/src/data/populate.ts index c508da33f..1253fe69a 100644 --- a/packages/payload/src/fields/richText/populate.ts +++ b/packages/richtext-slate/src/data/populate.ts @@ -1,13 +1,13 @@ -/* eslint-disable @typescript-eslint/no-use-before-define */ -import type { Collection } from '../../collections/config/types' -import type { PayloadRequest } from '../../express/types' -import type { Field, RichTextField } from '../config/types' +import type { PayloadRequest } from 'payload/types' +import type { Collection, Field, RichTextField } from 'payload/types' + +import type { AdapterArguments } from '../types' type Arguments = { currentDepth?: number data: unknown depth: number - field: RichTextField + field: RichTextField key: number | string overrideAccess?: boolean req: PayloadRequest diff --git a/packages/payload/src/fields/richText/recurseNestedFields.ts b/packages/richtext-slate/src/data/recurseNestedFields.ts similarity index 96% rename from packages/payload/src/fields/richText/recurseNestedFields.ts rename to packages/richtext-slate/src/data/recurseNestedFields.ts index b6c1971d0..1fb76b974 100644 --- a/packages/payload/src/fields/richText/recurseNestedFields.ts +++ b/packages/richtext-slate/src/data/recurseNestedFields.ts @@ -1,8 +1,7 @@ -/* eslint-disable @typescript-eslint/no-use-before-define */ -import type { PayloadRequest } from '../../express/types' -import type { Field } from '../config/types' +import type { Field, PayloadRequest } from 'payload/types' + +import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from 'payload/types' -import { fieldAffectsData, fieldHasSubFields, fieldIsArrayType } from '../config/types' import { populate } from './populate' import { recurseRichText } from './richTextRelationshipPromise' diff --git a/packages/richtext-slate/src/data/richTextRelationshipPromise.ts b/packages/richtext-slate/src/data/richTextRelationshipPromise.ts new file mode 100644 index 000000000..2bc60ecdd --- /dev/null +++ b/packages/richtext-slate/src/data/richTextRelationshipPromise.ts @@ -0,0 +1,148 @@ +import type { PayloadRequest, RichTextAdapter, RichTextField } from 'payload/types' + +import type { AdapterArguments } from '../types' + +import { populate } from './populate' +import { recurseNestedFields } from './recurseNestedFields' + +export type Args = Parameters['afterReadPromise']>[0] + +type RecurseRichTextArgs = { + children: unknown[] + currentDepth: number + depth: number + field: RichTextField + overrideAccess: boolean + promises: Promise[] + req: PayloadRequest + showHiddenFields: boolean +} + +export const recurseRichText = ({ + children, + currentDepth = 0, + depth, + field, + overrideAccess = false, + promises, + req, + showHiddenFields, +}: RecurseRichTextArgs): void => { + if (depth <= 0 || currentDepth > depth) { + return + } + + if (Array.isArray(children)) { + ;(children as any[]).forEach((element) => { + if ((element.type === 'relationship' || element.type === 'upload') && element?.value?.id) { + const collection = req.payload.collections[element?.relationTo] + + if (collection) { + promises.push( + populate({ + collection, + currentDepth, + data: element, + depth, + field, + id: element.value.id, + key: 'value', + overrideAccess, + req, + showHiddenFields, + }), + ) + } + if ( + element.type === 'upload' && + Array.isArray(field.admin?.upload?.collections?.[element?.relationTo]?.fields) + ) { + recurseNestedFields({ + currentDepth, + data: element.fields || {}, + depth, + fields: field.admin.upload.collections[element.relationTo].fields, + overrideAccess, + promises, + req, + showHiddenFields, + }) + } + } + + if (element.type === 'link') { + if (element?.doc?.value && element?.doc?.relationTo) { + const collection = req.payload.collections[element?.doc?.relationTo] + + if (collection) { + promises.push( + populate({ + collection, + currentDepth, + data: element.doc, + depth, + field, + id: element.doc.value, + key: 'value', + overrideAccess, + req, + showHiddenFields, + }), + ) + } + } + + if (Array.isArray(field.admin?.link?.fields)) { + recurseNestedFields({ + currentDepth, + data: element.fields || {}, + depth, + fields: field.admin?.link?.fields, + overrideAccess, + promises, + req, + showHiddenFields, + }) + } + } + + if (element?.children) { + recurseRichText({ + children: element.children, + currentDepth, + depth, + field, + overrideAccess, + promises, + req, + showHiddenFields, + }) + } + }) + } +} + +export const richTextRelationshipPromise = async ({ + currentDepth, + depth, + field, + overrideAccess, + req, + showHiddenFields, + siblingDoc, +}: Args): Promise => { + const promises = [] + + recurseRichText({ + children: siblingDoc[field.name] as unknown[], + currentDepth, + depth, + field, + overrideAccess, + promises, + req, + showHiddenFields, + }) + + await Promise.all(promises) +} diff --git a/packages/richtext-slate/src/data/validation.ts b/packages/richtext-slate/src/data/validation.ts new file mode 100644 index 000000000..fafd6b20a --- /dev/null +++ b/packages/richtext-slate/src/data/validation.ts @@ -0,0 +1,18 @@ +import type { RichTextField, Validate } from 'payload/types' + +import type { AdapterArguments } from '../types' + +import { defaultRichTextValue } from './defaultValue' + +export const richText: Validate> = ( + value, + { required, t }, +) => { + if (required) { + const stringifiedDefaultValue = JSON.stringify(defaultRichTextValue) + if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true + return t('validation:required') + } + + return true +} diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/RichText.tsx b/packages/richtext-slate/src/field/RichText.tsx similarity index 94% rename from packages/payload/src/admin/components/forms/field-types/RichText/RichText.tsx rename to packages/richtext-slate/src/field/RichText.tsx index 285c05761..1088ce133 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/RichText.tsx +++ b/packages/richtext-slate/src/field/RichText.tsx @@ -3,24 +3,19 @@ import type { HistoryEditor } from 'slate-history' import type { ReactEditor } from 'slate-react' import isHotkey from 'is-hotkey' +import { Error, FieldDescription, Label, useField, withCondition } from 'payload/components/forms' +import { useEditDepth } from 'payload/components/utilities' +import { getTranslation } from 'payload/utilities' import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import { Node, Element as SlateElement, Text, Transforms, createEditor } from 'slate' import { withHistory } from 'slate-history' import { Editable, Slate, withReact } from 'slate-react' -import type { RichTextElement, RichTextLeaf } from '../../../../../fields/config/types' -import type { ElementNode, Props, TextNode } from './types' +import type { ElementNode, FieldProps, RichTextElement, RichTextLeaf, TextNode } from '../types' -import defaultValue from '../../../../../fields/richText/defaultValue' -import { richText } from '../../../../../fields/validations' -import { getTranslation } from '../../../../../utilities/getTranslation' -import { useEditDepth } from '../../../utilities/EditDepth' -import Error from '../../Error' -import FieldDescription from '../../FieldDescription' -import Label from '../../Label' -import useField from '../../useField' -import withCondition from '../../withCondition' +import { defaultRichTextValue } from '../data/defaultValue' +import { richText } from '../data/validation' import elementTypes from './elements' import listTypes from './elements/listTypes' import enablePlugins from './enablePlugins' @@ -58,7 +53,7 @@ declare module 'slate' { } } -const RichText: React.FC = (props) => { +const RichText: React.FC = (props) => { const { admin: { className, @@ -69,7 +64,16 @@ const RichText: React.FC = (props) => { readOnly, style, width, - } = {}, + } = { + className: undefined, + condition: undefined, + description: undefined, + hideGutter: undefined, + placeholder: undefined, + readOnly: undefined, + style: undefined, + width: undefined, + }, admin, defaultValue: defaultValueFromProps, label, @@ -235,7 +239,7 @@ const RichText: React.FC = (props) => { }) if (ops && Array.isArray(ops) && ops.length > 0) { - if (!readOnly && val !== defaultValue && val !== value) { + if (!readOnly && val !== defaultRichTextValue && val !== value) { setValue(val) } } @@ -305,7 +309,7 @@ const RichText: React.FC = (props) => { } } - if (!valueToRender) valueToRender = defaultValueFromProps || defaultValue + if (!valueToRender) valueToRender = defaultValueFromProps || defaultRichTextValue return (

    {children}

    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h2/index.tsx b/packages/richtext-slate/src/field/elements/h2/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/h2/index.tsx rename to packages/richtext-slate/src/field/elements/h2/index.tsx index 803a0efd8..c2c655d63 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h2/index.tsx +++ b/packages/richtext-slate/src/field/elements/h2/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import H2Icon from '../../../../../icons/headings/H2' +import H2Icon from '../../icons/headings/H2' import ElementButton from '../Button' const H2 = ({ attributes, children }) =>

    {children}

    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h3/index.tsx b/packages/richtext-slate/src/field/elements/h3/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/h3/index.tsx rename to packages/richtext-slate/src/field/elements/h3/index.tsx index 4ef1c48cc..f9a442828 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h3/index.tsx +++ b/packages/richtext-slate/src/field/elements/h3/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import H3Icon from '../../../../../icons/headings/H3' +import H3Icon from '../../icons/headings/H3' import ElementButton from '../Button' const H3 = ({ attributes, children }) =>

    {children}

    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h4/index.tsx b/packages/richtext-slate/src/field/elements/h4/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/h4/index.tsx rename to packages/richtext-slate/src/field/elements/h4/index.tsx index a874c8468..222298fe2 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h4/index.tsx +++ b/packages/richtext-slate/src/field/elements/h4/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import H4Icon from '../../../../../icons/headings/H4' +import H4Icon from '../../icons/headings/H4' import ElementButton from '../Button' const H4 = ({ attributes, children }) =>

    {children}

    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h5/index.tsx b/packages/richtext-slate/src/field/elements/h5/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/h5/index.tsx rename to packages/richtext-slate/src/field/elements/h5/index.tsx index 31fb76954..1967ddb17 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h5/index.tsx +++ b/packages/richtext-slate/src/field/elements/h5/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import H5Icon from '../../../../../icons/headings/H5' +import H5Icon from '../../icons/headings/H5' import ElementButton from '../Button' const H5 = ({ attributes, children }) =>
    {children}
    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h6/index.tsx b/packages/richtext-slate/src/field/elements/h6/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/h6/index.tsx rename to packages/richtext-slate/src/field/elements/h6/index.tsx index fa694e2a7..b857231b1 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/h6/index.tsx +++ b/packages/richtext-slate/src/field/elements/h6/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import H6Icon from '../../../../../icons/headings/H6' +import H6Icon from '../../icons/headings/H6' import ElementButton from '../Button' const H6 = ({ attributes, children }) =>
    {children}
    diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/indent/index.tsx b/packages/richtext-slate/src/field/elements/indent/index.tsx similarity index 97% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/indent/index.tsx rename to packages/richtext-slate/src/field/elements/indent/index.tsx index 45aa18976..39909eae8 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/indent/index.tsx +++ b/packages/richtext-slate/src/field/elements/indent/index.tsx @@ -2,10 +2,10 @@ import React, { useCallback } from 'react' import { Editor, Element, Text, Transforms } from 'slate' import { ReactEditor, useSlate } from 'slate-react' -import type { ElementNode } from '../../types' +import type { ElementNode } from '../../../types' -import IndentLeft from '../../../../../icons/IndentLeft' -import IndentRight from '../../../../../icons/IndentRight' +import IndentLeft from '../../icons/IndentLeft' +import IndentRight from '../../icons/IndentRight' import { baseClass } from '../Button' import { getCommonBlock } from '../getCommonBlock' import isElementActive from '../isActive' diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/index.tsx b/packages/richtext-slate/src/field/elements/index.tsx similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/index.tsx rename to packages/richtext-slate/src/field/elements/index.tsx diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/injectVoid.ts b/packages/richtext-slate/src/field/elements/injectVoid.ts similarity index 95% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/injectVoid.ts rename to packages/richtext-slate/src/field/elements/injectVoid.ts index cd7f53d5f..a68ba4d95 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/injectVoid.ts +++ b/packages/richtext-slate/src/field/elements/injectVoid.ts @@ -2,7 +2,7 @@ import type { Element } from 'slate' import { Editor, Transforms } from 'slate' -import type { ElementNode } from '../types' +import type { ElementNode } from '../../types' import { isLastSelectedElementEmpty } from './isLastSelectedElementEmpty' diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isActive.tsx b/packages/richtext-slate/src/field/elements/isActive.tsx similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/isActive.tsx rename to packages/richtext-slate/src/field/elements/isActive.tsx diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isBlockElement.ts b/packages/richtext-slate/src/field/elements/isBlockElement.ts similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/isBlockElement.ts rename to packages/richtext-slate/src/field/elements/isBlockElement.ts diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isLastSelectedElementEmpty.ts b/packages/richtext-slate/src/field/elements/isLastSelectedElementEmpty.ts similarity index 94% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/isLastSelectedElementEmpty.ts rename to packages/richtext-slate/src/field/elements/isLastSelectedElementEmpty.ts index 13dbaa963..15a8017a0 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isLastSelectedElementEmpty.ts +++ b/packages/richtext-slate/src/field/elements/isLastSelectedElementEmpty.ts @@ -1,6 +1,6 @@ import { Editor, Element } from 'slate' -import { nodeIsTextNode } from '../types' +import { nodeIsTextNode } from '../../types' export const isLastSelectedElementEmpty = (editor: Editor): boolean => { if (!editor.selection) return false diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isListActive.ts b/packages/richtext-slate/src/field/elements/isListActive.ts similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/isListActive.ts rename to packages/richtext-slate/src/field/elements/isListActive.ts diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/isWithinListItem.ts b/packages/richtext-slate/src/field/elements/isWithinListItem.ts similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/isWithinListItem.ts rename to packages/richtext-slate/src/field/elements/isWithinListItem.ts diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/li/index.tsx b/packages/richtext-slate/src/field/elements/li/index.tsx similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/li/index.tsx rename to packages/richtext-slate/src/field/elements/li/index.tsx diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Button/index.tsx b/packages/richtext-slate/src/field/elements/link/Button/index.tsx similarity index 84% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Button/index.tsx rename to packages/richtext-slate/src/field/elements/link/Button/index.tsx index 35fedc168..d0f8b2fcd 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Button/index.tsx +++ b/packages/richtext-slate/src/field/elements/link/Button/index.tsx @@ -1,20 +1,23 @@ +import type { Fields } from 'payload/types' + import { useModal } from '@faceless-ui/modal' +import { useDrawerSlug } from 'payload/components/elements' +import { reduceFieldsToValues } from 'payload/components/forms' +import { + buildStateFromSchema, + useAuth, + useConfig, + useDocumentInfo, + useLocale, +} from 'payload/components/utilities' import React, { Fragment, useState } from 'react' import { useTranslation } from 'react-i18next' import { Editor, Range, Transforms } from 'slate' import { ReactEditor, useSlate } from 'slate-react' -import type { Fields } from '../../../../../Form/types' -import type { Props as RichTextFieldProps } from '../../../types' +import type { FieldProps } from '../../../../types' -import { useDrawerSlug } from '../../../../../../elements/Drawer/useDrawerSlug' -import LinkIcon from '../../../../../../icons/Link' -import { useAuth } from '../../../../../../utilities/Auth' -import { useConfig } from '../../../../../../utilities/Config' -import { useDocumentInfo } from '../../../../../../utilities/DocumentInfo' -import { useLocale } from '../../../../../../utilities/Locale' -import buildStateFromSchema from '../../../../../Form/buildStateFromSchema' -import reduceFieldsToValues from '../../../../../Form/reduceFieldsToValues' +import LinkIcon from '../../../icons/Link' import ElementButton from '../../Button' import isElementActive from '../../isActive' import { LinkDrawer } from '../LinkDrawer' @@ -59,7 +62,7 @@ const insertLink = (editor, fields) => { } export const LinkButton: React.FC<{ - fieldProps: RichTextFieldProps + fieldProps: FieldProps path: string }> = ({ fieldProps }) => { const customFieldSchema = fieldProps?.admin?.link?.fields diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.scss b/packages/richtext-slate/src/field/elements/link/Element/index.scss similarity index 95% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.scss rename to packages/richtext-slate/src/field/elements/link/Element/index.scss index e2482a904..83df44107 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.scss +++ b/packages/richtext-slate/src/field/elements/link/Element/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../../../scss/styles.scss'; +@import 'payload/scss'; .rich-text-link { position: relative; diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.tsx b/packages/richtext-slate/src/field/elements/link/Element/index.tsx similarity index 87% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.tsx rename to packages/richtext-slate/src/field/elements/link/Element/index.tsx index 01d5a8f12..26be4d3d9 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/link/Element/index.tsx @@ -1,25 +1,25 @@ +import type { Fields } from 'payload/types' import type { HTMLAttributes } from 'react' import { useModal } from '@faceless-ui/modal' +import { Button, Popup } from 'payload/components' +import { useDrawerSlug } from 'payload/components/elements' +import { reduceFieldsToValues } from 'payload/components/forms' +import { + buildStateFromSchema, + useAuth, + useConfig, + useDocumentInfo, + useLocale, +} from 'payload/components/utilities' +import { deepCopyObject, getTranslation } from 'payload/utilities' import React, { useCallback, useEffect, useState } from 'react' import { Trans, useTranslation } from 'react-i18next' import { Editor, Node, Transforms } from 'slate' import { ReactEditor, useSlate } from 'slate-react' -import type { Fields } from '../../../../../Form/types' -import type { Props as RichTextFieldProps } from '../../../types' +import type { FieldProps } from '../../../../types' -import deepCopyObject from '../../../../../../../../utilities/deepCopyObject' -import { getTranslation } from '../../../../../../../../utilities/getTranslation' -import Button from '../../../../../../elements/Button' -import { useDrawerSlug } from '../../../../../../elements/Drawer/useDrawerSlug' -import Popup from '../../../../../../elements/Popup' -import { useAuth } from '../../../../../../utilities/Auth' -import { useConfig } from '../../../../../../utilities/Config' -import { useDocumentInfo } from '../../../../../../utilities/DocumentInfo' -import { useLocale } from '../../../../../../utilities/Locale' -import buildStateFromSchema from '../../../../../Form/buildStateFromSchema' -import reduceFieldsToValues from '../../../../../Form/reduceFieldsToValues' import { LinkDrawer } from '../LinkDrawer' import { transformExtraFields, unwrapLink } from '../utilities' import './index.scss' @@ -60,7 +60,7 @@ export const LinkElement: React.FC<{ children: React.ReactNode editorRef: React.RefObject element: any - fieldProps: RichTextFieldProps + fieldProps: FieldProps }> = (props) => { const { attributes, children, editorRef, element, fieldProps } = props diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts b/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts similarity index 86% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts rename to packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts index 19e95341b..489a69a25 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/baseFields.ts +++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/baseFields.ts @@ -1,7 +1,7 @@ -import type { Config } from '../../../../../../../../config/types' -import type { Field } from '../../../../../../../../fields/config/types' +import type { Config } from 'payload/config' +import type { Field } from 'payload/types' -import { extractTranslations } from '../../../../../../../../translations/extractTranslations' +import { extractTranslations } from 'payload/utilities' const translations = extractTranslations([ 'fields:textToDisplay', diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.scss b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.scss similarity index 94% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.scss rename to packages/richtext-slate/src/field/elements/link/LinkDrawer/index.scss index 6f332b7b1..334a7addf 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.scss +++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../../../scss/styles.scss'; +@import 'payload/scss'; .rich-text-link-edit-modal { &__template { diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.tsx b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx similarity index 75% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.tsx rename to packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx index b294be158..070dc53b1 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/index.tsx +++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/index.tsx @@ -1,15 +1,13 @@ +import { Drawer } from 'payload/components/elements' +import { Form, FormSubmit, RenderFields } from 'payload/components/forms' +import { useHotkey } from 'payload/components/hooks' +import { useEditDepth } from 'payload/components/utilities' +import { fieldTypes } from 'payload/config' import React, { useRef } from 'react' import { useTranslation } from 'react-i18next' import type { Props } from './types' -import fieldTypes from '../../../..' -import useHotkey from '../../../../../../../hooks/useHotkey' -import { Drawer } from '../../../../../../elements/Drawer' -import { useEditDepth } from '../../../../../../utilities/EditDepth' -import Form from '../../../../../Form' -import RenderFields from '../../../../../RenderFields' -import FormSubmit from '../../../../../Submit' import './index.scss' const baseClass = 'rich-text-link-edit-modal' diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/types.ts b/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts similarity index 60% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/types.ts rename to packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts index 9356a563c..9e95486e0 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/LinkDrawer/types.ts +++ b/packages/richtext-slate/src/field/elements/link/LinkDrawer/types.ts @@ -1,5 +1,4 @@ -import type { Field } from '../../../../../../../../fields/config/types' -import type { Fields } from '../../../../../Form/types' +import type { Field, Fields } from 'payload/types' export type Props = { drawerSlug: string diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/index.tsx b/packages/richtext-slate/src/field/elements/link/index.tsx similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/index.tsx rename to packages/richtext-slate/src/field/elements/link/index.tsx diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/shared.ts b/packages/richtext-slate/src/field/elements/link/shared.ts similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/shared.ts rename to packages/richtext-slate/src/field/elements/link/shared.ts diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx b/packages/richtext-slate/src/field/elements/link/utilities.tsx similarity index 97% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx rename to packages/richtext-slate/src/field/elements/link/utilities.tsx index b10679f8b..be587b890 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/link/utilities.tsx +++ b/packages/richtext-slate/src/field/elements/link/utilities.tsx @@ -1,11 +1,10 @@ import type { i18n } from 'i18next' import type { SanitizedConfig } from 'payload/config' +import type { Field } from 'payload/types' import type { Editor } from 'slate' import { Element, Range, Transforms } from 'slate' -import type { Field } from '../../../../../../../fields/config/types' - import { getBaseFields } from './LinkDrawer/baseFields' export const unwrapLink = (editor: Editor): void => { diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/listTypes.tsx b/packages/richtext-slate/src/field/elements/listTypes.tsx similarity index 100% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/listTypes.tsx rename to packages/richtext-slate/src/field/elements/listTypes.tsx diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.scss b/packages/richtext-slate/src/field/elements/ol/index.scss similarity index 64% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.scss rename to packages/richtext-slate/src/field/elements/ol/index.scss index 13a13c290..2c0f73b1b 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.scss +++ b/packages/richtext-slate/src/field/elements/ol/index.scss @@ -1,4 +1,4 @@ -@import '../../../../../../scss/styles.scss'; +@import 'payload/scss'; .rich-text-ol { &[data-slate-node='element'] { diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.tsx b/packages/richtext-slate/src/field/elements/ol/index.tsx similarity index 86% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.tsx rename to packages/richtext-slate/src/field/elements/ol/index.tsx index e3d214741..63e85fb5a 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/ol/index.tsx +++ b/packages/richtext-slate/src/field/elements/ol/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -import OLIcon from '../../../../../icons/OrderedList' +import OLIcon from '../../icons/OrderedList' import ListButton from '../ListButton' import './index.scss' diff --git a/packages/payload/src/admin/components/forms/field-types/RichText/elements/relationship/Button/Fields/index.tsx b/packages/richtext-slate/src/field/elements/relationship/Button/Fields/index.tsx similarity index 67% rename from packages/payload/src/admin/components/forms/field-types/RichText/elements/relationship/Button/Fields/index.tsx rename to packages/richtext-slate/src/field/elements/relationship/Button/Fields/index.tsx index 8e010bc6b..e3d62a50f 100644 --- a/packages/payload/src/admin/components/forms/field-types/RichText/elements/relationship/Button/Fields/index.tsx +++ b/packages/richtext-slate/src/field/elements/relationship/Button/Fields/index.tsx @@ -1,12 +1,10 @@ +import { RelationshipComponent } from 'payload/components/fields/Relationship' +import { SelectComponent } from 'payload/components/fields/Select' +import { useFormFields } from 'payload/components/forms' +import { useAuth, useConfig } from 'payload/components/utilities' import React, { Fragment, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' -import { useAuth } from '../../../../../../../utilities/Auth' -import { useConfig } from '../../../../../../../utilities/Config' -import { useFormFields } from '../../../../../../Form/context' -import Relationship from '../../../../../Relationship' -import Select from '../../../../../Select' - const createOptions = (collections, permissions) => collections.reduce((options, collection) => { if ( @@ -39,9 +37,14 @@ const RelationshipFields = () => { return ( -