@payloadcms/richtext-lexical 3.59.0-internal.898dbd3 → 3.59.0-internal.cb85185

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/exports/client/Field-RQHCQRLV.js +2 -0
  2. package/dist/exports/client/Field-RQHCQRLV.js.map +7 -0
  3. package/dist/exports/client/RelationshipComponent-TSIENULZ.js +2 -0
  4. package/dist/exports/client/RelationshipComponent-TSIENULZ.js.map +7 -0
  5. package/dist/exports/client/bundled.css +1 -1
  6. package/dist/exports/client/chunk-BQCXN3B4.js +2 -0
  7. package/dist/exports/client/chunk-BQCXN3B4.js.map +7 -0
  8. package/dist/exports/client/chunk-XNERFY6G.js +2 -0
  9. package/dist/exports/client/chunk-XNERFY6G.js.map +7 -0
  10. package/dist/exports/client/component-CYFKY3IL.js +2 -0
  11. package/dist/exports/client/component-CYFKY3IL.js.map +7 -0
  12. package/dist/exports/client/componentInline-NGTRUSGB.js +2 -0
  13. package/dist/exports/client/index.js +24 -24
  14. package/dist/exports/client/index.js.map +3 -3
  15. package/dist/features/blocks/client/component/BlockContent.d.ts.map +1 -1
  16. package/dist/features/blocks/client/component/BlockContent.js +4 -1
  17. package/dist/features/blocks/client/component/BlockContent.js.map +1 -1
  18. package/dist/features/blocks/client/component/index.d.ts.map +1 -1
  19. package/dist/features/blocks/client/component/index.js +15 -12
  20. package/dist/features/blocks/client/component/index.js.map +1 -1
  21. package/dist/features/blocks/client/componentInline/index.d.ts.map +1 -1
  22. package/dist/features/blocks/client/componentInline/index.js +13 -10
  23. package/dist/features/blocks/client/componentInline/index.js.map +1 -1
  24. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts +1 -1
  25. package/dist/features/blocks/premade/CodeBlock/Component/Block.d.ts.map +1 -1
  26. package/dist/features/blocks/premade/CodeBlock/Component/Block.js +20 -15
  27. package/dist/features/blocks/premade/CodeBlock/Component/Block.js.map +1 -1
  28. package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts +8 -0
  29. package/dist/features/blocks/premade/CodeBlock/Component/Code.d.ts.map +1 -1
  30. package/dist/features/blocks/premade/CodeBlock/Component/Code.js +15 -0
  31. package/dist/features/blocks/premade/CodeBlock/Component/Code.js.map +1 -1
  32. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.d.ts.map +1 -1
  33. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js +5 -3
  34. package/dist/features/experimental_table/client/plugins/TableHoverActionsPlugin/index.js.map +1 -1
  35. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  36. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +3 -1
  37. package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
  38. package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
  39. package/dist/features/relationship/client/components/RelationshipComponent.js +5 -9
  40. package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
  41. package/dist/features/toolbars/fixed/client/Toolbar/index.d.ts.map +1 -1
  42. package/dist/features/toolbars/fixed/client/Toolbar/index.js +7 -1
  43. package/dist/features/toolbars/fixed/client/Toolbar/index.js.map +1 -1
  44. package/dist/features/toolbars/inline/client/Toolbar/index.d.ts.map +1 -1
  45. package/dist/features/toolbars/inline/client/Toolbar/index.js +3 -1
  46. package/dist/features/toolbars/inline/client/Toolbar/index.js.map +1 -1
  47. package/dist/features/upload/client/component/index.d.ts.map +1 -1
  48. package/dist/features/upload/client/component/index.js +6 -5
  49. package/dist/features/upload/client/component/index.js.map +1 -1
  50. package/dist/field/RenderLexical/index.d.ts.map +1 -1
  51. package/dist/field/RenderLexical/index.js +1 -0
  52. package/dist/field/RenderLexical/index.js.map +1 -1
  53. package/dist/field/bundled.css +1 -1
  54. package/dist/field/rscEntry.d.ts.map +1 -1
  55. package/dist/field/rscEntry.js +2 -0
  56. package/dist/field/rscEntry.js.map +1 -1
  57. package/dist/lexical/LexicalEditor.d.ts.map +1 -1
  58. package/dist/lexical/LexicalEditor.js +10 -8
  59. package/dist/lexical/LexicalEditor.js.map +1 -1
  60. package/dist/utilities/buildInitialState.d.ts +1 -0
  61. package/dist/utilities/buildInitialState.d.ts.map +1 -1
  62. package/dist/utilities/buildInitialState.js +1 -0
  63. package/dist/utilities/buildInitialState.js.map +1 -1
  64. package/dist/utilities/fieldsDrawer/DrawerContent.d.ts.map +1 -1
  65. package/dist/utilities/fieldsDrawer/DrawerContent.js +7 -3
  66. package/dist/utilities/fieldsDrawer/DrawerContent.js.map +1 -1
  67. package/package.json +7 -7
  68. package/dist/exports/client/Field-2MCIQXRP.js +0 -2
  69. package/dist/exports/client/Field-2MCIQXRP.js.map +0 -7
  70. package/dist/exports/client/RelationshipComponent-APF3CN47.js +0 -2
  71. package/dist/exports/client/RelationshipComponent-APF3CN47.js.map +0 -7
  72. package/dist/exports/client/chunk-CYLMY5ZJ.js +0 -2
  73. package/dist/exports/client/chunk-CYLMY5ZJ.js.map +0 -7
  74. package/dist/exports/client/chunk-K47TNP5J.js +0 -2
  75. package/dist/exports/client/chunk-K47TNP5J.js.map +0 -7
  76. package/dist/exports/client/component-VDJI45F2.js +0 -2
  77. package/dist/exports/client/component-VDJI45F2.js.map +0 -7
  78. package/dist/exports/client/componentInline-AGFSKAY4.js +0 -2
  79. /package/dist/exports/client/{componentInline-AGFSKAY4.js.map → componentInline-NGTRUSGB.js.map} +0 -0
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
5
+ import { useLexicalEditable } from '@lexical/react/useLexicalEditable';
5
6
  import { getTranslation } from '@payloadcms/translations';
6
7
  import { Button, formatDrawerSlug, Thumbnail, useConfig, useEditDepth, usePayloadAPI, useTranslation } from '@payloadcms/ui';
7
8
  import { $getNodeByKey } from 'lexical';
@@ -47,10 +48,10 @@ const Component = props => {
47
48
  const {
48
49
  editorConfig,
49
50
  fieldProps: {
50
- readOnly,
51
51
  schemaPath
52
52
  }
53
53
  } = useEditorConfigContext();
54
+ const isEditable = useLexicalEditable();
54
55
  const {
55
56
  i18n,
56
57
  t
@@ -127,7 +128,7 @@ const Component = props => {
127
128
  height: data?.height,
128
129
  size: "none",
129
130
  width: data?.width
130
- }), editor.isEditable() && /*#__PURE__*/_jsx("div", {
131
+ }), isEditable && /*#__PURE__*/_jsx("div", {
131
132
  className: `${baseClass}__overlay ${baseClass}__floater`,
132
133
  children: /*#__PURE__*/_jsxs("div", {
133
134
  className: `${baseClass}__actions`,
@@ -135,7 +136,7 @@ const Component = props => {
135
136
  children: [hasExtraFields ? /*#__PURE__*/_jsx(Button, {
136
137
  buttonStyle: "icon-label",
137
138
  className: `${baseClass}__upload-drawer-toggler`,
138
- disabled: readOnly,
139
+ disabled: !isEditable,
139
140
  el: "button",
140
141
  icon: "edit",
141
142
  onClick: toggleDrawer,
@@ -145,7 +146,7 @@ const Component = props => {
145
146
  }) : null, /*#__PURE__*/_jsx(Button, {
146
147
  buttonStyle: "icon-label",
147
148
  className: `${baseClass}__swap-drawer-toggler`,
148
- disabled: readOnly,
149
+ disabled: !isEditable,
149
150
  el: "button",
150
151
  icon: "swap",
151
152
  onClick: () => {
@@ -161,7 +162,7 @@ const Component = props => {
161
162
  }), /*#__PURE__*/_jsx(Button, {
162
163
  buttonStyle: "icon-label",
163
164
  className: `${baseClass}__removeButton`,
164
- disabled: readOnly,
165
+ disabled: !isEditable,
165
166
  icon: "x",
166
167
  onClick: e => {
167
168
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useLexicalComposerContext","getTranslation","Button","formatDrawerSlug","Thumbnail","useConfig","useEditDepth","usePayloadAPI","useTranslation","$getNodeByKey","isImage","React","useCallback","useId","useReducer","useRef","useState","useEditorConfigContext","FieldsDrawer","useLexicalDocumentDrawer","useLexicalDrawer","EnabledRelationshipsCondition","INSERT_UPLOAD_WITH_DRAWER_COMMAND","baseClass","initialParams","depth","Component","props","data","fields","relationTo","value","nodeKey","Error","config","routes","api","serverURL","getEntityConfig","uploadRef","uuid","editDepth","editor","editorConfig","fieldProps","readOnly","schemaPath","i18n","t","cacheBust","dispatchCacheBust","state","relatedCollection","collectionSlug","componentID","extraFieldsDrawerSlug","slug","toggleDrawer","closeDocumentDrawer","DocumentDrawer","DocumentDrawerToggler","id","setParams","thumbnailSRC","thumbnailURL","url","removeUpload","update","remove","updateUpload","hasExtraFields","resolvedFeatureMap","get","sanitizedClientFeatureProps","collections","onExtraFieldsDrawerSubmit","_","uploadNode","newData","getData","setData","aspectRatio","width","height","_jsxs","className","filename","ref","_jsx","fileSrc","mimeType","size","isEditable","role","buttonStyle","disabled","el","icon","onClick","round","tooltip","dispatchCommand","replace","e","preventDefault","labels","singular","onSave","drawerSlug","drawerTitle","label","featureKey","handleDrawerSubmit","schemaPathSuffix","UploadComponent","uploads"],"sources":["../../../../../src/features/upload/client/component/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Data, FormState, JsonObject } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n formatDrawerSlug,\n Thumbnail,\n useConfig,\n useEditDepth,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { $getNodeByKey, type ElementFormatType } from 'lexical'\nimport { isImage } from 'payload/shared'\nimport React, { useCallback, useId, useReducer, useRef, useState } from 'react'\n\nimport type { BaseClientFeatureProps } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\nimport type { UploadNode } from '../nodes/UploadNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport './index.scss'\n\nconst baseClass = 'lexical-upload'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n data: UploadData\n format?: ElementFormatType\n nodeKey: string\n}\n\nconst Component: React.FC<ElementProps> = (props) => {\n const {\n data: { fields, relationTo, value },\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.',\n )\n }\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n\n const {\n editorConfig,\n fieldProps: { readOnly, schemaPath },\n } = useEditorConfigContext()\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(() =>\n getEntityConfig({ collectionSlug: relationTo }),\n )\n\n const componentID = useId()\n\n const extraFieldsDrawerSlug = formatDrawerSlug({\n slug: `lexical-upload-drawer-` + uuid + componentID, // There can be multiple upload components, each with their own drawer, in one single editor => separate them by componentID\n depth: editDepth,\n })\n\n // Need to use hook to initialize useEffect that restores cursor position\n const { toggleDrawer } = useLexicalDrawer(extraFieldsDrawerSlug, true)\n\n const { closeDocumentDrawer, DocumentDrawer, DocumentDrawerToggler } = useLexicalDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDocumentDrawer()\n },\n [setParams, cacheBust, closeDocumentDrawer],\n )\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as BaseClientFeatureProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_: FormState, data: JsonObject) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode: null | UploadNode = $getNodeByKey(nodeKey)\n if (uploadNode) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n },\n [editor, nodeKey],\n )\n\n const aspectRatio =\n thumbnailSRC && data?.width && data?.height\n ? data.width > data.height\n ? 'landscape'\n : 'portrait'\n : 'landscape'\n\n return (\n <div\n className={`${baseClass} ${baseClass}--${aspectRatio}`}\n data-filename={data?.filename}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__media`}>\n <Thumbnail\n collectionSlug={relationTo}\n fileSrc={isImage(data?.mimeType) ? thumbnailSRC : null}\n height={data?.height}\n size=\"none\"\n width={data?.width}\n />\n\n {editor.isEditable() && (\n <div className={`${baseClass}__overlay ${baseClass}__floater`}>\n <div className={`${baseClass}__actions`} role=\"toolbar\">\n {hasExtraFields ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={readOnly}\n el=\"button\"\n icon=\"edit\"\n onClick={toggleDrawer}\n round\n size=\"medium\"\n tooltip={t('fields:editRelationship')}\n />\n ) : null}\n\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__swap-drawer-toggler`}\n disabled={readOnly}\n el=\"button\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n size=\"medium\"\n tooltip={t('fields:swapUpload')}\n />\n\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n size=\"medium\"\n tooltip={t('fields:removeUpload')}\n />\n </div>\n </div>\n )}\n </div>\n\n <div className={`${baseClass}__metaOverlay ${baseClass}__floater`}>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <strong className={`${baseClass}__filename`}>\n {data?.filename || t('general:untitled')}\n </strong>\n </DocumentDrawerToggler>\n <div className={`${baseClass}__collectionLabel`}>\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </div>\n </div>\n </div>\n\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={extraFieldsDrawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPath={schemaPath}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n\nexport const UploadComponent = (props: ElementProps): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <Component {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,cAAc,QAAQ;AAC/B,SACEC,MAAM,EACNC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,YAAY,EACZC,aAAa,EACbC,cAAc,QACT;AACP,SAASC,aAAa,QAAgC;AACtD,SAASC,OAAO,QAAQ;AACxB,OAAOC,KAAA,IAASC,WAAW,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAOxE,SAASC,sBAAsB,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAC7B,SAASC,wBAAwB,QAAQ;AACzC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,6BAA6B,QAAQ;AAC9C,SAASC,iCAAiC,QAAQ;AAGlD,MAAMC,SAAA,GAAY;AAElB,MAAMC,aAAA,GAAgB;EACpBC,KAAA,EAAO;AACT;AAQA,MAAMC,SAAA,GAAqCC,KAAA;EACzC,MAAM;IACJC,IAAA,EAAM;MAAEC,MAAM;MAAEC,UAAU;MAAEC;IAAK,CAAE;IACnCC;EAAO,CACR,GAAGL,KAAA;EAEJ,IAAI,OAAOI,KAAA,KAAU,UAAU;IAC7B,MAAM,IAAIE,KAAA,CACR;EAEJ;EAEA,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGjC,SAAA;EACJ,MAAMkC,SAAA,GAAYxB,MAAA,CAA8B;EAChD,MAAM;IAAEyB;EAAI,CAAE,GAAGvB,sBAAA;EACjB,MAAMwB,SAAA,GAAYnC,YAAA;EAClB,MAAM,CAACoC,MAAA,CAAO,GAAG1C,yBAAA;EAEjB,MAAM;IACJ2C,YAAY;IACZC,UAAA,EAAY;MAAEC,QAAQ;MAAEC;IAAU;EAAE,CACrC,GAAG7B,sBAAA;EAEJ,MAAM;IAAE8B,IAAI;IAAEC;EAAC,CAAE,GAAGxC,cAAA;EACpB,MAAM,CAACyC,SAAA,EAAWC,iBAAA,CAAkB,GAAGpC,UAAA,CAAYqC,KAAA,IAAUA,KAAA,GAAQ,GAAG;EACxE,MAAM,CAACC,iBAAA,CAAkB,GAAGpC,QAAA,CAAiC,MAC3DsB,eAAA,CAAgB;IAAEe,cAAA,EAAgBvB;EAAW;EAG/C,MAAMwB,WAAA,GAAczC,KAAA;EAEpB,MAAM0C,qBAAA,GAAwBpD,gBAAA,CAAiB;IAC7CqD,IAAA,EAAM,wBAAwB,GAAGhB,IAAA,GAAOc,WAAA;IACxC7B,KAAA,EAAOgB;EACT;EAEA;EACA,MAAM;IAAEgB;EAAY,CAAE,GAAGrC,gBAAA,CAAiBmC,qBAAA,EAAuB;EAEjE,MAAM;IAAEG,mBAAmB;IAAEC,cAAc;IAAEC;EAAqB,CAAE,GAAGzC,wBAAA,CAAyB;IAC9F0C,EAAA,EAAI9B,KAAA;IACJsB,cAAA,EAAgBD,iBAAA,CAAkBI;EACpC;EAEA;EACA,MAAM,CAAC;IAAE5B;EAAI,CAAE,EAAE;IAAEkC;EAAS,CAAE,CAAC,GAAGvD,aAAA,CAChC,GAAG8B,SAAA,GAAYD,GAAA,IAAOgB,iBAAA,CAAkBI,IAAI,IAAIzB,KAAA,EAAO,EACvD;IAAEP;EAAc;EAGlB,MAAMuC,YAAA,GAAenC,IAAA,EAAMoC,YAAA,IAAgBpC,IAAA,EAAMqC,GAAA;EAEjD,MAAMC,YAAA,GAAetD,WAAA,CAAY;IAC/B8B,MAAA,CAAOyB,MAAM,CAAC;MACZ1D,aAAA,CAAcuB,OAAA,GAAUoC,MAAA;IAC1B;EACF,GAAG,CAAC1B,MAAA,EAAQV,OAAA,CAAQ;EAEpB,MAAMqC,YAAA,GAAezD,WAAA,CAClBgB,MAAA;IACCkC,SAAA,CAAU;MACR,GAAGtC,aAAa;MAChByB;IACF;IAEAC,iBAAA;IACAQ,mBAAA;EACF,GACA,CAACI,SAAA,EAAWb,SAAA,EAAWS,mBAAA,CAAoB;EAG7C,MAAMY,cAAA,GAAiB3B,YACrB,EAAc4B,kBAAA,EAAoBC,GAAA,CAAI,WAClCC,2BAAA,CACJC,WAAW,GAAGtB,iBAAA,CAAkBI,IAAI,CAAC,EAAEc,cAAA;EAEzC,MAAMK,yBAAA,GAA4B/D,WAAA,CAChC,CAACgE,CAAA,EAAchD,MAAA;IACb;IACAc,MAAA,CAAOyB,MAAM,CAAC;MACZ,MAAMU,UAAA,GAAgCpE,aAAA,CAAcuB,OAAA;MACpD,IAAI6C,UAAA,EAAY;QACd,MAAMC,OAAA,GAAsB;UAC1B,GAAGD,UAAA,CAAWE,OAAO,EAAE;UACvBlD,MAAA,EAAQD;QACV;QACAiD,UAAA,CAAWG,OAAO,CAACF,OAAA;MACrB;IACF;EACF,GACA,CAACpC,MAAA,EAAQV,OAAA,CAAQ;EAGnB,MAAMiD,WAAA,GACJlB,YAAA,IAAgBnC,IAAA,EAAMsD,KAAA,IAAStD,IAAA,EAAMuD,MAAA,GACjCvD,IAAA,CAAKsD,KAAK,GAAGtD,IAAA,CAAKuD,MAAM,GACtB,cACA,aACF;EAEN,oBACEC,KAAA,CAAC;IACCC,SAAA,EAAW,GAAG9D,SAAA,IAAaA,SAAA,KAAc0D,WAAA,EAAa;IACtD,iBAAerD,IAAA,EAAM0D,QAAA;IACrBC,GAAA,EAAKhD,SAAA;4BAEL6C,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAG9D,SAAA,QAAiB;8BAClC6D,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG9D,SAAA,SAAkB;gCACnCiE,IAAA,CAACpF,SAAA;UACCiD,cAAA,EAAgBvB,UAAA;UAChB2D,OAAA,EAAS/E,OAAA,CAAQkB,IAAA,EAAM8D,QAAA,IAAY3B,YAAA,GAAe;UAClDoB,MAAA,EAAQvD,IAAA,EAAMuD,MAAA;UACdQ,IAAA,EAAK;UACLT,KAAA,EAAOtD,IAAA,EAAMsD;YAGdxC,MAAA,CAAOkD,UAAU,mBAChBJ,IAAA,CAAC;UAAIH,SAAA,EAAW,GAAG9D,SAAA,aAAsBA,SAAA,WAAoB;oBAC3D,aAAA6D,KAAA,CAAC;YAAIC,SAAA,EAAW,GAAG9D,SAAA,WAAoB;YAAEsE,IAAA,EAAK;uBAC3CvB,cAAA,gBACCkB,IAAA,CAACtF,MAAA;cACC4F,WAAA,EAAY;cACZT,SAAA,EAAW,GAAG9D,SAAA,yBAAkC;cAChDwE,QAAA,EAAUlD,QAAA;cACVmD,EAAA,EAAG;cACHC,IAAA,EAAK;cACLC,OAAA,EAASzC,YAAA;cACT0C,KAAK;cACLR,IAAA,EAAK;cACLS,OAAA,EAASpD,CAAA,CAAE;iBAEX,M,aAEJwC,IAAA,CAACtF,MAAA;cACC4F,WAAA,EAAY;cACZT,SAAA,EAAW,GAAG9D,SAAA,uBAAgC;cAC9CwE,QAAA,EAAUlD,QAAA;cACVmD,EAAA,EAAG;cACHC,IAAA,EAAK;cACLC,OAAA,EAASA,CAAA;gBACPxD,MAAA,CAAO2D,eAAe,CAAC/E,iCAAA,EAAmC;kBACxDgF,OAAA,EAAS;oBAAEtE;kBAAQ;gBACrB;cACF;cACAmE,KAAK;cACLR,IAAA,EAAK;cACLS,OAAA,EAASpD,CAAA,CAAE;6BAGbwC,IAAA,CAACtF,MAAA;cACC4F,WAAA,EAAY;cACZT,SAAA,EAAW,GAAG9D,SAAA,gBAAyB;cACvCwE,QAAA,EAAUlD,QAAA;cACVoD,IAAA,EAAK;cACLC,OAAA,EAAUK,CAAA;gBACRA,CAAA,CAAEC,cAAc;gBAChBtC,YAAA;cACF;cACAiC,KAAK;cACLR,IAAA,EAAK;cACLS,OAAA,EAASpD,CAAA,CAAE;;;;uBAOrBoC,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG9D,SAAA,iBAA0BA,SAAA,WAAoB;gCAC/DiE,IAAA,CAAC5B,qBAAA;UAAsByB,SAAA,EAAW,GAAG9D,SAAA,sBAA+B;oBAClE,aAAAiE,IAAA,CAAC;YAAOH,SAAA,EAAW,GAAG9D,SAAA,YAAqB;sBACxCK,IAAA,EAAM0D,QAAA,IAAYtC,CAAA,CAAE;;yBAGzBwC,IAAA,CAAC;UAAIH,SAAA,EAAW,GAAG9D,SAAA,mBAA4B;oBAC5CtB,cAAA,CAAemD,iBAAA,CAAkBqD,MAAM,CAACC,QAAQ,EAAE3D,IAAA;;;QAKxDhB,KAAA,gBAAQyD,IAAA,CAAC7B,cAAA;MAAegD,MAAA,EAAQtC;SAAmB,MACnDC,cAAA,gBACCkB,IAAA,CAACtE,YAAA;MACCU,IAAA,EAAMC,MAAA;MACN+E,UAAA,EAAYrD,qBAAA;MACZsD,WAAA,EAAa7D,CAAA,CAAE,qBAAqB;QAClC8D,KAAA,EAAO7G,cAAA,CAAemD,iBAAA,CAAkBqD,MAAM,CAACC,QAAQ,EAAE3D,IAAA;MAC3D;MACAgE,UAAA,EAAW;MACXC,kBAAA,EAAoBrC,yBAAA;MACpB7B,UAAA,EAAYA,UAAA;MACZmE,gBAAA,EAAkB7D,iBAAA,CAAkBI;SAEpC;;AAGV;AAEA,OAAO,MAAM0D,eAAA,GAAmBvF,KAAA;EAC9B,oBACE6D,IAAA,CAACnE,6BAAA;IAA+B,GAAGM,KAAK;IAAEwF,OAAO;cAC/C,aAAA3B,IAAA,CAAC9D,SAAA;MAAW,GAAGC;;;AAGrB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useLexicalComposerContext","useLexicalEditable","getTranslation","Button","formatDrawerSlug","Thumbnail","useConfig","useEditDepth","usePayloadAPI","useTranslation","$getNodeByKey","isImage","React","useCallback","useId","useReducer","useRef","useState","useEditorConfigContext","FieldsDrawer","useLexicalDocumentDrawer","useLexicalDrawer","EnabledRelationshipsCondition","INSERT_UPLOAD_WITH_DRAWER_COMMAND","baseClass","initialParams","depth","Component","props","data","fields","relationTo","value","nodeKey","Error","config","routes","api","serverURL","getEntityConfig","uploadRef","uuid","editDepth","editor","editorConfig","fieldProps","schemaPath","isEditable","i18n","t","cacheBust","dispatchCacheBust","state","relatedCollection","collectionSlug","componentID","extraFieldsDrawerSlug","slug","toggleDrawer","closeDocumentDrawer","DocumentDrawer","DocumentDrawerToggler","id","setParams","thumbnailSRC","thumbnailURL","url","removeUpload","update","remove","updateUpload","hasExtraFields","resolvedFeatureMap","get","sanitizedClientFeatureProps","collections","onExtraFieldsDrawerSubmit","_","uploadNode","newData","getData","setData","aspectRatio","width","height","_jsxs","className","filename","ref","_jsx","fileSrc","mimeType","size","role","buttonStyle","disabled","el","icon","onClick","round","tooltip","dispatchCommand","replace","e","preventDefault","labels","singular","onSave","drawerSlug","drawerTitle","label","featureKey","handleDrawerSubmit","schemaPathSuffix","UploadComponent","uploads"],"sources":["../../../../../src/features/upload/client/component/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Data, FormState, JsonObject } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalEditable } from '@lexical/react/useLexicalEditable'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n formatDrawerSlug,\n Thumbnail,\n useConfig,\n useEditDepth,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport { $getNodeByKey, type ElementFormatType } from 'lexical'\nimport { isImage } from 'payload/shared'\nimport React, { useCallback, useId, useReducer, useRef, useState } from 'react'\n\nimport type { BaseClientFeatureProps } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\nimport type { UploadNode } from '../nodes/UploadNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { FieldsDrawer } from '../../../../utilities/fieldsDrawer/Drawer.js'\nimport { useLexicalDocumentDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDocumentDrawer.js'\nimport { useLexicalDrawer } from '../../../../utilities/fieldsDrawer/useLexicalDrawer.js'\nimport { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.js'\nimport './index.scss'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\n\nconst baseClass = 'lexical-upload'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n data: UploadData\n format?: ElementFormatType\n nodeKey: string\n}\n\nconst Component: React.FC<ElementProps> = (props) => {\n const {\n data: { fields, relationTo, value },\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.',\n )\n }\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n\n const {\n editorConfig,\n fieldProps: { schemaPath },\n } = useEditorConfigContext()\n const isEditable = useLexicalEditable()\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(() =>\n getEntityConfig({ collectionSlug: relationTo }),\n )\n\n const componentID = useId()\n\n const extraFieldsDrawerSlug = formatDrawerSlug({\n slug: `lexical-upload-drawer-` + uuid + componentID, // There can be multiple upload components, each with their own drawer, in one single editor => separate them by componentID\n depth: editDepth,\n })\n\n // Need to use hook to initialize useEffect that restores cursor position\n const { toggleDrawer } = useLexicalDrawer(extraFieldsDrawerSlug, true)\n\n const { closeDocumentDrawer, DocumentDrawer, DocumentDrawerToggler } = useLexicalDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n // Get the referenced document\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const thumbnailSRC = data?.thumbnailURL || data?.url\n\n const removeUpload = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateUpload = useCallback(\n (data: Data) => {\n setParams({\n ...initialParams,\n cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed\n })\n\n dispatchCacheBust()\n closeDocumentDrawer()\n },\n [setParams, cacheBust, closeDocumentDrawer],\n )\n\n const hasExtraFields = (\n editorConfig?.resolvedFeatureMap?.get('upload')\n ?.sanitizedClientFeatureProps as BaseClientFeatureProps<UploadFeaturePropsClient>\n ).collections?.[relatedCollection.slug]?.hasExtraFields\n\n const onExtraFieldsDrawerSubmit = useCallback(\n (_: FormState, data: JsonObject) => {\n // Update lexical node (with key nodeKey) with new data\n editor.update(() => {\n const uploadNode: null | UploadNode = $getNodeByKey(nodeKey)\n if (uploadNode) {\n const newData: UploadData = {\n ...uploadNode.getData(),\n fields: data,\n }\n uploadNode.setData(newData)\n }\n })\n },\n [editor, nodeKey],\n )\n\n const aspectRatio =\n thumbnailSRC && data?.width && data?.height\n ? data.width > data.height\n ? 'landscape'\n : 'portrait'\n : 'landscape'\n\n return (\n <div\n className={`${baseClass} ${baseClass}--${aspectRatio}`}\n data-filename={data?.filename}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__media`}>\n <Thumbnail\n collectionSlug={relationTo}\n fileSrc={isImage(data?.mimeType) ? thumbnailSRC : null}\n height={data?.height}\n size=\"none\"\n width={data?.width}\n />\n\n {isEditable && (\n <div className={`${baseClass}__overlay ${baseClass}__floater`}>\n <div className={`${baseClass}__actions`} role=\"toolbar\">\n {hasExtraFields ? (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"edit\"\n onClick={toggleDrawer}\n round\n size=\"medium\"\n tooltip={t('fields:editRelationship')}\n />\n ) : null}\n\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__swap-drawer-toggler`}\n disabled={!isEditable}\n el=\"button\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n size=\"medium\"\n tooltip={t('fields:swapUpload')}\n />\n\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={!isEditable}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n size=\"medium\"\n tooltip={t('fields:removeUpload')}\n />\n </div>\n </div>\n )}\n </div>\n\n <div className={`${baseClass}__metaOverlay ${baseClass}__floater`}>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <strong className={`${baseClass}__filename`}>\n {data?.filename || t('general:untitled')}\n </strong>\n </DocumentDrawerToggler>\n <div className={`${baseClass}__collectionLabel`}>\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </div>\n </div>\n </div>\n\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={extraFieldsDrawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\n schemaPath={schemaPath}\n schemaPathSuffix={relatedCollection.slug}\n />\n ) : null}\n </div>\n )\n}\n\nexport const UploadComponent = (props: ElementProps): React.ReactNode => {\n return (\n <EnabledRelationshipsCondition {...props} uploads>\n <Component {...props} />\n </EnabledRelationshipsCondition>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SACEC,MAAM,EACNC,gBAAgB,EAChBC,SAAS,EACTC,SAAS,EACTC,YAAY,EACZC,aAAa,EACbC,cAAc,QACT;AACP,SAASC,aAAa,QAAgC;AACtD,SAASC,OAAO,QAAQ;AACxB,OAAOC,KAAA,IAASC,WAAW,EAAEC,KAAK,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAOxE,SAASC,sBAAsB,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAC7B,SAASC,wBAAwB,QAAQ;AACzC,SAASC,gBAAgB,QAAQ;AACjC,SAASC,6BAA6B,QAAQ;AAE9C,SAASC,iCAAiC,QAAQ;AAElD,MAAMC,SAAA,GAAY;AAElB,MAAMC,aAAA,GAAgB;EACpBC,KAAA,EAAO;AACT;AAQA,MAAMC,SAAA,GAAqCC,KAAA;EACzC,MAAM;IACJC,IAAA,EAAM;MAAEC,MAAM;MAAEC,UAAU;MAAEC;IAAK,CAAE;IACnCC;EAAO,CACR,GAAGL,KAAA;EAEJ,IAAI,OAAOI,KAAA,KAAU,UAAU;IAC7B,MAAM,IAAIE,KAAA,CACR;EAEJ;EAEA,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS,CACV;IACDC;EAAe,CAChB,GAAGjC,SAAA;EACJ,MAAMkC,SAAA,GAAYxB,MAAA,CAA8B;EAChD,MAAM;IAAEyB;EAAI,CAAE,GAAGvB,sBAAA;EACjB,MAAMwB,SAAA,GAAYnC,YAAA;EAClB,MAAM,CAACoC,MAAA,CAAO,GAAG3C,yBAAA;EAEjB,MAAM;IACJ4C,YAAY;IACZC,UAAA,EAAY;MAAEC;IAAU;EAAE,CAC3B,GAAG5B,sBAAA;EACJ,MAAM6B,UAAA,GAAa9C,kBAAA;EACnB,MAAM;IAAE+C,IAAI;IAAEC;EAAC,CAAE,GAAGxC,cAAA;EACpB,MAAM,CAACyC,SAAA,EAAWC,iBAAA,CAAkB,GAAGpC,UAAA,CAAYqC,KAAA,IAAUA,KAAA,GAAQ,GAAG;EACxE,MAAM,CAACC,iBAAA,CAAkB,GAAGpC,QAAA,CAAiC,MAC3DsB,eAAA,CAAgB;IAAEe,cAAA,EAAgBvB;EAAW;EAG/C,MAAMwB,WAAA,GAAczC,KAAA;EAEpB,MAAM0C,qBAAA,GAAwBpD,gBAAA,CAAiB;IAC7CqD,IAAA,EAAM,wBAAwB,GAAGhB,IAAA,GAAOc,WAAA;IACxC7B,KAAA,EAAOgB;EACT;EAEA;EACA,MAAM;IAAEgB;EAAY,CAAE,GAAGrC,gBAAA,CAAiBmC,qBAAA,EAAuB;EAEjE,MAAM;IAAEG,mBAAmB;IAAEC,cAAc;IAAEC;EAAqB,CAAE,GAAGzC,wBAAA,CAAyB;IAC9F0C,EAAA,EAAI9B,KAAA;IACJsB,cAAA,EAAgBD,iBAAA,CAAkBI;EACpC;EAEA;EACA,MAAM,CAAC;IAAE5B;EAAI,CAAE,EAAE;IAAEkC;EAAS,CAAE,CAAC,GAAGvD,aAAA,CAChC,GAAG8B,SAAA,GAAYD,GAAA,IAAOgB,iBAAA,CAAkBI,IAAI,IAAIzB,KAAA,EAAO,EACvD;IAAEP;EAAc;EAGlB,MAAMuC,YAAA,GAAenC,IAAA,EAAMoC,YAAA,IAAgBpC,IAAA,EAAMqC,GAAA;EAEjD,MAAMC,YAAA,GAAetD,WAAA,CAAY;IAC/B8B,MAAA,CAAOyB,MAAM,CAAC;MACZ1D,aAAA,CAAcuB,OAAA,GAAUoC,MAAA;IAC1B;EACF,GAAG,CAAC1B,MAAA,EAAQV,OAAA,CAAQ;EAEpB,MAAMqC,YAAA,GAAezD,WAAA,CAClBgB,MAAA;IACCkC,SAAA,CAAU;MACR,GAAGtC,aAAa;MAChByB;IACF;IAEAC,iBAAA;IACAQ,mBAAA;EACF,GACA,CAACI,SAAA,EAAWb,SAAA,EAAWS,mBAAA,CAAoB;EAG7C,MAAMY,cAAA,GAAiB3B,YACrB,EAAc4B,kBAAA,EAAoBC,GAAA,CAAI,WAClCC,2BAAA,CACJC,WAAW,GAAGtB,iBAAA,CAAkBI,IAAI,CAAC,EAAEc,cAAA;EAEzC,MAAMK,yBAAA,GAA4B/D,WAAA,CAChC,CAACgE,CAAA,EAAchD,MAAA;IACb;IACAc,MAAA,CAAOyB,MAAM,CAAC;MACZ,MAAMU,UAAA,GAAgCpE,aAAA,CAAcuB,OAAA;MACpD,IAAI6C,UAAA,EAAY;QACd,MAAMC,OAAA,GAAsB;UAC1B,GAAGD,UAAA,CAAWE,OAAO,EAAE;UACvBlD,MAAA,EAAQD;QACV;QACAiD,UAAA,CAAWG,OAAO,CAACF,OAAA;MACrB;IACF;EACF,GACA,CAACpC,MAAA,EAAQV,OAAA,CAAQ;EAGnB,MAAMiD,WAAA,GACJlB,YAAA,IAAgBnC,IAAA,EAAMsD,KAAA,IAAStD,IAAA,EAAMuD,MAAA,GACjCvD,IAAA,CAAKsD,KAAK,GAAGtD,IAAA,CAAKuD,MAAM,GACtB,cACA,aACF;EAEN,oBACEC,KAAA,CAAC;IACCC,SAAA,EAAW,GAAG9D,SAAA,IAAaA,SAAA,KAAc0D,WAAA,EAAa;IACtD,iBAAerD,IAAA,EAAM0D,QAAA;IACrBC,GAAA,EAAKhD,SAAA;4BAEL6C,KAAA,CAAC;MAAIC,SAAA,EAAW,GAAG9D,SAAA,QAAiB;8BAClC6D,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG9D,SAAA,SAAkB;gCACnCiE,IAAA,CAACpF,SAAA;UACCiD,cAAA,EAAgBvB,UAAA;UAChB2D,OAAA,EAAS/E,OAAA,CAAQkB,IAAA,EAAM8D,QAAA,IAAY3B,YAAA,GAAe;UAClDoB,MAAA,EAAQvD,IAAA,EAAMuD,MAAA;UACdQ,IAAA,EAAK;UACLT,KAAA,EAAOtD,IAAA,EAAMsD;YAGdpC,UAAA,iBACC0C,IAAA,CAAC;UAAIH,SAAA,EAAW,GAAG9D,SAAA,aAAsBA,SAAA,WAAoB;oBAC3D,aAAA6D,KAAA,CAAC;YAAIC,SAAA,EAAW,GAAG9D,SAAA,WAAoB;YAAEqE,IAAA,EAAK;uBAC3CtB,cAAA,gBACCkB,IAAA,CAACtF,MAAA;cACC2F,WAAA,EAAY;cACZR,SAAA,EAAW,GAAG9D,SAAA,yBAAkC;cAChDuE,QAAA,EAAU,CAAChD,UAAA;cACXiD,EAAA,EAAG;cACHC,IAAA,EAAK;cACLC,OAAA,EAASxC,YAAA;cACTyC,KAAK;cACLP,IAAA,EAAK;cACLQ,OAAA,EAASnD,CAAA,CAAE;iBAEX,M,aAEJwC,IAAA,CAACtF,MAAA;cACC2F,WAAA,EAAY;cACZR,SAAA,EAAW,GAAG9D,SAAA,uBAAgC;cAC9CuE,QAAA,EAAU,CAAChD,UAAA;cACXiD,EAAA,EAAG;cACHC,IAAA,EAAK;cACLC,OAAA,EAASA,CAAA;gBACPvD,MAAA,CAAO0D,eAAe,CAAC9E,iCAAA,EAAmC;kBACxD+E,OAAA,EAAS;oBAAErE;kBAAQ;gBACrB;cACF;cACAkE,KAAK;cACLP,IAAA,EAAK;cACLQ,OAAA,EAASnD,CAAA,CAAE;6BAGbwC,IAAA,CAACtF,MAAA;cACC2F,WAAA,EAAY;cACZR,SAAA,EAAW,GAAG9D,SAAA,gBAAyB;cACvCuE,QAAA,EAAU,CAAChD,UAAA;cACXkD,IAAA,EAAK;cACLC,OAAA,EAAUK,CAAA;gBACRA,CAAA,CAAEC,cAAc;gBAChBrC,YAAA;cACF;cACAgC,KAAK;cACLP,IAAA,EAAK;cACLQ,OAAA,EAASnD,CAAA,CAAE;;;;uBAOrBoC,KAAA,CAAC;QAAIC,SAAA,EAAW,GAAG9D,SAAA,iBAA0BA,SAAA,WAAoB;gCAC/DiE,IAAA,CAAC5B,qBAAA;UAAsByB,SAAA,EAAW,GAAG9D,SAAA,sBAA+B;oBAClE,aAAAiE,IAAA,CAAC;YAAOH,SAAA,EAAW,GAAG9D,SAAA,YAAqB;sBACxCK,IAAA,EAAM0D,QAAA,IAAYtC,CAAA,CAAE;;yBAGzBwC,IAAA,CAAC;UAAIH,SAAA,EAAW,GAAG9D,SAAA,mBAA4B;oBAC5CtB,cAAA,CAAemD,iBAAA,CAAkBoD,MAAM,CAACC,QAAQ,EAAE1D,IAAA;;;QAKxDhB,KAAA,gBAAQyD,IAAA,CAAC7B,cAAA;MAAe+C,MAAA,EAAQrC;SAAmB,MACnDC,cAAA,gBACCkB,IAAA,CAACtE,YAAA;MACCU,IAAA,EAAMC,MAAA;MACN8E,UAAA,EAAYpD,qBAAA;MACZqD,WAAA,EAAa5D,CAAA,CAAE,qBAAqB;QAClC6D,KAAA,EAAO5G,cAAA,CAAemD,iBAAA,CAAkBoD,MAAM,CAACC,QAAQ,EAAE1D,IAAA;MAC3D;MACA+D,UAAA,EAAW;MACXC,kBAAA,EAAoBpC,yBAAA;MACpB9B,UAAA,EAAYA,UAAA;MACZmE,gBAAA,EAAkB5D,iBAAA,CAAkBI;SAEpC;;AAGV;AAEA,OAAO,MAAMyD,eAAA,GAAmBtF,KAAA;EAC9B,oBACE6D,IAAA,CAACnE,6BAAA;IAA+B,GAAGM,KAAK;IAAEuF,OAAO;cAC/C,aAAA1B,IAAA,CAAC9D,SAAA;MAAW,GAAGC;;;AAGrB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/RenderLexical/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,uBAAuB,EAK7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAyC,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE;AAClC;;;GAGG;AACH;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;IAE5B,QAAQ,CAAC,EAAE,SAAS,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;CAChE,GAAG,uBAAuB,CA0F5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/field/RenderLexical/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,uBAAuB,EAK7B,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAyC,MAAM,OAAO,CAAA;AAE7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEjE;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE;AAClC;;;GAGG;AACH;IACE;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;IAE5B,QAAQ,CAAC,EAAE,SAAS,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;IACrE,KAAK,CAAC,EAAE,SAAS,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;CAChE,GAAG,uBAAuB,CA4F5B,CAAA"}
@@ -39,6 +39,7 @@ export const RenderLexical = args => {
39
39
  ...(field || {}),
40
40
  type: "richText",
41
41
  admin: {
42
+ ...(field?.admin || {}),
42
43
  hidden: false
43
44
  }
44
45
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","FieldContext","FieldPathContext","ServerFunctionsContext","ShimmerEffect","useServerFunctions","React","useCallback","useEffect","useRef","RenderLexical","args","$","field","initialValue","Loading","path","schemaPath","setValue","value","Component","setComponent","useState","serverFunctionContext","_internal_renderField","entityType","entitySlug","split","fieldPath","name","t0","render","Field","type","admin","hidden","undefined","renderLexical","mounted","t1","t2","current","_jsx","adjustedServerFunctionContext","getFormState","getFormStateArgs","collectionSlug","globalSlug","children","fieldValue","disabled","formInitializing","formProcessing","formSubmitted","_temp","showError"],"sources":["../../../src/field/RenderLexical/index.tsx"],"sourcesContent":["'use client'\nimport type { RichTextField } from 'payload'\n\nimport {\n FieldContext,\n FieldPathContext,\n type FieldType,\n type RenderFieldServerFnArgs,\n ServerFunctionsContext,\n type ServerFunctionsContextType,\n ShimmerEffect,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type { DefaultTypedEditorState } from '../../nodeTypes.js'\n\n/**\n * Utility to render a lexical editor on the client.\n *\n * @experimental - may break in minor releases\n * @todo - replace this with a general utility that works for all fields. Maybe merge with packages/ui/src/forms/RenderFields/RenderField.tsx\n */\nexport const RenderLexical: React.FC<\n /**\n * If value or setValue, or both, is provided, this component will manage its own value.\n * If neither is passed, it will rely on the parent form to manage the value.\n */\n {\n /**\n * Override the loading state while the field component is being fetched and rendered.\n */\n Loading?: React.ReactElement\n\n setValue?: FieldType<DefaultTypedEditorState | undefined>['setValue']\n value?: FieldType<DefaultTypedEditorState | undefined>['value']\n } & RenderFieldServerFnArgs\n> = (args) => {\n const { field, initialValue, Loading, path, schemaPath, setValue, value } = args\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const serverFunctionContext = useServerFunctions()\n const { _internal_renderField } = serverFunctionContext\n\n const [entityType, entitySlug] = schemaPath.split('.')\n\n const fieldPath = path ?? (field && 'name' in field ? field?.name : '') ?? ''\n\n const renderLexical = useCallback(() => {\n async function render() {\n const { Field } = await _internal_renderField({\n field: {\n ...((field as RichTextField) || {}),\n type: 'richText',\n admin: {\n hidden: false,\n },\n },\n initialValue: initialValue ?? undefined,\n path,\n schemaPath,\n })\n\n setComponent(Field)\n }\n void render()\n }, [_internal_renderField, schemaPath, path, field, initialValue])\n\n const mounted = useRef(false)\n\n useEffect(() => {\n if (mounted.current) {\n return\n }\n mounted.current = true\n void renderLexical()\n }, [renderLexical])\n\n if (!Component) {\n return typeof Loading !== 'undefined' ? Loading : <ShimmerEffect />\n }\n\n /**\n * By default, the lexical will make form state requests (e.g. to get drawer fields), passing in the arguments\n * of the current field. However, we need to override those arguments to get it to make requests based on the\n * *target* field. The server only knows the schema map of the target field.\n */\n const adjustedServerFunctionContext: ServerFunctionsContextType = {\n ...serverFunctionContext,\n getFormState: async (getFormStateArgs) => {\n return serverFunctionContext.getFormState({\n ...getFormStateArgs,\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n })\n },\n }\n\n if (typeof value === 'undefined' && !setValue) {\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n {Component}\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n }\n\n const fieldValue: FieldType<DefaultTypedEditorState | undefined> = {\n disabled: false,\n formInitializing: false,\n formProcessing: false,\n formSubmitted: false,\n initialValue: value,\n path: fieldPath,\n setValue: setValue ?? (() => undefined),\n showError: false,\n value,\n }\n\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n <FieldContext value={fieldValue}>{Component}</FieldContext>\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","FieldContext","FieldPathContext","ServerFunctionsContext","ShimmerEffect","useServerFunctions","React","useCallback","useEffect","useRef","RenderLexical","args","$","field","initialValue","Loading","path","schemaPath","setValue","value","Component","setComponent","useState","serverFunctionContext","_internal_renderField","entityType","entitySlug","split","fieldPath","name","t0","render","Field","type","admin","hidden","undefined","renderLexical","mounted","t1","t2","current","_jsx","adjustedServerFunctionContext","getFormState","getFormStateArgs","collectionSlug","globalSlug","children","fieldValue","disabled","formInitializing","formProcessing","formSubmitted","_temp","showError"],"sources":["../../../src/field/RenderLexical/index.tsx"],"sourcesContent":["'use client'\nimport type { RichTextField } from 'payload'\n\nimport {\n FieldContext,\n FieldPathContext,\n type FieldType,\n type RenderFieldServerFnArgs,\n ServerFunctionsContext,\n type ServerFunctionsContextType,\n ShimmerEffect,\n useServerFunctions,\n} from '@payloadcms/ui'\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type { DefaultTypedEditorState } from '../../nodeTypes.js'\n\n/**\n * Utility to render a lexical editor on the client.\n *\n * @experimental - may break in minor releases\n * @todo - replace this with a general utility that works for all fields. Maybe merge with packages/ui/src/forms/RenderFields/RenderField.tsx\n */\nexport const RenderLexical: React.FC<\n /**\n * If value or setValue, or both, is provided, this component will manage its own value.\n * If neither is passed, it will rely on the parent form to manage the value.\n */\n {\n /**\n * Override the loading state while the field component is being fetched and rendered.\n */\n Loading?: React.ReactElement\n\n setValue?: FieldType<DefaultTypedEditorState | undefined>['setValue']\n value?: FieldType<DefaultTypedEditorState | undefined>['value']\n } & RenderFieldServerFnArgs\n> = (args) => {\n const { field, initialValue, Loading, path, schemaPath, setValue, value } = args\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const serverFunctionContext = useServerFunctions()\n const { _internal_renderField } = serverFunctionContext\n\n const [entityType, entitySlug] = schemaPath.split('.')\n\n const fieldPath = path ?? (field && 'name' in field ? field?.name : '') ?? ''\n\n const renderLexical = useCallback(() => {\n async function render() {\n const { Field } = await _internal_renderField({\n field: {\n ...((field as RichTextField) || {}),\n type: 'richText',\n admin: {\n ...((field as RichTextField)?.admin || {}),\n // When using \"fake\" anchor fields, hidden is often set to true. We need to override that here to ensure the field is rendered.\n hidden: false,\n },\n },\n initialValue: initialValue ?? undefined,\n path,\n schemaPath,\n })\n\n setComponent(Field)\n }\n void render()\n }, [_internal_renderField, schemaPath, path, field, initialValue])\n\n const mounted = useRef(false)\n\n useEffect(() => {\n if (mounted.current) {\n return\n }\n mounted.current = true\n void renderLexical()\n }, [renderLexical])\n\n if (!Component) {\n return typeof Loading !== 'undefined' ? Loading : <ShimmerEffect />\n }\n\n /**\n * By default, the lexical will make form state requests (e.g. to get drawer fields), passing in the arguments\n * of the current field. However, we need to override those arguments to get it to make requests based on the\n * *target* field. The server only knows the schema map of the target field.\n */\n const adjustedServerFunctionContext: ServerFunctionsContextType = {\n ...serverFunctionContext,\n getFormState: async (getFormStateArgs) => {\n return serverFunctionContext.getFormState({\n ...getFormStateArgs,\n collectionSlug: entityType === 'collection' ? entitySlug : undefined,\n globalSlug: entityType === 'global' ? entitySlug : undefined,\n })\n },\n }\n\n if (typeof value === 'undefined' && !setValue) {\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n {Component}\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n }\n\n const fieldValue: FieldType<DefaultTypedEditorState | undefined> = {\n disabled: false,\n formInitializing: false,\n formProcessing: false,\n formSubmitted: false,\n initialValue: value,\n path: fieldPath,\n setValue: setValue ?? (() => undefined),\n showError: false,\n value,\n }\n\n return (\n <ServerFunctionsContext value={{ ...adjustedServerFunctionContext }}>\n <FieldPathContext key={fieldPath} value={fieldPath}>\n <FieldContext value={fieldValue}>{Component}</FieldContext>\n </FieldPathContext>\n </ServerFunctionsContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}