@payloadcms/richtext-lexical 3.0.0-beta.119 → 3.0.0-beta.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exports/client/RelationshipComponent-LBWKOBGF.js +2 -0
- package/dist/exports/client/RelationshipComponent-LBWKOBGF.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/chunk-5PBXL4HT.js +2 -0
- package/dist/exports/client/chunk-5PBXL4HT.js.map +7 -0
- package/dist/exports/client/chunk-7SR2HYD6.js +2 -0
- package/dist/exports/client/chunk-7SR2HYD6.js.map +7 -0
- package/dist/exports/client/{chunk-QZNJUROL.js → chunk-XY4TCSM7.js} +2 -2
- package/dist/exports/client/component-4TP4L5EV.js +2 -0
- package/dist/exports/client/component-4TP4L5EV.js.map +7 -0
- package/dist/exports/client/index.js +7 -7
- package/dist/exports/client/index.js.map +4 -4
- package/dist/features/blocks/client/plugin/index.d.ts.map +1 -1
- package/dist/features/blocks/client/plugin/index.js +32 -37
- package/dist/features/blocks/client/plugin/index.js.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.d.ts.map +1 -1
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js +27 -32
- package/dist/features/experimental_table/client/plugins/TablePlugin/index.js.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js +8 -9
- package/dist/features/link/client/plugins/floatingLinkEditor/LinkEditor/index.js.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.d.ts.map +1 -1
- package/dist/features/relationship/client/components/RelationshipComponent.js +10 -7
- package/dist/features/relationship/client/components/RelationshipComponent.js.map +1 -1
- package/dist/features/relationship/client/drawer/index.d.ts.map +1 -1
- package/dist/features/relationship/client/drawer/index.js +24 -23
- package/dist/features/relationship/client/drawer/index.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/index.js +30 -28
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/drawer/index.d.ts.map +1 -1
- package/dist/features/upload/client/drawer/index.js +32 -32
- package/dist/features/upload/client/drawer/index.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.d.ts.map +1 -1
- package/dist/utilities/fieldsDrawer/Drawer.js +63 -27
- package/dist/utilities/fieldsDrawer/Drawer.js.map +1 -1
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts +13 -0
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.d.ts.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js +129 -0
- package/dist/utilities/fieldsDrawer/useLexicalDocumentDrawer.js.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts +10 -0
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.d.ts.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.js +136 -0
- package/dist/utilities/fieldsDrawer/useLexicalDrawer.js.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts +16 -0
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.d.ts.map +1 -0
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js +144 -0
- package/dist/utilities/fieldsDrawer/useLexicalListDrawer.js.map +1 -0
- package/package.json +7 -7
- package/dist/exports/client/RelationshipComponent-FTWR5YDX.js +0 -2
- package/dist/exports/client/RelationshipComponent-FTWR5YDX.js.map +0 -7
- package/dist/exports/client/chunk-WAMTSCVM.js +0 -2
- package/dist/exports/client/chunk-WAMTSCVM.js.map +0 -7
- package/dist/exports/client/component-6PBZ2U3Z.js +0 -2
- package/dist/exports/client/component-6PBZ2U3Z.js.map +0 -7
- /package/dist/exports/client/{chunk-QZNJUROL.js.map → chunk-XY4TCSM7.js.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/richtext-lexical",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.120",
|
|
4
4
|
"description": "The officially supported Lexical richtext adapter for Payload",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"lexical": "0.18.0",
|
|
57
57
|
"react-error-boundary": "4.0.13",
|
|
58
58
|
"uuid": "10.0.0",
|
|
59
|
-
"@payloadcms/translations": "3.0.0-beta.
|
|
60
|
-
"@payloadcms/ui": "3.0.0-beta.
|
|
59
|
+
"@payloadcms/translations": "3.0.0-beta.120",
|
|
60
|
+
"@payloadcms/ui": "3.0.0-beta.120"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@babel/cli": "^7.24.5",
|
|
@@ -77,8 +77,8 @@
|
|
|
77
77
|
"esbuild-sass-plugin": "3.3.1",
|
|
78
78
|
"eslint-plugin-react-compiler": "0.0.0-experimental-7670337-20240918",
|
|
79
79
|
"swc-plugin-transform-remove-imports": "1.15.0",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
80
|
+
"@payloadcms/eslint-config": "3.0.0-beta.112",
|
|
81
|
+
"payload": "3.0.0-beta.120"
|
|
82
82
|
},
|
|
83
83
|
"peerDependencies": {
|
|
84
84
|
"@faceless-ui/modal": "3.0.0-beta.2",
|
|
@@ -96,8 +96,8 @@
|
|
|
96
96
|
"lexical": "0.18.0",
|
|
97
97
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
98
98
|
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
99
|
-
"@payloadcms/next": "3.0.0-beta.
|
|
100
|
-
"payload": "3.0.0-beta.
|
|
99
|
+
"@payloadcms/next": "3.0.0-beta.120",
|
|
100
|
+
"payload": "3.0.0-beta.120"
|
|
101
101
|
},
|
|
102
102
|
"engines": {
|
|
103
103
|
"node": "^18.20.2 || >=20.9.0"
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as S,d as x}from"./chunk-QZNJUROL.js";import{b as E}from"./chunk-GD6LBQBJ.js";import{jsx as n,jsxs as h}from"react/jsx-runtime";import{useLexicalComposerContext as k}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as W}from"@lexical/react/useLexicalNodeSelection.js";import{mergeRegister as Y}from"@lexical/utils";import{getTranslation as H}from"@payloadcms/translations";import{Button as w,useConfig as U,useDocumentDrawer as q,usePayloadAPI as z,useTranslation as F}from"@payloadcms/ui";import{$getNodeByKey as G,$getSelection as J,$isNodeSelection as Q,CLICK_COMMAND as V,COMMAND_PRIORITY_LOW as C,KEY_BACKSPACE_COMMAND as X,KEY_DELETE_COMMAND as Z}from"lexical";import ee,{useCallback as _,useEffect as te,useReducer as oe,useRef as se,useState as ne}from"react";var o="lexical-relationship",A={depth:0},ie=d=>{let{data:{relationTo:T,value:a},nodeKey:i}=d;if(typeof a=="object")throw new Error("Relationship value should be a string or number. The Lexical Relationship component should not receive the populated value object.");let u=se(null),[e]=k(),[s,r,m]=W(i),{field:g}=E(),{config:{collections:y,routes:{api:M},serverURL:O}}=U(),[c,le]=ne(()=>y.find(t=>t.slug===T)),{i18n:B,t:p}=F(),[R,I]=oe(t=>t+1,0),[{data:v},{setParams:N}]=z(`${O}${M}/${c.slug}/${a}`,{initialParams:A}),[L,j,{closeDrawer:b}]=q({id:a,collectionSlug:c.slug}),K=_(()=>{e.update(()=>{G(i)?.remove()})},[e,i]),P=ee.useCallback(({doc:t})=>{N({...A,cacheBust:R}),b(),I()},[R,N,b]),f=_(t=>{let l=J();return s&&Q(l)&&(t.preventDefault(),e.update(()=>{l.getNodes().forEach($=>{x($)&&$.remove()})})),!1},[e,s]),D=_(t=>{let l=t;return l.target===u.current||u.current?.contains(l.target)?(l.shiftKey?r(!s):s||(m(),r(!0)),!0):!1},[s,r,m]);return te(()=>Y(e.registerCommand(V,D,C),e.registerCommand(Z,f,C),e.registerCommand(X,f,C)),[m,e,s,i,f,r,D]),h("div",{className:[o,s&&`${o}--selected`].filter(Boolean).join(" "),contentEditable:!1,ref:u,children:[h("div",{className:`${o}__wrap`,children:[n("p",{className:`${o}__label`,children:p("fields:labelRelationship",{label:H(c.labels.singular,B)})}),n(j,{className:`${o}__doc-drawer-toggler`,children:n("p",{className:`${o}__title`,children:v?v[c?.admin?.useAsTitle||"id"]:a})})]}),e.isEditable()&&h("div",{className:`${o}__actions`,children:[n(w,{buttonStyle:"icon-label",className:`${o}__swapButton`,disabled:g?.admin?.readOnly,el:"div",icon:"swap",onClick:()=>{i&&e.dispatchCommand(S,{replace:{nodeKey:i}})},round:!0,tooltip:p("fields:swapRelationship")}),n(w,{buttonStyle:"icon-label",className:`${o}__removeButton`,disabled:g?.admin?.readOnly,icon:"x",onClick:t=>{t.preventDefault(),K()},round:!0,tooltip:p("fields:removeRelationship")})]}),!!a&&n(L,{onSave:P})]})},Re=d=>n(ie,{...d});export{Re as RelationshipComponent};
|
|
2
|
-
//# sourceMappingURL=RelationshipComponent-FTWR5YDX.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/relationship/client/components/RelationshipComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { ElementFormatType } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport { Button, useConfig, useDocumentDrawer, usePayloadAPI, useTranslation } from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\n\nimport type { RelationshipData } from '../../server/nodes/RelationshipNode.js'\n\nimport { useEditorConfigContext } from '../../../../lexical/config/client/EditorConfigProvider.js'\nimport { INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isRelationshipNode } from '../nodes/RelationshipNode.js'\nimport './index.scss'\n\nconst baseClass = 'lexical-relationship'\n\nconst initialParams = {\n depth: 0,\n}\n\ntype Props = {\n className?: string\n data: RelationshipData\n format?: ElementFormatType\n nodeKey?: string\n}\n\nconst Component: React.FC<Props> = (props) => {\n const {\n data: { relationTo, value },\n nodeKey,\n } = props\n\n if (typeof value === 'object') {\n throw new Error(\n 'Relationship value should be a string or number. The Lexical Relationship component should not receive the populated value object.',\n )\n }\n\n const relationshipElemRef = useRef<HTMLDivElement | null>(null)\n\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey!)\n const { field } = useEditorConfigContext()\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const [relatedCollection, setRelatedCollection] = useState(\n () => collections.find((coll) => coll.slug === relationTo)!,\n )\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [{ data }, { setParams }] = usePayloadAPI(\n `${serverURL}${api}/${relatedCollection.slug}/${value}`,\n { initialParams },\n )\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n id: value,\n collectionSlug: relatedCollection.slug,\n })\n\n const removeRelationship = useCallback(() => {\n editor.update(() => {\n $getNodeByKey(nodeKey!)?.remove()\n })\n }, [editor, nodeKey])\n\n const updateRelationship = React.useCallback(\n ({ doc }) => {\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 closeDrawer()\n dispatchCacheBust()\n },\n [cacheBust, setParams, closeDrawer],\n )\n\n const $onDelete = useCallback(\n (payload: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n const event: KeyboardEvent = payload\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isRelationshipNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n const onClick = useCallback(\n (payload: MouseEvent) => {\n const event = payload\n // Check if relationshipElemRef.target or anything WITHIN relationshipElemRef.target was clicked\n if (\n event.target === relationshipElemRef.current ||\n relationshipElemRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n [isSelected, setSelected, clearSelection],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(CLICK_COMMAND, onClick, COMMAND_PRIORITY_LOW),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected, onClick])\n\n return (\n <div\n className={[baseClass, isSelected && `${baseClass}--selected`].filter(Boolean).join(' ')}\n contentEditable={false}\n ref={relationshipElemRef}\n >\n <div className={`${baseClass}__wrap`}>\n <p className={`${baseClass}__label`}>\n {t('fields:labelRelationship', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n </p>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <p className={`${baseClass}__title`}>\n {data ? data[relatedCollection?.admin?.useAsTitle || 'id'] : value}\n </p>\n </DocumentDrawerToggler>\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__swapButton`}\n disabled={field?.admin?.readOnly}\n el=\"div\"\n icon=\"swap\"\n onClick={() => {\n if (nodeKey) {\n editor.dispatchCommand(INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }\n }}\n round\n tooltip={t('fields:swapRelationship')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeRelationship()\n }}\n round\n tooltip={t('fields:removeRelationship')}\n />\n </div>\n )}\n\n {!!value && <DocumentDrawer onSave={updateRelationship} />}\n </div>\n )\n}\n\nexport const RelationshipComponent = (props: Props): React.ReactNode => {\n return <Component {...props} />\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "useConfig", "useDocumentDrawer", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "React", "useCallback", "useEffect", "useReducer", "useRef", "useState", "baseClass", "initialParams", "depth", "Component", "props", "data", "relationTo", "value", "nodeKey", "Error", "relationshipElemRef", "useRef", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "field", "useEditorConfigContext", "config", "collections", "routes", "api", "serverURL", "useConfig", "relatedCollection", "setRelatedCollection", "useState", "find", "coll", "slug", "i18n", "t", "useTranslation", "cacheBust", "dispatchCacheBust", "useReducer", "state", "setParams", "usePayloadAPI", "DocumentDrawer", "DocumentDrawerToggler", "closeDrawer", "useDocumentDrawer", "id", "collectionSlug", "removeRelationship", "useCallback", "update", "$getNodeByKey", "remove", "updateRelationship", "React", "doc", "$onDelete", "payload", "deleteSelection", "$getSelection", "$isNodeSelection", "preventDefault", "getNodes", "forEach", "node", "$isRelationshipNode", "onClick", "event", "target", "current", "contains", "shiftKey", "useEffect", "mergeRegister", "registerCommand", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "_jsxs", "className", "filter", "Boolean", "join", "contentEditable", "ref", "_jsx", "label", "getTranslation", "labels", "singular", "admin", "useAsTitle", "isEditable", "Button", "buttonStyle", "disabled", "readOnly", "el", "icon", "dispatchCommand", "INSERT_RELATIONSHIP_WITH_DRAWER_COMMAND", "replace", "round", "tooltip", "e", "onSave", "RelationshipComponent"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as E}from"./chunk-GD6LBQBJ.js";import{jsx as L}from"react/jsx-runtime";import{Drawer as tt}from"@payloadcms/ui";import"react";import{c as J}from"react/compiler-runtime";import{jsx as T,jsxs as K}from"react/jsx-runtime";import{Form as B,FormSubmit as G,RenderFields as V,useConfig as q,useDocumentInfo as Q,useFieldProps as X,useTranslation as Y}from"@payloadcms/ui";import{getFormState as I}from"@payloadcms/ui/shared";import{useEffect as Z,useState as N}from"react";import{v4 as z}from"uuid";var F=e=>{let t=J(27),{data:a,featureKey:r,fieldMapOverride:o,handleDrawerSubmit:c,schemaFieldsPathOverride:v,schemaPathSuffix:s}=e,{t:f}=Y(),{id:i}=Q(),{schemaPath:x}=X(),{config:n}=q(),[p,m]=N(!1),{field:O}=E(),{richTextComponentMap:w}=O,U=`lexical_internal_feature.${r}.fields${s?`.${s}`:""}`,l=v??`${x}.lexical_internal_feature.${r}${s?`.${s}`:""}`,g;t[0]!==o||t[1]!==w||t[2]!==U?(g=o??w?.get(U),t[0]=o,t[1]=w,t[2]=U,t[3]=g):g=t[3];let u=g,S,b;t[4]!==n.routes.api||t[5]!==n.serverURL||t[6]!==i||t[7]!==a||t[8]!==l?(S=()=>{(async()=>{let{state:d}=await I({apiRoute:n.routes.api,body:{id:i,data:a??{},operation:"update",schemaPath:l},serverURL:n.serverURL});m(d)})()},b=[n.routes.api,n.serverURL,l,i,a],t[4]=n.routes.api,t[5]=n.serverURL,t[6]=i,t[7]=a,t[8]=l,t[9]=S,t[10]=b):(S=t[9],b=t[10]),Z(S,b);let R;t[11]!==n.routes.api||t[12]!==n.serverURL||t[13]!==i||t[14]!==l?(R=async h=>{let{formState:d}=h,{state:H}=await I({apiRoute:n.routes.api,body:{id:i,formState:d,operation:"update",schemaPath:l},serverURL:n.serverURL});return H},t[11]=n.routes.api,t[12]=n.serverURL,t[13]=i,t[14]=l,t[15]=R):R=t[15];let y=R;if(p===!1)return null;let D;if(t[16]!==y||t[17]!==u||t[18]!==l||t[19]!==f||t[20]!==p||t[21]!==c){let h;t[23]!==u?(h=Array.isArray(u)?u:[],t[23]=u,t[24]=h):h=t[24];let d;t[25]!==u?(d=Array.isArray(u)?u:[],t[25]=u,t[26]=d):d=t[26],D=K(B,{beforeSubmit:[y],disableValidationOnSubmit:!0,fields:h,initialState:p,onChange:[y],onSubmit:c,uuid:z(),children:[T(V,{fields:d,forceRender:!0,path:"",readOnly:!1,schemaPath:l}),T(G,{children:f("fields:saveChanges")})]}),t[16]=y,t[17]=u,t[18]=l,t[19]=f,t[20]=p,t[21]=c,t[22]=D}else D=t[22];return D};var $t=({className:e,data:t,drawerSlug:a,drawerTitle:r,featureKey:o,fieldMapOverride:c,handleDrawerSubmit:v,schemaFieldsPathOverride:s,schemaPathSuffix:f})=>L(tt,{className:e,slug:a,title:r??"",children:L(F,{data:t,featureKey:o,fieldMapOverride:c,handleDrawerSubmit:v,schemaFieldsPathOverride:s,schemaPathSuffix:f})});import{c as et}from"react/compiler-runtime";import{useAuth as rt,useConfig as at,useEntityVisibility as nt}from"@payloadcms/ui";import*as A from"react";var ot=(e,t)=>e.filter(({slug:a,admin:{enableRichTextRelationship:r},upload:o})=>t?.visibleEntities.collections.includes(a)?t?.uploads?r&&!!o:o?!1:r:!1),Ft=e=>{let t=et(16),a,r,o;t[0]!==e?({children:o,uploads:a,...r}=e,t[0]=e,t[1]=a,t[2]=r,t[3]=o):(a=t[1],r=t[2],o=t[3]);let c=a===void 0?!1:a,{config:v}=at(),{collections:s}=v,{user:f}=rt(),{visibleEntities:i}=nt(),x;t[4]!==s||t[5]!==c||t[6]!==f||t[7]!==i?(x=()=>ot(s,{uploads:c,user:f,visibleEntities:i}).map(m=>{let{slug:O}=m;return O}),t[4]=s,t[5]=c,t[6]=f,t[7]=i,t[8]=x):x=t[8];let[n]=A.useState(x);if(!n.length)return null;let p;if(t[9]!==r||t[10]!==n||t[11]!==o){let m;t[13]!==r||t[14]!==n?(m={...r,enabledCollectionSlugs:n},t[13]=r,t[14]=n,t[15]=m):m=t[15],p=A.cloneElement(o,m),t[9]=r,t[10]=n,t[11]=o,t[12]=p}else p=t[12];return p};import{createCommand as it}from"lexical";var jt=it("INSERT_UPLOAD_WITH_DRAWER_COMMAND");import{jsx as ft}from"react/jsx-runtime";import M from"bson-objectid";import{$applyNodeReplacement as pt}from"lexical";import*as k from"react";import{jsx as st}from"react/jsx-runtime";import{DecoratorBlockNode as lt}from"@lexical/react/LexicalDecoratorBlockNode.js";import P from"bson-objectid";import{$applyNodeReplacement as ut}from"lexical";import"react";function $(e){return e.parentElement!=null&&e.parentElement.tagName==="LI"&&e.previousSibling===null&&e.getAttribute("aria-roledescription")==="checkbox"}function ct(e){if(e.hasAttribute("data-lexical-upload-relation-to")&&e.hasAttribute("data-lexical-upload-id")){let a=e.getAttribute("data-lexical-upload-id"),r=e.getAttribute("data-lexical-upload-relation-to");if(a!=null&&r!=null)return{node:j({data:{fields:{},relationTo:r,value:a}})}}let t=e;return t.src.startsWith("file:///")||$(t),null}var _=class extends lt{__data;constructor({data:t,format:a,key:r}){super(a,r),this.__data=t}static clone(t){return new this({data:t.__data,format:t.__format,key:t.__key})}static getType(){return"upload"}static importDOM(){return{img:t=>({conversion:ct,priority:0})}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id),t.version===2&&!t?.id&&(t.id=new P.default().toHexString(),t.version=3);let a={id:t.id,fields:t.fields,relationTo:t.relationTo,value:t.value},r=j({data:a});return r.setFormat(t.format),r}static isInline(){return!1}decorate(){return st(RawUploadComponent,{data:this.__data,format:this.__format,nodeKey:this.getKey()})}exportDOM(){let t=document.createElement("img");return t.setAttribute("data-lexical-upload-id",String(this.__data?.value)),t.setAttribute("data-lexical-upload-relation-to",this.__data?.relationTo),{element:t}}exportJSON(){return{...super.exportJSON(),...this.getData(),type:"upload",version:3}}getData(){return this.getLatest().__data}setData(t){let a=this.getWritable();a.__data=t}updateDOM(){return!1}};function j({data:e}){return e?.id||(e.id=new P.default().toHexString()),ut(new _({data:e}))}var mt=k.lazy(()=>import("./component-6PBZ2U3Z.js").then(e=>({default:e.UploadComponent})));function dt(e){if(e.hasAttribute("data-lexical-upload-relation-to")&&e.hasAttribute("data-lexical-upload-id")){let a=e.getAttribute("data-lexical-upload-id"),r=e.getAttribute("data-lexical-upload-relation-to");if(a!=null&&r!=null)return{node:W({data:{fields:{},relationTo:r,value:a}})}}let t=e;return t.src.startsWith("file:///")||$(t),null}var C=class extends _{static clone(t){return super.clone(t)}static getType(){return super.getType()}static importDOM(){return{img:t=>({conversion:dt,priority:0})}}static importJSON(t){t.version===1&&t?.value?.id&&(t.value=t.value.id),t.version===2&&!t?.id&&(t.id=new M.default().toHexString(),t.version=3);let a={id:t.id,fields:t.fields,relationTo:t.relationTo,value:t.value},r=W({data:a});return r.setFormat(t.format),r}decorate(){return ft(mt,{data:this.__data,nodeKey:this.getKey()})}exportJSON(){return super.exportJSON()}};function W({data:e}){return e?.id||(e.id=new M.default().toHexString()),pt(new C({data:e}))}function Xt(e){return e instanceof C}export{$t as a,Ft as b,jt as c,C as d,W as e,Xt as f};
|
|
2
|
-
//# sourceMappingURL=chunk-WAMTSCVM.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utilities/fieldsDrawer/Drawer.tsx", "../../../src/utilities/fieldsDrawer/DrawerContent.tsx", "../../../src/features/relationship/client/utils/EnabledRelationshipsCondition.tsx", "../../../src/features/upload/client/drawer/commands.ts", "../../../src/features/upload/client/nodes/UploadNode.tsx", "../../../src/features/upload/server/nodes/UploadNode.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { ClientField, Data, FormState, JsonObject } from 'payload'\n\nimport { Drawer } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { DrawerContent } from './DrawerContent.js'\n\nexport type FieldsDrawerProps = {\n readonly className?: string\n readonly data?: Data\n readonly drawerSlug: string\n readonly drawerTitle?: string\n readonly featureKey: string\n readonly fieldMapOverride?: ClientField[]\n readonly handleDrawerSubmit: (fields: FormState, data: JsonObject) => void\n readonly schemaFieldsPathOverride?: string\n readonly schemaPathSuffix?: string\n}\n\n/**\n * This FieldsDrawer component can be used to easily create a Drawer that contains a form with fields within your feature.\n * The fields are taken directly from the schema map based on your `featureKey` and `schemaPathSuffix`. Thus, this can only\n * be used if you provide your field schema inside the `generateSchemaMap` prop of your feature.server.ts.\n */\nexport const FieldsDrawer: React.FC<FieldsDrawerProps> = ({\n className,\n data,\n drawerSlug,\n drawerTitle,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPathSuffix,\n}) => {\n // The Drawer only renders its children (and itself) if it's open. Thus, by extracting the main content\n // to DrawerContent, this should be faster\n return (\n <Drawer className={className} slug={drawerSlug} title={drawerTitle ?? ''}>\n <DrawerContent\n data={data}\n featureKey={featureKey}\n fieldMapOverride={fieldMapOverride}\n handleDrawerSubmit={handleDrawerSubmit}\n schemaFieldsPathOverride={schemaFieldsPathOverride}\n schemaPathSuffix={schemaPathSuffix}\n />\n </Drawer>\n )\n}\n", "'use client'\nimport type { ClientField, FormState } from 'payload'\n\nimport {\n Form,\n FormSubmit,\n RenderFields,\n useConfig,\n useDocumentInfo,\n useFieldProps,\n useTranslation,\n} from '@payloadcms/ui'\nimport { getFormState } from '@payloadcms/ui/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport type { FieldsDrawerProps } from './Drawer.js'\n\nimport { useEditorConfigContext } from '../../lexical/config/client/EditorConfigProvider.js'\n\nexport const DrawerContent: React.FC<Omit<FieldsDrawerProps, 'drawerSlug' | 'drawerTitle'>> = ({\n data,\n featureKey,\n fieldMapOverride,\n handleDrawerSubmit,\n schemaFieldsPathOverride,\n schemaPathSuffix,\n}) => {\n const { t } = useTranslation()\n const { id } = useDocumentInfo()\n const { schemaPath } = useFieldProps()\n const { config } = useConfig()\n const [initialState, setInitialState] = useState<false | FormState>(false)\n const {\n field: { richTextComponentMap },\n } = useEditorConfigContext()\n\n const componentMapRenderedFieldsPath = `lexical_internal_feature.${featureKey}.fields${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n const schemaFieldsPath =\n schemaFieldsPathOverride ??\n `${schemaPath}.lexical_internal_feature.${featureKey}${schemaPathSuffix ? `.${schemaPathSuffix}` : ''}`\n\n const fields: any =\n fieldMapOverride ?? (richTextComponentMap?.get(componentMapRenderedFieldsPath) as ClientField[]) // Field Schema\n\n useEffect(() => {\n const awaitInitialState = async () => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id: id!,\n data: data ?? {},\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n }) // Form State\n\n setInitialState(state)\n }\n\n void awaitInitialState()\n }, [config.routes.api, config.serverURL, schemaFieldsPath, id, data])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }) => {\n const { state } = await getFormState({\n apiRoute: config.routes.api,\n body: {\n id: id!,\n formState: prevFormState,\n operation: 'update',\n schemaPath: schemaFieldsPath,\n },\n serverURL: config.serverURL,\n })\n\n return state\n },\n\n [config.routes.api, config.serverURL, schemaFieldsPath, id],\n )\n\n if (initialState === false) {\n return null\n }\n\n return (\n <Form\n beforeSubmit={[onChange]}\n disableValidationOnSubmit\n fields={Array.isArray(fields) ? fields : []}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={handleDrawerSubmit}\n uuid={uuid()}\n >\n <RenderFields\n fields={Array.isArray(fields) ? fields : []}\n forceRender\n path=\"\" // See Blocks feature path for details as for why this is empty\n readOnly={false}\n schemaPath={schemaFieldsPath}\n />\n\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n )\n}\n", "'use client'\nimport type { ClientCollectionConfig, ClientUser, VisibleEntities } from 'payload'\n\nimport { useAuth, useConfig, useEntityVisibility } from '@payloadcms/ui'\nimport * as React from 'react'\n\ntype Options = {\n uploads: boolean\n user: ClientUser\n visibleEntities: VisibleEntities\n}\n\ntype FilteredCollectionsT = (\n collections: ClientCollectionConfig[],\n options?: Options,\n) => ClientCollectionConfig[]\n\nconst filterRichTextCollections: FilteredCollectionsT = (collections, options) => {\n return collections.filter(({ slug, admin: { enableRichTextRelationship }, upload }) => {\n if (!options?.visibleEntities.collections.includes(slug)) {\n return false\n }\n\n if (options?.uploads) {\n return enableRichTextRelationship && Boolean(upload) === true\n }\n\n return upload ? false : enableRichTextRelationship\n })\n}\n\nexport const EnabledRelationshipsCondition: React.FC<any> = (props) => {\n const { children, uploads = false, ...rest } = props\n const {\n config: { collections },\n } = useConfig()\n const { user } = useAuth()\n const { visibleEntities } = useEntityVisibility()\n\n const [enabledCollectionSlugs] = React.useState(() =>\n filterRichTextCollections(collections, { uploads, user: user!, visibleEntities }).map(\n ({ slug }) => slug,\n ),\n )\n\n if (!enabledCollectionSlugs.length) {\n return null\n }\n\n return React.cloneElement(children, { ...rest, enabledCollectionSlugs })\n}\n", "'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { createCommand } from 'lexical'\n\nexport const INSERT_UPLOAD_WITH_DRAWER_COMMAND: LexicalCommand<{\n replace: { nodeKey: string } | false\n}> = createCommand('INSERT_UPLOAD_WITH_DRAWER_COMMAND')\n", "'use client'\nimport type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type { DOMConversionMap, DOMConversionOutput, LexicalNode, Spread } from 'lexical'\nimport type { JSX } from 'react'\n\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\n\nimport { isGoogleDocCheckboxImg, UploadServerNode } from '../../server/nodes/UploadNode.js'\n\nconst RawUploadComponent = React.lazy(() =>\n import('../../client/component/index.js').then((module) => ({ default: module.UploadComponent })),\n)\n\nfunction $convertUploadElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadNode extends UploadServerNode {\n static clone(node: UploadServerNode): UploadServerNode {\n return super.clone(node)\n }\n\n static getType(): string {\n return super.getType()\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n decorate(): JSX.Element {\n return <RawUploadComponent data={this.__data} nodeKey={this.getKey()} />\n }\n\n exportJSON(): SerializedUploadNode {\n return super.exportJSON()\n }\n}\n\nexport function $createUploadNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadNode({ data: data as UploadData }))\n}\n\nexport function $isUploadNode(node: LexicalNode | null | undefined): node is UploadNode {\n return node instanceof UploadNode\n}\n", "import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n DOMExportOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n Spread,\n} from 'lexical'\nimport type { CollectionSlug, DataFromCollectionSlug, JsonObject } from 'payload'\nimport type { JSX } from 'react'\n\nimport { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js'\nimport ObjectID from 'bson-objectid'\nimport { $applyNodeReplacement } from 'lexical'\nimport * as React from 'react'\n\nexport type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {\n [TCollectionSlug in CollectionSlug]: {\n fields: TUploadExtraFieldsData\n // Every lexical node that has sub-fields needs to have a unique ID. This is the ID of this upload node, not the ID of the linked upload document\n id: string\n relationTo: TCollectionSlug\n // Value can be just the document ID, or the full, populated document\n value: DataFromCollectionSlug<TCollectionSlug> | number | string\n }\n}[CollectionSlug]\n\nexport function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean {\n return (\n img.parentElement != null &&\n img.parentElement.tagName === 'LI' &&\n img.previousSibling === null &&\n img.getAttribute('aria-roledescription') === 'checkbox'\n )\n}\n\nfunction $convertUploadServerElement(domNode: HTMLImageElement): DOMConversionOutput | null {\n if (\n domNode.hasAttribute('data-lexical-upload-relation-to') &&\n domNode.hasAttribute('data-lexical-upload-id')\n ) {\n const id = domNode.getAttribute('data-lexical-upload-id')\n const relationTo = domNode.getAttribute('data-lexical-upload-relation-to')\n\n if (id != null && relationTo != null) {\n const node = $createUploadServerNode({\n data: {\n fields: {},\n relationTo,\n value: id,\n },\n })\n return { node }\n }\n }\n const img = domNode\n if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {\n return null\n }\n // TODO: Auto-upload functionality here!\n //}\n return null\n}\n\nexport type SerializedUploadNode = {\n children?: never // required so that our typed editor state doesn't automatically add children\n type: 'upload'\n} & Spread<UploadData, SerializedDecoratorBlockNode>\n\nexport class UploadServerNode extends DecoratorBlockNode {\n __data: UploadData\n\n constructor({\n data,\n format,\n key,\n }: {\n data: UploadData\n format?: ElementFormatType\n key?: NodeKey\n }) {\n super(format, key)\n this.__data = data\n }\n\n static clone(node: UploadServerNode): UploadServerNode {\n return new this({\n data: node.__data,\n format: node.__format,\n key: node.__key,\n })\n }\n\n static getType(): string {\n return 'upload'\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n img: (node: HTMLImageElement) => ({\n conversion: $convertUploadServerElement,\n priority: 0,\n }),\n }\n }\n\n static importJSON(serializedNode: SerializedUploadNode): UploadServerNode {\n if (serializedNode.version === 1 && (serializedNode?.value as unknown as { id: string })?.id) {\n serializedNode.value = (serializedNode.value as unknown as { id: string }).id\n }\n if (serializedNode.version === 2 && !serializedNode?.id) {\n serializedNode.id = new ObjectID.default().toHexString()\n serializedNode.version = 3\n }\n\n const importedData: UploadData = {\n id: serializedNode.id,\n fields: serializedNode.fields,\n relationTo: serializedNode.relationTo,\n value: serializedNode.value,\n }\n\n const node = $createUploadServerNode({ data: importedData })\n node.setFormat(serializedNode.format)\n\n return node\n }\n\n static isInline(): false {\n return false\n }\n\n decorate(): JSX.Element {\n // @ts-expect-error\n return <RawUploadComponent data={this.__data} format={this.__format} nodeKey={this.getKey()} />\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('data-lexical-upload-id', String(this.__data?.value))\n element.setAttribute('data-lexical-upload-relation-to', this.__data?.relationTo)\n\n return { element }\n }\n\n exportJSON(): SerializedUploadNode {\n return {\n ...super.exportJSON(),\n ...this.getData(),\n type: 'upload',\n version: 3,\n }\n }\n\n getData(): UploadData {\n return this.getLatest().__data\n }\n\n setData(data: UploadData): void {\n const writable = this.getWritable()\n writable.__data = data\n }\n\n updateDOM(): false {\n return false\n }\n}\n\nexport function $createUploadServerNode({\n data,\n}: {\n data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>\n}): UploadServerNode {\n if (!data?.id) {\n data.id = new ObjectID.default().toHexString()\n }\n return $applyNodeReplacement(new UploadServerNode({ data: data as UploadData }))\n}\n\nexport function $isUploadServerNode(\n node: LexicalNode | null | undefined,\n): node is UploadServerNode {\n return node instanceof UploadServerNode\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["Drawer", "c", "_c", "Form", "FormSubmit", "RenderFields", "useConfig", "useDocumentInfo", "useFieldProps", "useTranslation", "getFormState", "useEffect", "useState", "v4", "uuid", "DrawerContent", "t0", "$", "_c", "data", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPathSuffix", "t", "useTranslation", "id", "useDocumentInfo", "schemaPath", "useFieldProps", "config", "useConfig", "initialState", "setInitialState", "useState", "field", "t1", "useEditorConfigContext", "richTextComponentMap", "componentMapRenderedFieldsPath", "schemaFieldsPath", "t2", "get", "fields", "t3", "state", "getFormState", "apiRoute", "routes", "api", "body", "operation", "serverURL", "t4", "useEffect", "t5", "t6", "formState", "prevFormState", "state_0", "onChange", "t7", "Array", "isArray", "t8", "_jsxs", "Form", "beforeSubmit", "disableValidationOnSubmit", "onSubmit", "uuid", "children", "_jsx", "RenderFields", "forceRender", "path", "readOnly", "FormSubmit", "FieldsDrawer", "className", "data", "drawerSlug", "drawerTitle", "featureKey", "fieldMapOverride", "handleDrawerSubmit", "schemaFieldsPathOverride", "schemaPathSuffix", "_jsx", "Drawer", "slug", "title", "DrawerContent", "c", "_c", "useAuth", "useConfig", "useEntityVisibility", "React", "filterRichTextCollections", "collections", "options", "filter", "slug", "admin", "enableRichTextRelationship", "upload", "visibleEntities", "includes", "uploads", "Boolean", "EnabledRelationshipsCondition", "props", "$", "t0", "rest", "children", "undefined", "config", "t1", "user", "t2", "map", "t3", "enabledCollectionSlugs", "useState", "length", "t4", "cloneElement", "createCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "ObjectID", "$applyNodeReplacement", "React", "DecoratorBlockNode", "ObjectID", "$applyNodeReplacement", "isGoogleDocCheckboxImg", "img", "parentElement", "tagName", "previousSibling", "getAttribute", "$convertUploadServerElement", "domNode", "hasAttribute", "id", "relationTo", "node", "$createUploadServerNode", "data", "fields", "value", "src", "startsWith", "UploadServerNode", "__data", "constructor", "format", "key", "clone", "__format", "__key", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "default", "toHexString", "importedData", "setFormat", "isInline", "decorate", "_jsx", "RawUploadComponent", "nodeKey", "getKey", "exportDOM", "element", "document", "createElement", "setAttribute", "String", "exportJSON", "getData", "type", "getLatest", "setData", "writable", "getWritable", "updateDOM", "RawUploadComponent", "lazy", "then", "module", "default", "UploadComponent", "$convertUploadElement", "domNode", "hasAttribute", "id", "getAttribute", "relationTo", "node", "$createUploadNode", "data", "fields", "value", "img", "src", "startsWith", "isGoogleDocCheckboxImg", "UploadNode", "UploadServerNode", "clone", "getType", "importDOM", "conversion", "priority", "importJSON", "serializedNode", "version", "ObjectID", "toHexString", "importedData", "setFormat", "format", "decorate", "_jsx", "__data", "nodeKey", "getKey", "exportJSON", "$applyNodeReplacement", "$isUploadNode"]
|
|
7
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";import{a as O,b as T,c as U,f as A}from"./chunk-WAMTSCVM.js";import{b}from"./chunk-GD6LBQBJ.js";import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useLexicalComposerContext as ee}from"@lexical/react/LexicalComposerContext.js";import{useLexicalNodeSelection as te}from"@lexical/react/useLexicalNodeSelection.js";import{mergeRegister as oe}from"@lexical/utils";import{getTranslation as P}from"@payloadcms/translations";import{Button as v,DrawerToggler as le,File as ae,formatDrawerSlug as re,useConfig as ie,useDocumentDrawer as se,useEditDepth as ne,useModal as de,usePayloadAPI as ce,useTranslation as ue}from"@payloadcms/ui";import{$getNodeByKey as I,$getSelection as me,$isNodeSelection as pe,CLICK_COMMAND as fe,COMMAND_PRIORITY_LOW as w,KEY_BACKSPACE_COMMAND as ge,KEY_DELETE_COMMAND as he}from"lexical";import{useCallback as g,useEffect as _e,useId as Ce,useReducer as De,useRef as be,useState as ve}from"react";var l="lexical-upload",K={depth:0},we=c=>{let{data:{fields:j,relationTo:N,value:n},nodeKey:a}=c;if(typeof n=="object")throw new Error("Upload value should be a string or number. The Lexical Upload component should not receive the populated value object.");let{config:{collections:B,routes:{api:F},serverURL:k}}=ie(),h=be(null),{closeModal:S}=de(),{uuid:W}=b(),Y=ne(),[o]=ee(),[r,_,$]=te(a),{editorConfig:z,field:C}=b(),{i18n:x,t:u}=ue(),[E,H]=De(e=>e+1,0),[i]=ve(()=>B.find(e=>e.slug===N)),q=Ce(),m=re({slug:"lexical-upload-drawer-"+W+q,depth:Y}),[G,J,{closeDrawer:R}]=se({id:n,collectionSlug:i.slug}),[{data:p},{setParams:y}]=ce(`${k}${F}/${i.slug}/${n}`,{initialParams:K}),M=p?.thumbnailURL||p?.url,Q=g(()=>{o.update(()=>{I(a)?.remove()})},[o,a]),V=g(e=>{y({...K,cacheBust:E}),H(),R()},[y,E,R]),D=g(e=>{let f=me();return r&&pe(f)&&(e.preventDefault(),o.update(()=>{f.getNodes().forEach(s=>{A(s)&&s.remove()})})),!1},[o,r]);_e(()=>oe(o.registerCommand(fe,e=>e.target===h.current||h.current?.contains(e.target)?(e.shiftKey?_(!r):r||($(),_(!0)),!0):!1,w),o.registerCommand(he,D,w),o.registerCommand(ge,D,w)),[$,o,r,a,D,_]);let L=z?.resolvedFeatureMap?.get("upload")?.sanitizedClientFeatureProps.collections?.[i.slug]?.hasExtraFields,X=g((e,f)=>{o.update(()=>{let s=I(a);if(s){let Z={...s.getData(),fields:f};s.setData(Z)}}),S(m)},[S,o,m,a]);return d("div",{className:[l,r&&`${l}--selected`].filter(Boolean).join(" "),contentEditable:!1,ref:h,children:[d("div",{className:`${l}__card`,children:[d("div",{className:`${l}__topRow`,children:[t("div",{className:`${l}__thumbnail`,children:M?t("img",{alt:p?.filename,"data-lexical-upload-id":n,"data-lexical-upload-relation-to":N,src:M}):t(ae,{})}),d("div",{className:`${l}__topRowRightPanel`,children:[t("div",{className:`${l}__collectionLabel`,children:P(i.labels.singular,x)}),o.isEditable()&&d("div",{className:`${l}__actions`,children:[L?t(le,{className:`${l}__upload-drawer-toggler`,disabled:C?.admin?.readOnly,slug:m,children:t(v,{buttonStyle:"icon-label",el:"div",icon:"edit",onClick:e=>{e.preventDefault()},round:!0,tooltip:u("fields:editRelationship")})}):null,t(v,{buttonStyle:"icon-label",disabled:C?.admin?.readOnly,el:"div",icon:"swap",onClick:()=>{o.dispatchCommand(U,{replace:{nodeKey:a}})},round:!0,tooltip:u("fields:swapUpload")}),t(v,{buttonStyle:"icon-label",className:`${l}__removeButton`,disabled:C?.admin?.readOnly,icon:"x",onClick:e=>{e.preventDefault(),Q()},round:!0,tooltip:u("fields:removeUpload")})]})]})]}),t("div",{className:`${l}__bottomRow`,children:t(J,{className:`${l}__doc-drawer-toggler`,children:t("strong",{children:p?.filename})})})]}),n?t(G,{onSave:V}):null,L?t(O,{data:j,drawerSlug:m,drawerTitle:u("general:editLabel",{label:P(i.labels.singular,x)}),featureKey:"upload",handleDrawerSubmit:X,schemaPathSuffix:i.slug}):null]})},Ie=c=>t(T,{...c,uploads:!0,children:t(we,{...c})});export{Ie as UploadComponent};
|
|
2
|
-
//# sourceMappingURL=component-6PBZ2U3Z.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/features/upload/client/component/index.tsx"],
|
|
4
|
-
"sourcesContent": ["'use client'\nimport type { ClientCollectionConfig, Data } from 'payload'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'\nimport { mergeRegister } from '@lexical/utils'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n DrawerToggler,\n File,\n formatDrawerSlug,\n useConfig,\n useDocumentDrawer,\n useEditDepth,\n useModal,\n usePayloadAPI,\n useTranslation,\n} from '@payloadcms/ui'\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n} from 'lexical'\nimport React, { useCallback, useEffect, 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 '../feature.client.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 { EnabledRelationshipsCondition } from '../../../relationship/client/utils/EnabledRelationshipsCondition.js'\nimport { INSERT_UPLOAD_WITH_DRAWER_COMMAND } from '../drawer/commands.js'\nimport { $isUploadNode } from '../nodes/UploadNode.js'\nimport './index.scss'\n\nconst baseClass = 'lexical-upload'\n\nconst initialParams = {\n depth: 0,\n}\n\nexport type ElementProps = {\n data: UploadData\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 collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const uploadRef = useRef<HTMLDivElement | null>(null)\n const { closeModal } = useModal()\n const { uuid } = useEditorConfigContext()\n const editDepth = useEditDepth()\n const [editor] = useLexicalComposerContext()\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey)\n\n const { editorConfig, field } = useEditorConfigContext()\n\n const { i18n, t } = useTranslation()\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0)\n const [relatedCollection] = useState<ClientCollectionConfig>(\n () => collections.find((coll) => coll.slug === relationTo)!,\n )\n\n const componentID = useId()\n\n const drawerSlug = 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 const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\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 closeDrawer()\n },\n [setParams, cacheBust, closeDrawer],\n )\n\n const $onDelete = useCallback(\n (event: KeyboardEvent) => {\n const deleteSelection = $getSelection()\n if (isSelected && $isNodeSelection(deleteSelection)) {\n event.preventDefault()\n editor.update(() => {\n deleteSelection.getNodes().forEach((node) => {\n if ($isUploadNode(node)) {\n node.remove()\n }\n })\n })\n }\n return false\n },\n [editor, isSelected],\n )\n\n useEffect(() => {\n return mergeRegister(\n editor.registerCommand<MouseEvent>(\n CLICK_COMMAND,\n (event: MouseEvent) => {\n // Check if uploadRef.target or anything WITHIN uploadRef.target was clicked\n if (\n event.target === uploadRef.current ||\n uploadRef.current?.contains(event.target as Node)\n ) {\n if (event.shiftKey) {\n setSelected(!isSelected)\n } else {\n if (!isSelected) {\n clearSelection()\n setSelected(true)\n }\n }\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n\n editor.registerCommand(KEY_DELETE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, $onDelete, COMMAND_PRIORITY_LOW),\n )\n }, [clearSelection, editor, isSelected, nodeKey, $onDelete, setSelected])\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 (_, data) => {\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 closeModal(drawerSlug)\n },\n [closeModal, editor, drawerSlug, nodeKey],\n )\n\n return (\n <div\n className={[baseClass, isSelected && `${baseClass}--selected`].filter(Boolean).join(' ')}\n contentEditable={false}\n ref={uploadRef}\n >\n <div className={`${baseClass}__card`}>\n <div className={`${baseClass}__topRow`}>\n {/* TODO: migrate to use @payloadcms/ui/elements/Thumbnail component */}\n <div className={`${baseClass}__thumbnail`}>\n {thumbnailSRC ? (\n <img\n alt={data?.filename}\n data-lexical-upload-id={value}\n data-lexical-upload-relation-to={relationTo}\n src={thumbnailSRC}\n />\n ) : (\n <File />\n )}\n </div>\n <div className={`${baseClass}__topRowRightPanel`}>\n <div className={`${baseClass}__collectionLabel`}>\n {getTranslation(relatedCollection.labels.singular, i18n)}\n </div>\n {editor.isEditable() && (\n <div className={`${baseClass}__actions`}>\n {hasExtraFields ? (\n <DrawerToggler\n className={`${baseClass}__upload-drawer-toggler`}\n disabled={field?.admin?.readOnly}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n el=\"div\"\n icon=\"edit\"\n onClick={(e) => {\n e.preventDefault()\n }}\n round\n tooltip={t('fields:editRelationship')}\n />\n </DrawerToggler>\n ) : null}\n\n <Button\n buttonStyle=\"icon-label\"\n disabled={field?.admin?.readOnly}\n el=\"div\"\n icon=\"swap\"\n onClick={() => {\n editor.dispatchCommand(INSERT_UPLOAD_WITH_DRAWER_COMMAND, {\n replace: { nodeKey },\n })\n }}\n round\n tooltip={t('fields:swapUpload')}\n />\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__removeButton`}\n disabled={field?.admin?.readOnly}\n icon=\"x\"\n onClick={(e) => {\n e.preventDefault()\n removeUpload()\n }}\n round\n tooltip={t('fields:removeUpload')}\n />\n </div>\n )}\n </div>\n </div>\n <div className={`${baseClass}__bottomRow`}>\n <DocumentDrawerToggler className={`${baseClass}__doc-drawer-toggler`}>\n <strong>{data?.filename}</strong>\n </DocumentDrawerToggler>\n </div>\n </div>\n {value ? <DocumentDrawer onSave={updateUpload} /> : null}\n {hasExtraFields ? (\n <FieldsDrawer\n data={fields}\n drawerSlug={drawerSlug}\n drawerTitle={t('general:editLabel', {\n label: getTranslation(relatedCollection.labels.singular, i18n),\n })}\n featureKey=\"upload\"\n handleDrawerSubmit={onExtraFieldsDrawerSubmit}\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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useLexicalComposerContext", "useLexicalNodeSelection", "mergeRegister", "getTranslation", "Button", "DrawerToggler", "File", "formatDrawerSlug", "useConfig", "useDocumentDrawer", "useEditDepth", "useModal", "usePayloadAPI", "useTranslation", "$getNodeByKey", "$getSelection", "$isNodeSelection", "CLICK_COMMAND", "COMMAND_PRIORITY_LOW", "KEY_BACKSPACE_COMMAND", "KEY_DELETE_COMMAND", "useCallback", "useEffect", "useId", "useReducer", "useRef", "useState", "baseClass", "initialParams", "depth", "Component", "props", "data", "fields", "relationTo", "value", "nodeKey", "Error", "config", "collections", "routes", "api", "serverURL", "useConfig", "uploadRef", "useRef", "closeModal", "useModal", "uuid", "useEditorConfigContext", "editDepth", "useEditDepth", "editor", "useLexicalComposerContext", "isSelected", "setSelected", "clearSelection", "useLexicalNodeSelection", "editorConfig", "field", "i18n", "t", "useTranslation", "cacheBust", "dispatchCacheBust", "useReducer", "state", "relatedCollection", "useState", "find", "coll", "slug", "componentID", "useId", "drawerSlug", "formatDrawerSlug", "DocumentDrawer", "DocumentDrawerToggler", "closeDrawer", "useDocumentDrawer", "id", "collectionSlug", "setParams", "usePayloadAPI", "thumbnailSRC", "thumbnailURL", "url", "removeUpload", "useCallback", "update", "$getNodeByKey", "remove", "updateUpload", "$onDelete", "event", "deleteSelection", "$getSelection", "$isNodeSelection", "preventDefault", "getNodes", "forEach", "node", "$isUploadNode", "useEffect", "mergeRegister", "registerCommand", "CLICK_COMMAND", "target", "current", "contains", "shiftKey", "COMMAND_PRIORITY_LOW", "KEY_DELETE_COMMAND", "KEY_BACKSPACE_COMMAND", "hasExtraFields", "resolvedFeatureMap", "get", "sanitizedClientFeatureProps", "onExtraFieldsDrawerSubmit", "_", "uploadNode", "newData", "getData", "setData", "_jsxs", "className", "filter", "Boolean", "join", "contentEditable", "ref", "_jsx", "alt", "filename", "src", "File", "getTranslation", "labels", "singular", "isEditable", "DrawerToggler", "disabled", "admin", "readOnly", "Button", "buttonStyle", "el", "icon", "onClick", "e", "round", "tooltip", "dispatchCommand", "INSERT_UPLOAD_WITH_DRAWER_COMMAND", "replace", "onSave", "FieldsDrawer", "drawerTitle", "label", "featureKey", "handleDrawerSubmit", "schemaPathSuffix", "UploadComponent", "EnabledRelationshipsCondition", "uploads"]
|
|
7
|
-
}
|
|
File without changes
|