@payloadcms/richtext-lexical 3.1.0 → 3.1.1-canary.c40ff01

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.
@@ -36,7 +36,7 @@ ${e.map(Ma).join(`
36
36
  `),r=!1,n=[];for(let i=0;i<o.length;i++){let l=o[i],s=n[n.length-1];if(ap.test(l)){n.push(l);continue}if((bl.test(l)&&!r||_l.test(l)&&r)&&(r=!r),bl.test(l)||_l.test(l)){n.push(l);continue}if(r){n.push(l);continue}Cl.test(l)||Cl.test(s)||!s||xl.test(s)||xl.test(l)||sp.test(l)||np.test(l)||ip.test(l)||lp.test(l)||cp.test(l)||up.test(l)||!e||Tl.test(l)||El.test(l)||Tl.test(s)||El.test(s)?n.push(l):n[n.length-1]=s+" "+l.trim()}return n.join(`
37
37
  `)}function wl(t,e=pr,o,r=!1,n=!0){let i=r?t:dp(t,n);return fr(i,e,o)}var Ll=/^\|(.+)\|\s?$/,_p=/^(\| ?:?-*:? ?)+\|\s?$/,Rl=({allTransformers:t})=>({type:"element",dependencies:[gp,Cp,hp],export:e=>{if(!Zo(e))return null;let o=[];for(let r of e.getChildren()){let n=[];if(!Xo(r))continue;let i=!1;for(let l of r.getChildren())kl(l)&&(n.push(hr(t,l).replace(/\n/g,"\\n")),l.__headerState===Vt.ROW&&(i=!0));o.push(`| ${n.join(" | ")} |`),i&&o.push(`| ${n.map(l=>"---").join(" | ")} |`)}return o.join(`
38
38
  `)},regExp:Ll,replace:(e,o,r)=>{if(_p.test(r[0])){let c=e.getPreviousSibling();if(!c||!Zo(c))return;let u=c.getChildren(),m=u[u.length-1];if(!m||!Xo(m))return;m.getChildren().forEach(p=>{kl(p)&&p.setHeaderStyles(Vt.ROW,Vt.ROW)}),e.remove();return}let n=Nl(r[0],t);if(n==null)return;let i=[n],l=e.getPreviousSibling(),s=n.length;for(;l&&!(!xp(l)||l.getChildrenSize()!==1);){let c=l.getFirstChild();if(!bp(c))break;let u=Nl(c.getTextContent(),t);if(u==null)break;s=Math.max(s,u.length),i.unshift(u);let m=l.getPreviousSibling();l.remove(),l=m}let a=pp();for(let c of i){let u=fp();a.append(u);for(let m=0;m<s;m++)u.append(m<c.length?c[m]:Sl("",t))}let d=e.getPreviousSibling();Zo(d)&&Tp(d)===s?(d.append(...a.getChildren()),e.remove()):e.replace(a),a.selectEnd()}});function Tp(t){let e=t.getFirstChild();return Xo(e)?e.getChildrenSize():0}var Sl=(t,e)=>{t=t.replace(/\\n/g,`
39
- `);let o=mp(Vt.NO_STATUS);return wl(t,e,o),o},Nl=(t,e)=>{let o=t.match(Ll);return!o||!o[1]?null:o[1].split("|").map(r=>Sl(r,e))};import{c as wp}from"react/compiler-runtime";import{jsx as P,jsxs as Ce}from"react/jsx-runtime";import{useLexicalComposerContext as Ml}from"@lexical/react/LexicalComposerContext";import{useLexicalEditable as kp}from"@lexical/react/useLexicalEditable";import{$deleteTableColumn__EXPERIMENTAL as Np,$deleteTableRow__EXPERIMENTAL as Lp,$getNodeTriplet as Rp,$getTableCellNodeFromLexicalNode as Sp,$getTableColumnIndexFromTableCellNode as Ip,$getTableNodeFromLexicalNodeOrThrow as ut,$getTableRowIndexFromTableCellNode as yp,$insertTableColumn__EXPERIMENTAL as vp,$insertTableRow__EXPERIMENTAL as Mp,$isTableCellNode as Kt,$isTableRowNode as yl,$isTableSelection as Zt,$unmergeCell as Dp,getTableObserverFromTableElement as Ap,TableCellHeaderStates as Ee,TableCellNode as Op}from"@lexical/table";import{useScrollInfo as Fp}from"@payloadcms/ui";import{$createParagraphNode as $p,$getRoot as Pp,$getSelection as Xt,$isElementNode as Bp,$isParagraphNode as Dl,$isRangeSelection as qo,$isTextNode as Hp}from"lexical";import*as Qo from"react";import{useCallback as ae,useEffect as Se,useRef as zt,useState as Pe}from"react";import{createPortal as Al}from"react-dom";import{jsx as Yo,jsxs as Ep}from"react/jsx-runtime";import"react";var Il=()=>Ep("svg",{fill:"none",height:"18",viewBox:"0 0 20 20",width:"18",xmlns:"http://www.w3.org/2000/svg",children:[Yo("path",{d:"M5 11C5.55228 11 6 10.5523 6 10C6 9.44772 5.55228 9 5 9C4.44772 9 4 9.44772 4 10C4 10.5523 4.44772 11 5 11Z",fill:"currentColor"}),Yo("path",{d:"M10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z",fill:"currentColor"}),Yo("path",{d:"M15 11C15.5523 11 16 10.5523 16 10C16 9.44772 15.5523 9 15 9C14.4477 9 14 9.44772 14 10C14 10.5523 14.4477 11 15 11Z",fill:"currentColor"})]});function Jo(t){let e=t.getShape();return{columns:e.toX-e.fromX+1,rows:e.toY-e.fromY+1}}function jp(){let t=Xt();if(qo(t)&&!t.isCollapsed()||Zt(t)&&!t.anchor.is(t.focus)||!qo(t)&&!Zt(t))return!1;let[e]=Rp(t.anchor);return e.__colSpan>1||e.__rowSpan>1}function vl(t){if(t.getChildrenSize()!==1)return!1;let e=t.getFirstChildOrThrow();return!(!Dl(e)||!e.isEmpty())}function Gp(t){let e=t.getLastDescendant();Hp(e)?e.select():Bp(e)?e.selectEnd():e!==null&&e.selectNext()}function Up({cellMerge:t,contextRef:e,onClose:o,setIsMenuOpen:r,tableCellNode:n}){let[i]=Ml(),l=zt(null),[s,a]=Pe(n),[d,c]=Pe({columns:1,rows:1}),[u,m]=Pe(!1),[p,f]=Pe(!1),{y:h}=Fp();Se(()=>i.registerMutationListener(Op,b=>{b.get(s.getKey())==="updated"&&i.getEditorState().read(()=>{a(s.getLatest())})},{skipInitialization:!0}),[i,s]),Se(()=>{i.getEditorState().read(()=>{let b=Xt();if(Zt(b)){let T=Jo(b);c(Jo(b)),m(T.columns>1||T.rows>1)}f(jp())})},[i]),Se(()=>{let b=e.current,T=l.current,I=i.getRootElement();if(b!=null&&T!=null&&I!=null){let L=I.getBoundingClientRect(),A=b.getBoundingClientRect();T.style.opacity="1";let M=T.getBoundingClientRect(),F=5,G=A.right+F;if(G+M.width>window.innerWidth||G+M.width>L.right){let W=A.left-M.width-F;G=(W<0?F:W)+window.pageXOffset}T.style.left=`${G+window.pageXOffset}px`;let $=A.top;if($+M.height>window.innerHeight){let W=A.bottom-M.height;$=(W<0?F:W)+window.pageYOffset}T.style.top=`${$}px`}},[e,l,i,h]),Se(()=>{function b(T){l.current!=null&&e.current!=null&&!l.current.contains(T.target)&&!e.current.contains(T.target)&&r(!1)}return window.addEventListener("click",b),()=>window.removeEventListener("click",b)},[r,e]);let C=ae(()=>{i.update(()=>{if(s.isAttached()){let T=ut(s),I=i.getElementByKey(T.getKey());if(!I)throw new Error("Expected to find tableElement in DOM");let L=Ap(I);L!==null&&L.clearHighlight(),T.markDirty(),a(s.getLatest())}Pp().selectStart()})},[i,s]),w=()=>{i.update(()=>{let b=Xt();if(Zt(b)){let{columns:T,rows:I}=Jo(b),L=b.getNodes(),A=null;for(let M=0;M<L.length;M++){let F=L[M];if(Kt(F))if(A===null){F.setColSpan(T).setRowSpan(I),A=F;let G=vl(F),$;G&&Dl($=F.getFirstChild())&&$.remove()}else Kt(A)&&(vl(F)||A.append(...F.getChildren()),F.remove())}A!==null&&(A.getChildrenSize()===0&&A.append($p()),Gp(A)),o()}})},v=()=>{i.update(()=>{Dp()})},D=ae(b=>{i.update(()=>{Mp(b),o()})},[i,o]),x=ae(b=>{i.update(()=>{for(let T=0;T<d.columns;T++)vp(b);o()})},[i,o,d.columns]),E=ae(()=>{i.update(()=>{Lp(),o()})},[i,o]),g=ae(()=>{i.update(()=>{ut(s).remove(),C(),o()})},[i,s,C,o]),_=ae(()=>{i.update(()=>{Np(),o()})},[i,o]),N=ae(()=>{i.update(()=>{let b=ut(s),T=yp(s),I=b.getChildren();if(T>=I.length||T<0)throw new Error("Expected table cell to be inside of table row.");let L=I[T];if(!yl(L))throw new Error("Expected table row");let A=s.getHeaderStyles()^Ee.ROW;L.getChildren().forEach(M=>{if(!Kt(M))throw new Error("Expected table cell");M.setHeaderStyles(A,Ee.ROW)}),C(),o()})},[i,s,C,o]),k=ae(()=>{i.update(()=>{let b=ut(s),T=Ip(s),I=b.getChildren(),L=Math.max(...I.map(M=>M.getChildren().length));if(T>=L||T<0)throw new Error("Expected table cell to be inside of table row.");let A=s.getHeaderStyles()^Ee.COLUMN;for(let M=0;M<I.length;M++){let F=I[M];if(!yl(F))throw new Error("Expected table row");let G=F.getChildren();if(T>=G.length)continue;let $=G[T];if(!Kt($))throw new Error("Expected table cell");$.setHeaderStyles(A,Ee.COLUMN)}C(),o()})},[i,s,C,o]),R=ae(()=>{i.update(()=>{if(s.isAttached()){let b=ut(s);b&&b.setRowStriping(!b.getRowStriping())}C(),o()})},[i,s,C,o]),S=null;return t&&(u?S=P("button",{className:"item","data-test-id":"table-merge-cells",onClick:()=>w(),type:"button",children:"Merge cells"}):p&&(S=P("button",{className:"item","data-test-id":"table-unmerge-cells",onClick:()=>v(),type:"button",children:"Unmerge cells"}))),Al(Ce("div",{className:"table-action-menu-dropdown",onClick:b=>{b.stopPropagation()},ref:l,children:[S?Ce(Qo.Fragment,{children:[S,P("hr",{})]}):null,P("button",{className:"item","data-test-id":"table-row-striping",onClick:()=>R(),type:"button",children:P("span",{className:"text",children:"Toggle Row Striping"})}),P("button",{className:"item","data-test-id":"table-insert-row-above",onClick:()=>D(!1),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.rows===1?"row":`${d.rows} rows`," above"]})}),P("button",{className:"item","data-test-id":"table-insert-row-below",onClick:()=>D(!0),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.rows===1?"row":`${d.rows} rows`," below"]})}),P("hr",{}),P("button",{className:"item","data-test-id":"table-insert-column-before",onClick:()=>x(!1),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.columns===1?"column":`${d.columns} columns`," ","left"]})}),P("button",{className:"item","data-test-id":"table-insert-column-after",onClick:()=>x(!0),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.columns===1?"column":`${d.columns} columns`," ","right"]})}),P("hr",{}),P("button",{className:"item","data-test-id":"table-delete-columns",onClick:()=>_(),type:"button",children:P("span",{className:"text",children:"Delete column"})}),P("button",{className:"item","data-test-id":"table-delete-rows",onClick:()=>E(),type:"button",children:P("span",{className:"text",children:"Delete row"})}),P("button",{className:"item","data-test-id":"table-delete",onClick:()=>g(),type:"button",children:P("span",{className:"text",children:"Delete table"})}),P("hr",{}),P("button",{className:"item",onClick:()=>N(),type:"button",children:Ce("span",{className:"text",children:[(s.__headerState&Ee.ROW)===Ee.ROW?"Remove":"Add"," ","row header"]})}),P("button",{className:"item","data-test-id":"table-column-header",onClick:()=>k(),type:"button",children:Ce("span",{className:"text",children:[(s.__headerState&Ee.COLUMN)===Ee.COLUMN?"Remove":"Add"," ","column header"]})})]}),document.body)}function Wp({anchorElem:t,cellMerge:e}){let[o]=Ml(),r=zt(null),n=zt(null),[i,l]=Pe(!1),[s,a]=Pe(null),d=ae(()=>{let u=r.current,m=Xt(),p=window.getSelection(),f=document.activeElement;if(m==null||u==null){a(null);return}let h=o.getRootElement();if(qo(m)&&h!==null&&p!==null&&h.contains(p.anchorNode)){let C=Sp(m.anchor.getNode());if(C==null){a(null);return}if(o.getElementByKey(C.getKey())==null){a(null);return}a(C)}else f||a(null)},[o]);Se(()=>o.registerUpdateListener(()=>{o.getEditorState().read(()=>{d()})})),Se(()=>{let u=r.current;if(u!=null&&s!=null){let m=o.getElementByKey(s.getKey());if(m!=null){let p=m.getBoundingClientRect(),f=u.getBoundingClientRect(),h=t.getBoundingClientRect(),C=p.top-h.top+4,w=p.right-f.width-10-h.left;u.style.opacity="1",u.style.transform=`translate(${w}px, ${C}px)`}else u.style.opacity="0",u.style.transform="translate(-10000px, -10000px)"}},[r,s,o,t]);let c=zt(s);return Se(()=>{c.current!==s&&l(!1),c.current=s},[c,s]),P("div",{className:"table-cell-action-button-container",ref:r,children:s!=null&&Ce(Qo.Fragment,{children:[P("button",{className:"table-cell-action-button",onClick:u=>{u.stopPropagation(),l(!i)},ref:n,type:"button",children:P(Il,{})}),i&&P(Up,{cellMerge:e,contextRef:n,onClose:()=>l(!1),setIsMenuOpen:l,tableCellNode:s})]})})}var Ol=t=>{let e=wp(3),{anchorElem:o}=t,r=kp(),n;return e[0]!==r||e[1]!==o?(n=Al(r?P(Wp,{anchorElem:o??document.body,cellMerge:!0}):null,o??document.body),e[0]=r,e[1]=o,e[2]=n):n=e[2],n};import{c as Vp}from"react/compiler-runtime";import{jsx as Jt,jsxs as Kp}from"react/jsx-runtime";import{useLexicalComposerContext as zp}from"@lexical/react/LexicalComposerContext";import{useLexicalEditable as Zp}from"@lexical/react/useLexicalEditable";import{$computeTableMapSkipCellCheck as Xp,$getTableNodeFromLexicalNodeOrThrow as er,$getTableRowIndexFromTableCellNode as Yp,$isTableCellNode as Fl,$isTableRowNode as Jp,getDOMCellFromTarget as qp,TableNode as Qp}from"@lexical/table";import{calculateZoomLevel as $l}from"@lexical/utils";import{$getNearestNodeFromDOMNode as tr}from"lexical";import*as Bl from"react";import{useCallback as dt,useEffect as or,useRef as Yt,useState as mt}from"react";import{createPortal as ef}from"react-dom";var tf=33,Pl=92;function of({editor:t}){let e=Yt(null),o=Yt(null),r=Yt(null),n=B(),i=Yt(null),[l,s]=mt(null),[a,d]=mt(null),[c,u]=mt(!1),[m,p]=mt(null),f=dt(()=>{d(null),e.current=null,p(null),i.current=null,r.current=null},[]),h=k=>(k.buttons&1)===1;or(()=>t.registerNodeTransform(Qp,k=>{if(k.getColWidths())return k;let R=k.getColumnCount(),S=Pl;return k.setColWidths(Array(R).fill(S)),k}),[t]),or(()=>{let k=T=>{setTimeout(()=>{let I=T.target;if(m){s({x:T.clientX,y:T.clientY});return}if(u(h(T)),!(o.current&&o.current.contains(I))&&e.current!==I){e.current=I;let L=qp(I);L&&a!==L?t.update(()=>{let A=tr(L.elem);if(!A)throw new Error("TableCellResizer: Table cell node not found.");let M=er(A),F=t.getElementByKey(M.getKey());if(!F)throw new Error("TableCellResizer: Table element not found.");e.current=I,r.current=F.getBoundingClientRect(),d(L)}):L==null&&f()}},0)},R=T=>{setTimeout(()=>{u(!0)},0)},S=T=>{setTimeout(()=>{u(!1)},0)},b=t.registerRootListener((T,I)=>{I?.removeEventListener("mousemove",k),I?.removeEventListener("mousedown",R),I?.removeEventListener("mouseup",S),T?.addEventListener("mousemove",k),T?.addEventListener("mousedown",R),T?.addEventListener("mouseup",S)});return()=>{b()}},[a,m,t,f]);let C=k=>k==="bottom",w=dt(k=>{if(!a)throw new Error("TableCellResizer: Expected active cell.");t.update(()=>{let R=tr(a.elem);if(!Fl(R))throw new Error("TableCellResizer: Table cell node not found.");let S=er(R),b=Yp(R)+R.getRowSpan()-1,T=S.getChildren();if(b>=T.length||b<0)throw new Error("Expected table cell to be inside of table row.");let I=T[b];if(!Jp(I))throw new Error("Expected table row");let L=I.getHeight();if(L===void 0){let M=I.getChildren();L=Math.min(...M.map(F=>v(F,t)??1/0))}let A=Math.max(L+k,tf);I.setHeight(A)},{tag:"skip-scroll-into-view"})},[a,t]),v=(k,R)=>R.getElementByKey(k.getKey())?.clientHeight,D=(k,R)=>{for(let S=0;S<R.length;S++)for(let b=0;b<R[S].length;b++)if(R[S][b].cell===k)return b},x=dt(k=>{if(!a)throw new Error("TableCellResizer: Expected active cell.");t.update(()=>{let R=tr(a.elem);if(!Fl(R))throw new Error("TableCellResizer: Table cell node not found.");let S=er(R),[b]=Xp(S,null,null),T=D(R,b);if(T===void 0)throw new Error("TableCellResizer: Table column not found.");let I=S.getColWidths();if(!I)return;let L=I[T];if(L===void 0)return;let A=[...I],M=Math.max(L+k,Pl);A[T]=M,S.setColWidths(A)},{tag:"skip-scroll-into-view"})},[a,t]),E=dt(k=>{let R=S=>{if(S.preventDefault(),S.stopPropagation(),!a)throw new Error("TableCellResizer: Expected active cell.");if(i.current){let{x:b,y:T}=i.current;if(a===null)return;let I=$l(S.target);if(C(k)){let L=(S.clientY-T)/I;w(L)}else{let L=(S.clientX-b)/I;x(L)}f(),document.removeEventListener("mouseup",R)}};return R},[a,f,x,w]),g=dt(k=>R=>{if(R.preventDefault(),R.stopPropagation(),!a)throw new Error("TableCellResizer: Expected active cell.");i.current={x:R.clientX,y:R.clientY},s(i.current),p(k),document.addEventListener("mouseup",E(k))},[a,E]),[_,N]=mt({bottom:null,left:null,right:null,top:null});return or(()=>{if(a){let{height:k,left:R,top:S,width:b}=a.elem.getBoundingClientRect(),T=$l(a.elem),I=10,L={bottom:{backgroundColor:"none",cursor:"row-resize",height:`${I}px`,left:`${window.scrollX+R}px`,top:`${window.scrollY+S+k-I/2}px`,width:`${b}px`},right:{backgroundColor:"none",cursor:"col-resize",height:`${k}px`,left:`${window.scrollX+R+b-I/2}px`,top:`${window.scrollY+S}px`,width:`${I}px`}},A=r.current;m&&l&&A&&(C(m)?(L[m].left=`${window.scrollX+A.left}px`,L[m].top=`${window.scrollY+l.y/T}px`,L[m].height="3px",L[m].width=`${A.width}px`):(L[m].top=`${window.scrollY+A.top}px`,L[m].left=`${window.scrollX+l.x/T}px`,L[m].width="3px",L[m].height=`${A.height}px`),L[m].backgroundColor="#adf"),N(L)}else N({bottom:null,left:null,right:null,top:null})},[a,m,l]),Jt("div",{ref:o,children:a!=null&&!c&&Kp(Bl.Fragment,{children:[Jt("div",{className:`${n.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`,onMouseDown:g("right"),style:_.right||void 0}),Jt("div",{className:`${n.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`,onMouseDown:g("bottom"),style:_.bottom||void 0})]})})}var Hl=()=>{let t=Vp(3),[e]=zp(),o=Zp(),r,n;return t[0]!==o||t[1]!==e?(n=o?ef(Jt(of,{editor:e}),document.body):null,t[0]=o,t[1]=e,t[2]=n):n=t[2],r=n,r};import{c as df}from"react/compiler-runtime";import{jsx as rr,jsxs as mf,Fragment as pf}from"react/jsx-runtime";import{useLexicalComposerContext as Zl}from"@lexical/react/LexicalComposerContext";import{$getTableColumnIndexFromTableCellNode as ff,$getTableRowIndexFromTableCellNode as hf,$insertTableColumn__EXPERIMENTAL as gf,$insertTableRow__EXPERIMENTAL as Cf,$isTableCellNode as xf,$isTableNode as Ul,TableNode as bf}from"@lexical/table";import{$findMatchingParent as _f,mergeRegister as Tf}from"@lexical/utils";import{$getNearestNodeFromDOMNode as Wl}from"lexical";import{useEffect as Vl,useMemo as Ef,useRef as Kl,useState as qt}from"react";import"react";import{createPortal as wf}from"react-dom";import{c as af}from"react/compiler-runtime";import{useEffect as cf,useRef as uf}from"react";var rf="Expected a function",nf=Math.max,lf=Math.min;function sf(t,e,o){let r,n,i=0,l,s=!1,a=!1,d,c,u,m=!0;if(typeof t!="function")throw new TypeError(rf);e=e||0,typeof o=="object"&&(s=!!o.leading,a="maxWait"in o,d=a?nf(o.maxWait||0,e):d,m="trailing"in o?!!o.trailing:m);function p(g){let _=r,N=l;return r=l=void 0,i=g,c=t.apply(N,_),c}function f(g){return i=g,u=setTimeout(w,e),s?p(g):c}function h(g){let _=g-n,N=g-i,k=e-_;return a?lf(k,d-N):k}function C(g){let _=g-n,N=g-i;return n===void 0||_>=e||_<0||a&&N>=d}function w(){let g=Date.now();if(C(g))return v(g);u=setTimeout(w,h(g))}function v(g){return u=void 0,m&&r?p(g):(r=l=void 0,c)}function D(){u!==void 0&&clearTimeout(u),i=0,r=n=l=u=void 0}function x(){return u===void 0?c:v(Date.now())}function E(){let g=Date.now(),_=C(g);if(r=arguments,l=this,n=g,_){if(u===void 0)return f(n);if(a)return clearTimeout(u),u=setTimeout(w,e),p(n)}return u===void 0&&(u=setTimeout(w,e)),c}return E.cancel=D,E.flush=x,E}var jl=sf;function Gl(t,e,o){let r=af(6),n=uf(null),i,l;r[0]!==t||r[1]!==e||r[2]!==o?(i=()=>(n.current=jl(t,e,{maxWait:o}),()=>{n.current?.cancel()}),l=[t,e,o],r[0]=t,r[1]=e,r[2]=o,r[3]=i,r[4]=l):(i=r[3],l=r[4]),cf(i,l);let s;return r[5]===Symbol.for("react.memo_cache_sentinel")?(s=(...d)=>{let c=d;n.current&&n.current(...c)},r[5]=s):s=r[5],s}var zl=20;function kf({anchorElem:t}){let[e]=Zl(),o=B(),[r,n]=qt(!1),[i,l]=qt(!1),[s,a]=qt(!1),[d,c]=qt({}),u=Kl(new Set),m=Kl(null),p=Gl(C=>{let{isOutside:w,tableDOMNode:v}=Nf(C,o.editorConfig?.lexical);if(w){n(!1),l(!1);return}if(!v)return;m.current=v;let D=null,x=null,E=null;if(e.update(()=>{let g=Wl(v);if(xf(g)){let _=_f(g,N=>Ul(N));if(!Ul(_))return;if(E=e.getElementByKey(_?.getKey()),E){let N=_.getChildrenSize(),k=_.getChildAtIndex(0)?.getChildrenSize(),R=hf(g),S=ff(g);R===N-1?D=g:S===k-1&&(x=g)}}}),E){let{bottom:g,height:_,left:N,right:k,width:R,y:S}=E.getBoundingClientRect(),{left:b,y:T}=t.getBoundingClientRect();D?(l(!1),n(!0),c({height:zl,left:N-b,top:g-T+5,width:R})):x&&(l(!0),n(!1),c({height:_,left:k-b+5,top:S-T,width:zl}))}},50,250),f=Ef(()=>new ResizeObserver(()=>{n(!1),l(!1)}),[]);Vl(()=>{if(s)return document.addEventListener("mousemove",p),()=>{n(!1),l(!1),document.removeEventListener("mousemove",p)}},[s,p]),Vl(()=>Tf(e.registerMutationListener(bf,C=>{e.getEditorState().read(()=>{for(let[w,v]of C){let D=e.getElementByKey(w);switch(v){case"created":u.current.add(w),a(u.current.size>0),D&&f.observe(D);break;case"destroyed":u.current.delete(w),a(u.current.size>0),f.disconnect(),u.current.forEach(x=>{let E=e.getElementByKey(x);E&&f.observe(E)});break;default:break}}})},{skipInitialization:!1})),[e,f]);let h=C=>{e.update(()=>{m.current&&(Wl(m.current)?.selectEnd(),C?(Cf(),n(!1)):(gf(),l(!1)))})};return e?.isEditable()?mf(pf,{children:[r&&rr("button",{className:o.editorConfig.lexical.theme.tableAddRows,onClick:()=>h(!0),style:{...d},type:"button"}),i&&rr("button",{className:o.editorConfig.lexical.theme.tableAddColumns,onClick:()=>h(!1),style:{...d},type:"button"})]}):null}function Nf(t,e){let o=t.target;if(o&&o instanceof HTMLElement){let r=o.closest(`td.${e.theme.tableCell}, th.${e.theme.tableCell}`);return{isOutside:!(r||o.closest(`button.${e.theme.tableAddRows}`)||o.closest(`button.${e.theme.tableAddColumns}`)||o.closest(`div.${e.theme.tableCellResizer}`)),tableDOMNode:r}}else return{isOutside:!0,tableDOMNode:null}}function Xl(t){let e=df(2),{anchorElem:o}=t,r=o===void 0?document.body:o,[n]=Zl();if(!n?.isEditable())return null;let i;return e[0]!==r?(i=wf(rr(kf,{anchorElem:r}),r),e[0]=r,e[1]=i):i=e[1],i}import{c as Lf}from"react/compiler-runtime";import{jsx as nr,jsxs as Rf}from"react/jsx-runtime";import{useLexicalComposerContext as Sf}from"@lexical/react/LexicalComposerContext";import{TablePlugin as If}from"@lexical/react/LexicalTablePlugin";import{INSERT_TABLE_COMMAND as yf,TableNode as vf}from"@lexical/table";import{mergeRegister as Mf}from"@lexical/utils";import{formatDrawerSlug as Df,useEditDepth as Af}from"@payloadcms/ui";import{$getSelection as Of,$isRangeSelection as Ff,COMMAND_PRIORITY_EDITOR as $f,createCommand as Pf}from"lexical";import{createContext as Bf,useContext as Hf,useEffect as jf,useMemo as Gf,useState as Uf}from"react";import*as Yl from"react";var Qt=Pf("OPEN_EMBED_DRAWER_COMMAND"),Jl=Bf({cellEditorConfig:null,cellEditorPlugins:null,set:()=>{}});function ql({children:t}){let[e,o]=Uf({cellEditorConfig:null,cellEditorPlugins:null});return nr(Jl.Provider,{value:Gf(()=>({cellEditorConfig:e.cellEditorConfig,cellEditorPlugins:e.cellEditorPlugins,set:(r,n)=>{o({cellEditorConfig:r,cellEditorPlugins:n})}}),[e.cellEditorConfig,e.cellEditorPlugins]),children:t})}var Ql=()=>{let t=Lf(16),[e]=Sf(),o=Hf(Jl),r=Af(),{fieldProps:n,uuid:i}=B(),{schemaPath:l}=n,s="lexical-table-create-"+i,a;t[0]!==s||t[1]!==r?(a=Df({slug:s,depth:r}),t[0]=s,t[1]=r,t[2]=a):a=t[2];let d=a,{toggleDrawer:c}=ce(d,!0),u;t[3]!==e||t[4]!==c?(u=()=>{if(!e.hasNodes([vf]))throw new Error("TablePlugin: TableNode is not registered on editor");return Mf(e.registerCommand(Qt,()=>{let h;return h=null,e.getEditorState().read(()=>{let C=Of();Ff(C)&&(h=C)}),h&&c(),!0},$f))},t[3]=e,t[4]=c,t[5]=u):u=t[5];let m;t[6]!==o||t[7]!==e||t[8]!==c?(m=[o,e,c],t[6]=o,t[7]=e,t[8]=c,t[9]=m):m=t[9],jf(u,m);let p;t[10]!==e?(p=(h,C)=>{!C.columns||!C.rows||e.dispatchCommand(yf,{columns:String(C.columns),rows:String(C.rows)})},t[10]=e,t[11]=p):p=t[11];let f;return t[12]!==d||t[13]!==p||t[14]!==l?(f=Rf(Yl.Fragment,{children:[nr(He,{drawerSlug:d,drawerTitle:"Create Table",featureKey:"experimental_table",handleDrawerSubmit:p,schemaPath:l,schemaPathSuffix:"fields"}),nr(If,{hasCellBackgroundColor:!1,hasCellMerge:!0})]}),t[12]=d,t[13]=p,t[14]=l,t[15]=f):f=t[15],f};var zf=y({markdownTransformers:[Rl],nodes:[Vf,Wf,Kf],plugins:[{Component:Ql,position:"normal"},{Component:Hl,position:"normal"},{Component:Ol,position:"floatingAnchorElem"},{Component:Xl,position:"floatingAnchorElem"}],providers:[ql],slashMenu:{groups:[Z([{Icon:zo,key:"table",keywords:["table"],label:"Table",onSelect:({editor:t})=>{t.dispatchCommand(Qt,{})}}])]},toolbarFixed:{groups:[de([{ChildComponent:zo,key:"table",label:"Table",onSelect:({editor:t})=>{t.dispatchCommand(Qt,{})}}])]}});import{$isNodeSelection as g1}from"lexical";import{jsx as ir,jsxs as Zf}from"react/jsx-runtime";import"react";var lr=()=>Zf("svg",{"aria-hidden":"true",className:"icon",fill:"none",focusable:"false",height:"20",viewBox:"0 0 20 20",width:"20",xmlns:"http://www.w3.org/2000/svg",children:[ir("path",{d:"M14.6667 4H5.33333C4.59695 4 4 4.59695 4 5.33333V14.6667C4 15.403 4.59695 16 5.33333 16H14.6667C15.403 16 16 15.403 16 14.6667V5.33333C16 4.59695 15.403 4 14.6667 4Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),ir("path",{d:"M7.99984 9.33366C8.73622 9.33366 9.33317 8.73671 9.33317 8.00033C9.33317 7.26395 8.73622 6.66699 7.99984 6.66699C7.26346 6.66699 6.6665 7.26395 6.6665 8.00033C6.6665 8.73671 7.26346 9.33366 7.99984 9.33366Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),ir("path",{d:"M16 11.9995L13.9427 9.94214C13.6926 9.69218 13.3536 9.55176 13 9.55176C12.6464 9.55176 12.3074 9.69218 12.0573 9.94214L6 15.9995",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})]});import{c as r1}from"react/compiler-runtime";import{jsx as n1}from"react/jsx-runtime";import{useLexicalComposerContext as i1}from"@lexical/react/LexicalComposerContext.js";import{$insertNodeToNearestRoot as l1,mergeRegister as s1}from"@lexical/utils";import{useConfig as a1}from"@payloadcms/ui";import{$getPreviousSelection as c1,$getSelection as u1,$isParagraphNode as ts,$isRangeSelection as d1,COMMAND_PRIORITY_EDITOR as m1,createCommand as p1}from"lexical";import{useEffect as f1}from"react";import{c as Xf}from"react/compiler-runtime";import{jsx as sr}from"react/jsx-runtime";import{useLexicalComposerContext as Yf}from"@lexical/react/LexicalComposerContext.js";import{$getNodeByKey as Jf,COMMAND_PRIORITY_EDITOR as qf}from"lexical";import{useEffect as Qf,useState as e1}from"react";var t1=({editor:t,relationTo:e,replaceNodeKey:o,value:r})=>{o?t.update(()=>{let n=Jf(o);n&&n.replace(Ke({data:{fields:null,relationTo:e,value:r}}))}):t.dispatchCommand(ar,{fields:null,relationTo:e,value:r})},o1=t=>{let e=Xf(13),{enabledCollectionSlugs:o}=t,[r]=Yf(),[n,i]=e1(null),l;e[0]!==o?(l={collectionSlugs:o,uploads:!0},e[0]=o,e[1]=l):l=e[1];let{closeListDrawer:s,ListDrawer:a,openListDrawer:d}=lt(l),c,u;e[2]!==r||e[3]!==d?(c=()=>r.registerCommand(We,h=>(i(h?.replace?h?.replace.nodeKey:null),d(),!0),qf),u=[r,d],e[2]=r,e[3]=d,e[4]=c,e[5]=u):(c=e[4],u=e[5]),Qf(c,u);let m;e[6]!==s||e[7]!==r||e[8]!==n?(m=h=>{let{collectionSlug:C,docID:w}=h;s(),t1({editor:r,relationTo:C,replaceNodeKey:n,value:w})},e[6]=s,e[7]=r,e[8]=n,e[9]=m):m=e[9];let p=m,f;return e[10]!==p||e[11]!==a?(f=sr(a,{onSelect:p}),e[10]=p,e[11]=a,e[12]=f):f=e[12],f},es=t=>sr(bt,{...t,uploads:!0,children:sr(o1,{...t})});var ar=p1("INSERT_UPLOAD_COMMAND"),os=t=>{let e=r1(5),[o]=i1(),{config:r}=a1(),{collections:n}=r,i,l;e[0]!==o?(i=()=>{if(!o.hasNodes([Ve]))throw new Error("UploadPlugin: UploadNode not registered on editor");return s1(o.registerCommand(ar,a=>(o.update(()=>{let d=u1()||c1();if(d1(d)){let c=Ke({data:{id:a.id,fields:a.fields,relationTo:a.relationTo,value:a.value}});l1(c);let{focus:u}=d,m=u.getNode();ts(m)&&m.getTextContentSize()===0&&m.getParentOrThrow().getChildren().filter(p=>ts(p)).length>1&&m.remove()}}),!0),m1))},l=[o],e[0]=o,e[1]=i,e[2]=l):(i=e[1],l=e[2]),f1(i,l);let s;return e[3]!==n?(s=n1(es,{enabledCollectionSlugs:n.map(h1)}),e[3]=n,e[4]=s):s=e[4],s};function h1(t){let{slug:e}=t;return e}var C1=y({nodes:[Ve],plugins:[{Component:os,position:"normal"}],slashMenu:{groups:[Z([{Icon:lr,key:"upload",keywords:["upload","image","file","img","picture","photo","media"],label:({i18n:t})=>t.t("lexical:upload:label"),onSelect:({editor:t})=>{t.dispatchCommand(We,{replace:!1})}}])]},toolbarFixed:{groups:[de([{ChildComponent:lr,isActive:({selection:t})=>{if(!g1(t)||!t.getNodes().length)return!1;let e=t.getNodes()[0];return so(e)},key:"upload",label:({i18n:t})=>t.t("lexical:upload:label"),onSelect:({editor:t})=>{t.dispatchCommand(We,{replace:!1})}}])]}});import{c as x1}from"react/compiler-runtime";import{jsx as ur}from"react/jsx-runtime";import{ShimmerEffect as b1}from"@payloadcms/ui";import{lazy as _1,Suspense as T1,useEffect as E1,useState as w1}from"react";var rs={block:"LexicalEditorTheme__block",blockCursor:"LexicalEditorTheme__blockCursor",characterLimit:"LexicalEditorTheme__characterLimit",code:"LexicalEditorTheme__code",codeHighlight:{atrule:"LexicalEditorTheme__tokenAttr",attr:"LexicalEditorTheme__tokenAttr",boolean:"LexicalEditorTheme__tokenProperty",builtin:"LexicalEditorTheme__tokenSelector",cdata:"LexicalEditorTheme__tokenComment",char:"LexicalEditorTheme__tokenSelector",class:"LexicalEditorTheme__tokenFunction","class-name":"LexicalEditorTheme__tokenFunction",comment:"LexicalEditorTheme__tokenComment",constant:"LexicalEditorTheme__tokenProperty",deleted:"LexicalEditorTheme__tokenProperty",doctype:"LexicalEditorTheme__tokenComment",entity:"LexicalEditorTheme__tokenOperator",function:"LexicalEditorTheme__tokenFunction",important:"LexicalEditorTheme__tokenVariable",inserted:"LexicalEditorTheme__tokenSelector",keyword:"LexicalEditorTheme__tokenAttr",namespace:"LexicalEditorTheme__tokenVariable",number:"LexicalEditorTheme__tokenProperty",operator:"LexicalEditorTheme__tokenOperator",prolog:"LexicalEditorTheme__tokenComment",property:"LexicalEditorTheme__tokenProperty",punctuation:"LexicalEditorTheme__tokenPunctuation",regex:"LexicalEditorTheme__tokenVariable",selector:"LexicalEditorTheme__tokenSelector",string:"LexicalEditorTheme__tokenSelector",symbol:"LexicalEditorTheme__tokenProperty",tag:"LexicalEditorTheme__tokenProperty",url:"LexicalEditorTheme__tokenOperator",variable:"LexicalEditorTheme__tokenVariable"},embedBlock:{base:"LexicalEditorTheme__embedBlock",focus:"LexicalEditorTheme__embedBlockFocus"},hashtag:"LexicalEditorTheme__hashtag",heading:{h1:"LexicalEditorTheme__h1",h2:"LexicalEditorTheme__h2",h3:"LexicalEditorTheme__h3",h4:"LexicalEditorTheme__h4",h5:"LexicalEditorTheme__h5",h6:"LexicalEditorTheme__h6"},hr:"LexicalEditorTheme__hr",indent:"LexicalEditorTheme__indent",inlineImage:"LexicalEditor__inline-image",link:"LexicalEditorTheme__link",list:{checklist:"LexicalEditorTheme__checklist",listitem:"LexicalEditorTheme__listItem",listitemChecked:"LexicalEditorTheme__listItemChecked",listitemUnchecked:"LexicalEditorTheme__listItemUnchecked",nested:{listitem:"LexicalEditorTheme__nestedListItem"},olDepth:["LexicalEditorTheme__ol1","LexicalEditorTheme__ol2","LexicalEditorTheme__ol3","LexicalEditorTheme__ol4","LexicalEditorTheme__ol5"],ul:"LexicalEditorTheme__ul"},ltr:"LexicalEditorTheme__ltr",mark:"LexicalEditorTheme__mark",markOverlap:"LexicalEditorTheme__markOverlap",paragraph:"LexicalEditorTheme__paragraph",quote:"LexicalEditorTheme__quote",relationship:"LexicalEditorTheme__relationship",rtl:"LexicalEditorTheme__rtl",table:"LexicalEditorTheme__table",tableAddColumns:"LexicalEditorTheme__tableAddColumns",tableAddRows:"LexicalEditorTheme__tableAddRows",tableCell:"LexicalEditorTheme__tableCell",tableCellActionButton:"LexicalEditorTheme__tableCellActionButton",tableCellActionButtonContainer:"LexicalEditorTheme__tableCellActionButtonContainer",tableCellEditing:"LexicalEditorTheme__tableCellEditing",tableCellHeader:"LexicalEditorTheme__tableCellHeader",tableCellPrimarySelected:"LexicalEditorTheme__tableCellPrimarySelected",tableCellResizer:"LexicalEditorTheme__tableCellResizer",tableCellSelected:"LexicalEditorTheme__tableCellSelected",tableCellSortedIndicator:"LexicalEditorTheme__tableCellSortedIndicator",tableResizeRuler:"LexicalEditorTheme__tableCellResizeRuler",tableRowStriping:"LexicalEditorTheme__tableRowStriping",tableSelected:"LexicalEditorTheme__tableSelected",text:{bold:"LexicalEditorTheme__textBold",code:"LexicalEditorTheme__textCode",italic:"LexicalEditorTheme__textItalic",strikethrough:"LexicalEditorTheme__textStrikethrough",subscript:"LexicalEditorTheme__textSubscript",superscript:"LexicalEditorTheme__textSuperscript",underline:"LexicalEditorTheme__textUnderline",underlineStrikethrough:"LexicalEditorTheme__textUnderlineStrikethrough"},upload:"editor-upload"};var eo={namespace:"lexical",theme:rs};function ns({featureClientSchemaMap:t,field:e,schemaPath:o,unSanitizedEditorConfig:r}){for(let s of r.features)if(!s?.clientFeatureProps?.featureKey||s?.clientFeatureProps?.order===void 0||s?.clientFeatureProps?.order===null)throw new Error("A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.");r.features=r.features.sort((s,a)=>s.clientFeatureProps.order-a.clientFeatureProps.order);let n=new Map;for(let s of r.features)n.set(s.clientFeatureProps.featureKey,s);let i=new Map,l=0;for(let s of r.features){let a=typeof s.feature=="function"?s.feature({featureClientSchemaMap:t,featureProviderMap:n,field:e,resolvedFeatures:i,schemaPath:o,unSanitizedEditorConfig:r}):s.feature;a.key=s.clientFeatureProps.featureKey,a.order=l,i.set(s.clientFeatureProps.featureKey,a),l++}return i}var is=t=>{let e={enabledFeatures:[],markdownTransformers:[],nodes:[],plugins:[],providers:[],slashMenu:{dynamicGroups:[],groups:[]},toolbarFixed:{groups:[]},toolbarInline:{groups:[]}};if(!t?.size)return e;t.forEach(o=>{if(o.providers?.length&&(e.providers=e.providers.concat(o.providers)),o.nodes?.length)for(let r of o.nodes)e.nodes.push(r);if(o.plugins?.length&&o.plugins.forEach((r,n)=>{e.plugins?.push({clientProps:o.sanitizedClientFeatureProps,Component:r.Component,key:o.key+n,position:r.position})}),o.toolbarInline?.groups?.length)for(let r of o.toolbarInline.groups){let n=e.toolbarInline.groups.find(i=>i.key===r.key);n?e.toolbarInline.groups=e.toolbarInline.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.toolbarInline?.groups.push(n)}if(o.toolbarFixed?.groups?.length)for(let r of o.toolbarFixed.groups){let n=e.toolbarFixed.groups.find(i=>i.key===r.key);n?e.toolbarFixed.groups=e.toolbarFixed.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.toolbarFixed?.groups.push(n)}if(o.slashMenu?.groups){o.slashMenu.dynamicGroups?.length&&(e.slashMenu.dynamicGroups=e.slashMenu.dynamicGroups.concat(o.slashMenu.dynamicGroups));for(let r of o.slashMenu.groups){let n=e.slashMenu.groups.find(i=>i.key===r.key);n?e.slashMenu.groups=e.slashMenu.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.slashMenu.groups.push(n)}}if(o.markdownTransformers?.length)for(let r of o.markdownTransformers)typeof r=="function"?e.markdownTransformers.push(r({allNodes:e.nodes,allTransformers:e.markdownTransformers})):e.markdownTransformers.push(r);e.enabledFeatures.push(o.key)}),e.toolbarInline.groups.sort((o,r)=>o.order&&r.order?o.order-r.order:o.order?-1:r.order?1:0),e.toolbarFixed.groups.sort((o,r)=>o.order&&r.order?o.order-r.order:o.order?-1:r.order?1:0);for(let o of e.toolbarInline.groups)o.items.sort((r,n)=>r.order&&n.order?r.order-n.order:r.order?-1:n.order?1:0);for(let o of e.toolbarFixed.groups)o.items.sort((r,n)=>r.order&&n.order?r.order-n.order:r.order?-1:n.order?1:0);return e};function cr(t,e,o){return{admin:o,features:is(t),lexical:e,resolvedFeatureMap:t}}var k1=_1(()=>import("./Field-OHQPCDNR.js").then(t=>({default:t.RichText}))),N1=t=>{let e=x1(14),{admin:o,clientFeatures:r,featureClientSchemaMap:n,field:i,lexicalEditorConfig:l,schemaPath:s}=t,a;e[0]!==o?(a=o===void 0?{}:o,e[0]=o,e[1]=a):a=e[1];let d=a,c=l===void 0?eo:l,[u,m]=w1(null),p,f;e[2]!==u||e[3]!==r||e[4]!==c||e[5]!==n||e[6]!==i||e[7]!==s||e[8]!==d?(p=()=>{if(u)return;let C=[];for(let[D,x]of Object.entries(r))x.clientFeatureProvider&&C.push(x.clientFeatureProvider(x.clientFeatureProps));let w=c||eo,v=ns({featureClientSchemaMap:n,field:i,schemaPath:s??i.name,unSanitizedEditorConfig:{features:C,lexical:w}});m(cr(v,w,d))},f=[c,d,u,r,n,i,s],e[2]=u,e[3]=r,e[4]=c,e[5]=n,e[6]=i,e[7]=s,e[8]=d,e[9]=p,e[10]=f):(p=e[9],f=e[10]),E1(p,f);let h;return e[11]!==u||e[12]!==t?(h=ur(T1,{fallback:ur(b1,{height:"35vh"}),children:u&&ur(k1,{...t,editorConfig:u})}),e[11]=u,e[12]=t,e[13]=h):h=e[13],h};function L1(...t){return t.filter(Boolean).join(" ")}var to=new WeakMap;function ls(t){let e=t.changedTouches[0];return e===void 0?null:[e.clientX,e.clientY]}function oo(t,e){let o=to.get(t);if(o===void 0){let r=new Set,n=l=>{o!==void 0&&(o.start=ls(l))},i=l=>{if(o===void 0)return;let{start:s}=o;if(s===null)return;let a=ls(l);for(let d of r)a!==null&&d([a[0]-s[0],a[1]-s[1]],l)};t.addEventListener("touchstart",n),t.addEventListener("touchend",i),o={handleTouchend:i,handleTouchstart:n,listeners:r,start:null},to.set(t,o)}return o.listeners.add(e),()=>{R1(t,e)}}function R1(t,e){let o=to.get(t);if(o===void 0)return;let{listeners:r}=o;r.delete(e),r.size===0&&(to.delete(t),t.removeEventListener("touchstart",o.handleTouchstart),t.removeEventListener("touchend",o.handleTouchend))}function S1(t,e){return oo(t,(o,r)=>{let[n,i]=o;n<0&&-n>Math.abs(i)&&e(n,r)})}function I1(t,e){return oo(t,(o,r)=>{let[n,i]=o;n>0&&n>Math.abs(i)&&e(n,r)})}function y1(t,e){return oo(t,(o,r)=>{let[n,i]=o;i<0&&-i>Math.abs(n)&&e(n,r)})}function v1(t,e){return oo(t,(o,r)=>{let[n,i]=o;i>0&&i>Math.abs(n)&&e(n,r)})}var O={DOM_ELEMENT_TYPE:1,DOM_TEXT_TYPE:3,NO_DIRTY_NODES:0,HAS_DIRTY_NODES:1,FULL_RECONCILE:2,IS_NORMAL:0,IS_TOKEN:1,IS_SEGMENTED:2,IS_INERT:3,IS_BOLD:1,IS_ITALIC:2,IS_STRIKETHROUGH:4,IS_UNDERLINE:8,IS_CODE:16,IS_SUBSCRIPT:32,IS_SUPERSCRIPT:64,IS_HIGHLIGHT:128,IS_DIRECTIONLESS:1,IS_UNMERGEABLE:2,IS_ALIGN_LEFT:1,IS_ALIGN_CENTER:2,IS_ALIGN_RIGHT:3,IS_ALIGN_JUSTIFY:4,IS_ALIGN_START:5,IS_ALIGN_END:6},M1=O.IS_BOLD|O.IS_ITALIC|O.IS_STRIKETHROUGH|O.IS_UNDERLINE|O.IS_CODE|O.IS_SUBSCRIPT|O.IS_SUPERSCRIPT|O.IS_HIGHLIGHT,D1="\xA0",A1=`
39
+ `);let o=mp(Vt.NO_STATUS);return wl(t,e,o),o},Nl=(t,e)=>{let o=t.match(Ll);return!o||!o[1]?null:o[1].split("|").map(r=>Sl(r,e))};import{c as wp}from"react/compiler-runtime";import{jsx as P,jsxs as Ce}from"react/jsx-runtime";import{useLexicalComposerContext as Ml}from"@lexical/react/LexicalComposerContext";import{useLexicalEditable as kp}from"@lexical/react/useLexicalEditable";import{$deleteTableColumn__EXPERIMENTAL as Np,$deleteTableRow__EXPERIMENTAL as Lp,$getNodeTriplet as Rp,$getTableCellNodeFromLexicalNode as Sp,$getTableColumnIndexFromTableCellNode as Ip,$getTableNodeFromLexicalNodeOrThrow as ut,$getTableRowIndexFromTableCellNode as yp,$insertTableColumn__EXPERIMENTAL as vp,$insertTableRow__EXPERIMENTAL as Mp,$isTableCellNode as Kt,$isTableRowNode as yl,$isTableSelection as Zt,$unmergeCell as Dp,getTableObserverFromTableElement as Ap,TableCellHeaderStates as Ee,TableCellNode as Op}from"@lexical/table";import{useScrollInfo as Fp}from"@payloadcms/ui";import{$createParagraphNode as $p,$getRoot as Pp,$getSelection as Xt,$isElementNode as Bp,$isParagraphNode as Dl,$isRangeSelection as qo,$isTextNode as Hp}from"lexical";import*as Qo from"react";import{useCallback as ae,useEffect as Se,useRef as zt,useState as Pe}from"react";import{createPortal as Al}from"react-dom";import{jsx as Yo,jsxs as Ep}from"react/jsx-runtime";import"react";var Il=()=>Ep("svg",{fill:"none",height:"18",viewBox:"0 0 20 20",width:"18",xmlns:"http://www.w3.org/2000/svg",children:[Yo("path",{d:"M5 11C5.55228 11 6 10.5523 6 10C6 9.44772 5.55228 9 5 9C4.44772 9 4 9.44772 4 10C4 10.5523 4.44772 11 5 11Z",fill:"currentColor"}),Yo("path",{d:"M10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z",fill:"currentColor"}),Yo("path",{d:"M15 11C15.5523 11 16 10.5523 16 10C16 9.44772 15.5523 9 15 9C14.4477 9 14 9.44772 14 10C14 10.5523 14.4477 11 15 11Z",fill:"currentColor"})]});function Jo(t){let e=t.getShape();return{columns:e.toX-e.fromX+1,rows:e.toY-e.fromY+1}}function jp(){let t=Xt();if(qo(t)&&!t.isCollapsed()||Zt(t)&&!t.anchor.is(t.focus)||!qo(t)&&!Zt(t))return!1;let[e]=Rp(t.anchor);return e.__colSpan>1||e.__rowSpan>1}function vl(t){if(t.getChildrenSize()!==1)return!1;let e=t.getFirstChildOrThrow();return!(!Dl(e)||!e.isEmpty())}function Gp(t){let e=t.getLastDescendant();Hp(e)?e.select():Bp(e)?e.selectEnd():e!==null&&e.selectNext()}function Up({cellMerge:t,contextRef:e,onClose:o,setIsMenuOpen:r,tableCellNode:n}){let[i]=Ml(),l=zt(null),[s,a]=Pe(n),[d,c]=Pe({columns:1,rows:1}),[u,m]=Pe(!1),[p,f]=Pe(!1),{y:h}=Fp();Se(()=>i.registerMutationListener(Op,b=>{b.get(s.getKey())==="updated"&&i.getEditorState().read(()=>{a(s.getLatest())})},{skipInitialization:!0}),[i,s]),Se(()=>{i.getEditorState().read(()=>{let b=Xt();if(Zt(b)){let T=Jo(b);c(Jo(b)),m(T.columns>1||T.rows>1)}f(jp())})},[i]),Se(()=>{let b=e.current,T=l.current,I=i.getRootElement();if(b!=null&&T!=null&&I!=null){let L=I.getBoundingClientRect(),A=b.getBoundingClientRect();T.style.opacity="1";let M=T.getBoundingClientRect(),F=5,G=A.right+F;if(G+M.width>window.innerWidth||G+M.width>L.right){let W=A.left-M.width-F;G=(W<0?F:W)+window.pageXOffset}T.style.left=`${G+window.pageXOffset}px`;let $=A.top;if($+M.height>window.innerHeight){let W=A.bottom-M.height;$=(W<0?F:W)+window.pageYOffset}T.style.top=`${$}px`}},[e,l,i,h]),Se(()=>{function b(T){l.current!=null&&e.current!=null&&!l.current.contains(T.target)&&!e.current.contains(T.target)&&r(!1)}return window.addEventListener("click",b),()=>window.removeEventListener("click",b)},[r,e]);let C=ae(()=>{i.update(()=>{if(s.isAttached()){let T=ut(s),I=i.getElementByKey(T.getKey());if(!I)throw new Error("Expected to find tableElement in DOM");let L=Ap(I);L!==null&&L.clearHighlight(),T.markDirty(),a(s.getLatest())}Pp().selectStart()})},[i,s]),w=()=>{i.update(()=>{let b=Xt();if(Zt(b)){let{columns:T,rows:I}=Jo(b),L=b.getNodes(),A=null;for(let M=0;M<L.length;M++){let F=L[M];if(Kt(F))if(A===null){F.setColSpan(T).setRowSpan(I),A=F;let G=vl(F),$;G&&Dl($=F.getFirstChild())&&$.remove()}else Kt(A)&&(vl(F)||A.append(...F.getChildren()),F.remove())}A!==null&&(A.getChildrenSize()===0&&A.append($p()),Gp(A)),o()}})},v=()=>{i.update(()=>{Dp()})},D=ae(b=>{i.update(()=>{Mp(b),o()})},[i,o]),x=ae(b=>{i.update(()=>{for(let T=0;T<d.columns;T++)vp(b);o()})},[i,o,d.columns]),E=ae(()=>{i.update(()=>{Lp(),o()})},[i,o]),g=ae(()=>{i.update(()=>{ut(s).remove(),C(),o()})},[i,s,C,o]),_=ae(()=>{i.update(()=>{Np(),o()})},[i,o]),N=ae(()=>{i.update(()=>{let b=ut(s),T=yp(s),I=b.getChildren();if(T>=I.length||T<0)throw new Error("Expected table cell to be inside of table row.");let L=I[T];if(!yl(L))throw new Error("Expected table row");let A=s.getHeaderStyles()^Ee.ROW;L.getChildren().forEach(M=>{if(!Kt(M))throw new Error("Expected table cell");M.setHeaderStyles(A,Ee.ROW)}),C(),o()})},[i,s,C,o]),k=ae(()=>{i.update(()=>{let b=ut(s),T=Ip(s),I=b.getChildren(),L=Math.max(...I.map(M=>M.getChildren().length));if(T>=L||T<0)throw new Error("Expected table cell to be inside of table row.");let A=s.getHeaderStyles()^Ee.COLUMN;for(let M=0;M<I.length;M++){let F=I[M];if(!yl(F))throw new Error("Expected table row");let G=F.getChildren();if(T>=G.length)continue;let $=G[T];if(!Kt($))throw new Error("Expected table cell");$.setHeaderStyles(A,Ee.COLUMN)}C(),o()})},[i,s,C,o]),R=ae(()=>{i.update(()=>{if(s.isAttached()){let b=ut(s);b&&b.setRowStriping(!b.getRowStriping())}C(),o()})},[i,s,C,o]),S=null;return t&&(u?S=P("button",{className:"item","data-test-id":"table-merge-cells",onClick:()=>w(),type:"button",children:"Merge cells"}):p&&(S=P("button",{className:"item","data-test-id":"table-unmerge-cells",onClick:()=>v(),type:"button",children:"Unmerge cells"}))),Al(Ce("div",{className:"table-action-menu-dropdown",onClick:b=>{b.stopPropagation()},ref:l,children:[S?Ce(Qo.Fragment,{children:[S,P("hr",{})]}):null,P("button",{className:"item","data-test-id":"table-row-striping",onClick:()=>R(),type:"button",children:P("span",{className:"text",children:"Toggle Row Striping"})}),P("button",{className:"item","data-test-id":"table-insert-row-above",onClick:()=>D(!1),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.rows===1?"row":`${d.rows} rows`," above"]})}),P("button",{className:"item","data-test-id":"table-insert-row-below",onClick:()=>D(!0),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.rows===1?"row":`${d.rows} rows`," below"]})}),P("hr",{}),P("button",{className:"item","data-test-id":"table-insert-column-before",onClick:()=>x(!1),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.columns===1?"column":`${d.columns} columns`," ","left"]})}),P("button",{className:"item","data-test-id":"table-insert-column-after",onClick:()=>x(!0),type:"button",children:Ce("span",{className:"text",children:["Insert ",d.columns===1?"column":`${d.columns} columns`," ","right"]})}),P("hr",{}),P("button",{className:"item","data-test-id":"table-delete-columns",onClick:()=>_(),type:"button",children:P("span",{className:"text",children:"Delete column"})}),P("button",{className:"item","data-test-id":"table-delete-rows",onClick:()=>E(),type:"button",children:P("span",{className:"text",children:"Delete row"})}),P("button",{className:"item","data-test-id":"table-delete",onClick:()=>g(),type:"button",children:P("span",{className:"text",children:"Delete table"})}),P("hr",{}),P("button",{className:"item",onClick:()=>N(),type:"button",children:Ce("span",{className:"text",children:[(s.__headerState&Ee.ROW)===Ee.ROW?"Remove":"Add"," ","row header"]})}),P("button",{className:"item","data-test-id":"table-column-header",onClick:()=>k(),type:"button",children:Ce("span",{className:"text",children:[(s.__headerState&Ee.COLUMN)===Ee.COLUMN?"Remove":"Add"," ","column header"]})})]}),document.body)}function Wp({anchorElem:t,cellMerge:e}){let[o]=Ml(),r=zt(null),n=zt(null),[i,l]=Pe(!1),[s,a]=Pe(null),d=ae(()=>{let u=r.current,m=Xt(),p=window.getSelection(),f=document.activeElement;if(m==null||u==null){a(null);return}let h=o.getRootElement();if(qo(m)&&h!==null&&p!==null&&h.contains(p.anchorNode)){let C=Sp(m.anchor.getNode());if(C==null){a(null);return}if(o.getElementByKey(C.getKey())==null){a(null);return}a(C)}else f||a(null)},[o]);Se(()=>o.registerUpdateListener(()=>{o.getEditorState().read(()=>{d()})})),Se(()=>{let u=r.current;if(u!=null&&s!=null){let m=o.getElementByKey(s.getKey());if(m!=null){let p=m.getBoundingClientRect(),f=u.getBoundingClientRect(),h=t.getBoundingClientRect(),C=p.top-h.top+4,w=p.right-f.width-10-h.left;u.style.opacity="1",u.style.transform=`translate(${w}px, ${C}px)`}else u.style.opacity="0",u.style.transform="translate(-10000px, -10000px)"}},[r,s,o,t]);let c=zt(s);return Se(()=>{c.current!==s&&l(!1),c.current=s},[c,s]),P("div",{className:"table-cell-action-button-container",ref:r,children:s!=null&&Ce(Qo.Fragment,{children:[P("button",{className:"table-cell-action-button",onClick:u=>{u.stopPropagation(),l(!i)},ref:n,type:"button",children:P(Il,{})}),i&&P(Up,{cellMerge:e,contextRef:n,onClose:()=>l(!1),setIsMenuOpen:l,tableCellNode:s})]})})}var Ol=t=>{let e=wp(3),{anchorElem:o}=t,r=kp(),n;return e[0]!==r||e[1]!==o?(n=Al(r?P(Wp,{anchorElem:o??document.body,cellMerge:!0}):null,o??document.body),e[0]=r,e[1]=o,e[2]=n):n=e[2],n};import{c as Vp}from"react/compiler-runtime";import{jsx as Jt,jsxs as Kp}from"react/jsx-runtime";import{useLexicalComposerContext as zp}from"@lexical/react/LexicalComposerContext";import{useLexicalEditable as Zp}from"@lexical/react/useLexicalEditable";import{$computeTableMapSkipCellCheck as Xp,$getTableNodeFromLexicalNodeOrThrow as er,$getTableRowIndexFromTableCellNode as Yp,$isTableCellNode as Fl,$isTableRowNode as Jp,getDOMCellFromTarget as qp,TableNode as Qp}from"@lexical/table";import{calculateZoomLevel as $l}from"@lexical/utils";import{$getNearestNodeFromDOMNode as tr}from"lexical";import*as Bl from"react";import{useCallback as dt,useEffect as or,useRef as Yt,useState as mt}from"react";import{createPortal as ef}from"react-dom";var tf=33,Pl=92;function of({editor:t}){let e=Yt(null),o=Yt(null),r=Yt(null),n=B(),i=Yt(null),[l,s]=mt(null),[a,d]=mt(null),[c,u]=mt(!1),[m,p]=mt(null),f=dt(()=>{d(null),e.current=null,p(null),i.current=null,r.current=null},[]),h=k=>(k.buttons&1)===1;or(()=>t.registerNodeTransform(Qp,k=>{if(k.getColWidths())return k;let R=k.getColumnCount(),S=Pl;return k.setColWidths(Array(R).fill(S)),k}),[t]),or(()=>{let k=T=>{setTimeout(()=>{let I=T.target;if(m){s({x:T.clientX,y:T.clientY});return}if(u(h(T)),!(o.current&&o.current.contains(I))&&e.current!==I){e.current=I;let L=qp(I);L&&a!==L?t.update(()=>{let A=tr(L.elem);if(!A)throw new Error("TableCellResizer: Table cell node not found.");let M=er(A),F=t.getElementByKey(M.getKey());if(!F)throw new Error("TableCellResizer: Table element not found.");e.current=I,r.current=F.getBoundingClientRect(),d(L)}):L==null&&f()}},0)},R=T=>{setTimeout(()=>{u(!0)},0)},S=T=>{setTimeout(()=>{u(!1)},0)},b=t.registerRootListener((T,I)=>{I?.removeEventListener("mousemove",k),I?.removeEventListener("mousedown",R),I?.removeEventListener("mouseup",S),T?.addEventListener("mousemove",k),T?.addEventListener("mousedown",R),T?.addEventListener("mouseup",S)});return()=>{b()}},[a,m,t,f]);let C=k=>k==="bottom",w=dt(k=>{if(!a)throw new Error("TableCellResizer: Expected active cell.");t.update(()=>{let R=tr(a.elem);if(!Fl(R))throw new Error("TableCellResizer: Table cell node not found.");let S=er(R),b=Yp(R)+R.getRowSpan()-1,T=S.getChildren();if(b>=T.length||b<0)throw new Error("Expected table cell to be inside of table row.");let I=T[b];if(!Jp(I))throw new Error("Expected table row");let L=I.getHeight();if(L===void 0){let M=I.getChildren();L=Math.min(...M.map(F=>v(F,t)??1/0))}let A=Math.max(L+k,tf);I.setHeight(A)},{tag:"skip-scroll-into-view"})},[a,t]),v=(k,R)=>R.getElementByKey(k.getKey())?.clientHeight,D=(k,R)=>{for(let S=0;S<R.length;S++)for(let b=0;b<R[S].length;b++)if(R[S][b].cell===k)return b},x=dt(k=>{if(!a)throw new Error("TableCellResizer: Expected active cell.");t.update(()=>{let R=tr(a.elem);if(!Fl(R))throw new Error("TableCellResizer: Table cell node not found.");let S=er(R),[b]=Xp(S,null,null),T=D(R,b);if(T===void 0)throw new Error("TableCellResizer: Table column not found.");let I=S.getColWidths();if(!I)return;let L=I[T];if(L===void 0)return;let A=[...I],M=Math.max(L+k,Pl);A[T]=M,S.setColWidths(A)},{tag:"skip-scroll-into-view"})},[a,t]),E=dt(k=>{let R=S=>{if(S.preventDefault(),S.stopPropagation(),!a)throw new Error("TableCellResizer: Expected active cell.");if(i.current){let{x:b,y:T}=i.current;if(a===null)return;let I=$l(S.target);if(C(k)){let L=(S.clientY-T)/I;w(L)}else{let L=(S.clientX-b)/I;x(L)}f(),document.removeEventListener("mouseup",R)}};return R},[a,f,x,w]),g=dt(k=>R=>{if(R.preventDefault(),R.stopPropagation(),!a)throw new Error("TableCellResizer: Expected active cell.");i.current={x:R.clientX,y:R.clientY},s(i.current),p(k),document.addEventListener("mouseup",E(k))},[a,E]),[_,N]=mt({bottom:null,left:null,right:null,top:null});return or(()=>{if(a){let{height:k,left:R,top:S,width:b}=a.elem.getBoundingClientRect(),T=$l(a.elem),I=10,L={bottom:{backgroundColor:"none",cursor:"row-resize",height:`${I}px`,left:`${window.scrollX+R}px`,top:`${window.scrollY+S+k-I/2}px`,width:`${b}px`},right:{backgroundColor:"none",cursor:"col-resize",height:`${k}px`,left:`${window.scrollX+R+b-I/2}px`,top:`${window.scrollY+S}px`,width:`${I}px`}},A=r.current;m&&l&&A&&(C(m)?(L[m].left=`${window.scrollX+A.left}px`,L[m].top=`${window.scrollY+l.y/T}px`,L[m].height="3px",L[m].width=`${A.width}px`):(L[m].top=`${window.scrollY+A.top}px`,L[m].left=`${window.scrollX+l.x/T}px`,L[m].width="3px",L[m].height=`${A.height}px`),L[m].backgroundColor="#adf"),N(L)}else N({bottom:null,left:null,right:null,top:null})},[a,m,l]),Jt("div",{ref:o,children:a!=null&&!c&&Kp(Bl.Fragment,{children:[Jt("div",{className:`${n.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`,onMouseDown:g("right"),style:_.right||void 0}),Jt("div",{className:`${n.editorConfig.lexical.theme.tableCellResizer} TableCellResizer__ui`,onMouseDown:g("bottom"),style:_.bottom||void 0})]})})}var Hl=()=>{let t=Vp(3),[e]=zp(),o=Zp(),r,n;return t[0]!==o||t[1]!==e?(n=o?ef(Jt(of,{editor:e}),document.body):null,t[0]=o,t[1]=e,t[2]=n):n=t[2],r=n,r};import{c as df}from"react/compiler-runtime";import{jsx as rr,jsxs as mf,Fragment as pf}from"react/jsx-runtime";import{useLexicalComposerContext as Zl}from"@lexical/react/LexicalComposerContext";import{$getTableColumnIndexFromTableCellNode as ff,$getTableRowIndexFromTableCellNode as hf,$insertTableColumn__EXPERIMENTAL as gf,$insertTableRow__EXPERIMENTAL as Cf,$isTableCellNode as xf,$isTableNode as Ul,TableNode as bf}from"@lexical/table";import{$findMatchingParent as _f,mergeRegister as Tf}from"@lexical/utils";import{$getNearestNodeFromDOMNode as Wl}from"lexical";import{useEffect as Vl,useMemo as Ef,useRef as Kl,useState as qt}from"react";import"react";import{createPortal as wf}from"react-dom";import{c as af}from"react/compiler-runtime";import{useEffect as cf,useRef as uf}from"react";var rf="Expected a function",nf=Math.max,lf=Math.min;function sf(t,e,o){let r,n,i=0,l,s=!1,a=!1,d,c,u,m=!0;if(typeof t!="function")throw new TypeError(rf);e=e||0,typeof o=="object"&&(s=!!o.leading,a="maxWait"in o,d=a?nf(o.maxWait||0,e):d,m="trailing"in o?!!o.trailing:m);function p(g){let _=r,N=l;return r=l=void 0,i=g,c=t.apply(N,_),c}function f(g){return i=g,u=setTimeout(w,e),s?p(g):c}function h(g){let _=g-n,N=g-i,k=e-_;return a?lf(k,d-N):k}function C(g){let _=g-n,N=g-i;return n===void 0||_>=e||_<0||a&&N>=d}function w(){let g=Date.now();if(C(g))return v(g);u=setTimeout(w,h(g))}function v(g){return u=void 0,m&&r?p(g):(r=l=void 0,c)}function D(){u!==void 0&&clearTimeout(u),i=0,r=n=l=u=void 0}function x(){return u===void 0?c:v(Date.now())}function E(){let g=Date.now(),_=C(g);if(r=arguments,l=this,n=g,_){if(u===void 0)return f(n);if(a)return clearTimeout(u),u=setTimeout(w,e),p(n)}return u===void 0&&(u=setTimeout(w,e)),c}return E.cancel=D,E.flush=x,E}var jl=sf;function Gl(t,e,o){let r=af(6),n=uf(null),i,l;r[0]!==t||r[1]!==e||r[2]!==o?(i=()=>(n.current=jl(t,e,{maxWait:o}),()=>{n.current?.cancel()}),l=[t,e,o],r[0]=t,r[1]=e,r[2]=o,r[3]=i,r[4]=l):(i=r[3],l=r[4]),cf(i,l);let s;return r[5]===Symbol.for("react.memo_cache_sentinel")?(s=(...d)=>{let c=d;n.current&&n.current(...c)},r[5]=s):s=r[5],s}var zl=20;function kf({anchorElem:t}){let[e]=Zl(),o=B(),[r,n]=qt(!1),[i,l]=qt(!1),[s,a]=qt(!1),[d,c]=qt({}),u=Kl(new Set),m=Kl(null),p=Gl(C=>{let{isOutside:w,tableDOMNode:v}=Nf(C,o.editorConfig?.lexical);if(w){n(!1),l(!1);return}if(!v)return;m.current=v;let D=null,x=null,E=null;if(e.update(()=>{let g=Wl(v);if(xf(g)){let _=_f(g,N=>Ul(N));if(!Ul(_))return;if(E=e.getElementByKey(_?.getKey()),E){let N=_.getChildrenSize(),k=_.getChildAtIndex(0)?.getChildrenSize(),R=hf(g),S=ff(g);R===N-1?D=g:S===k-1&&(x=g)}}}),E){let{bottom:g,height:_,left:N,right:k,width:R,y:S}=E.getBoundingClientRect(),{left:b,y:T}=t.getBoundingClientRect();D?(l(!1),n(!0),c({height:zl,left:N-b,top:g-T+5,width:R})):x&&(l(!0),n(!1),c({height:_,left:k-b+5,top:S-T,width:zl}))}},50,250),f=Ef(()=>new ResizeObserver(()=>{n(!1),l(!1)}),[]);Vl(()=>{if(s)return document.addEventListener("mousemove",p),()=>{n(!1),l(!1),document.removeEventListener("mousemove",p)}},[s,p]),Vl(()=>Tf(e.registerMutationListener(bf,C=>{e.getEditorState().read(()=>{for(let[w,v]of C){let D=e.getElementByKey(w);switch(v){case"created":u.current.add(w),a(u.current.size>0),D&&f.observe(D);break;case"destroyed":u.current.delete(w),a(u.current.size>0),f.disconnect(),u.current.forEach(x=>{let E=e.getElementByKey(x);E&&f.observe(E)});break;default:break}}})},{skipInitialization:!1})),[e,f]);let h=C=>{e.update(()=>{m.current&&(Wl(m.current)?.selectEnd(),C?(Cf(),n(!1)):(gf(),l(!1)))})};return e?.isEditable()?mf(pf,{children:[r&&rr("button",{className:o.editorConfig.lexical.theme.tableAddRows,onClick:()=>h(!0),style:{...d},type:"button"}),i&&rr("button",{className:o.editorConfig.lexical.theme.tableAddColumns,onClick:()=>h(!1),style:{...d},type:"button"})]}):null}function Nf(t,e){let o=t.target;if(o&&o instanceof HTMLElement){let r=o.closest(`td.${e.theme.tableCell}, th.${e.theme.tableCell}`);return{isOutside:!(r||o.closest(`button.${e.theme.tableAddRows}`)||o.closest(`button.${e.theme.tableAddColumns}`)||o.closest(`div.${e.theme.tableCellResizer}`)),tableDOMNode:r}}else return{isOutside:!0,tableDOMNode:null}}function Xl(t){let e=df(2),{anchorElem:o}=t,r=o===void 0?document.body:o,[n]=Zl();if(!n?.isEditable())return null;let i;return e[0]!==r?(i=wf(rr(kf,{anchorElem:r}),r),e[0]=r,e[1]=i):i=e[1],i}import{c as Lf}from"react/compiler-runtime";import{jsx as nr,jsxs as Rf}from"react/jsx-runtime";import{useLexicalComposerContext as Sf}from"@lexical/react/LexicalComposerContext";import{TablePlugin as If}from"@lexical/react/LexicalTablePlugin";import{INSERT_TABLE_COMMAND as yf,TableNode as vf}from"@lexical/table";import{mergeRegister as Mf}from"@lexical/utils";import{formatDrawerSlug as Df,useEditDepth as Af}from"@payloadcms/ui";import{$getSelection as Of,$isRangeSelection as Ff,COMMAND_PRIORITY_EDITOR as $f,createCommand as Pf}from"lexical";import{createContext as Bf,useContext as Hf,useEffect as jf,useMemo as Gf,useState as Uf}from"react";import*as Yl from"react";var Qt=Pf("OPEN_EMBED_DRAWER_COMMAND"),Jl=Bf({cellEditorConfig:null,cellEditorPlugins:null,set:()=>{}});function ql({children:t}){let[e,o]=Uf({cellEditorConfig:null,cellEditorPlugins:null});return nr(Jl.Provider,{value:Gf(()=>({cellEditorConfig:e.cellEditorConfig,cellEditorPlugins:e.cellEditorPlugins,set:(r,n)=>{o({cellEditorConfig:r,cellEditorPlugins:n})}}),[e.cellEditorConfig,e.cellEditorPlugins]),children:t})}var Ql=()=>{let t=Lf(16),[e]=Sf(),o=Hf(Jl),r=Af(),{fieldProps:n,uuid:i}=B(),{schemaPath:l}=n,s="lexical-table-create-"+i,a;t[0]!==s||t[1]!==r?(a=Df({slug:s,depth:r}),t[0]=s,t[1]=r,t[2]=a):a=t[2];let d=a,{toggleDrawer:c}=ce(d,!0),u;t[3]!==e||t[4]!==c?(u=()=>{if(!e.hasNodes([vf]))throw new Error("TablePlugin: TableNode is not registered on editor");return Mf(e.registerCommand(Qt,()=>{let h;return h=null,e.getEditorState().read(()=>{let C=Of();Ff(C)&&(h=C)}),h&&c(),!0},$f))},t[3]=e,t[4]=c,t[5]=u):u=t[5];let m;t[6]!==o||t[7]!==e||t[8]!==c?(m=[o,e,c],t[6]=o,t[7]=e,t[8]=c,t[9]=m):m=t[9],jf(u,m);let p;t[10]!==e?(p=(h,C)=>{!C.columns||!C.rows||e.dispatchCommand(yf,{columns:String(C.columns),rows:String(C.rows)})},t[10]=e,t[11]=p):p=t[11];let f;return t[12]!==d||t[13]!==p||t[14]!==l?(f=Rf(Yl.Fragment,{children:[nr(He,{drawerSlug:d,drawerTitle:"Create Table",featureKey:"experimental_table",handleDrawerSubmit:p,schemaPath:l,schemaPathSuffix:"fields"}),nr(If,{hasCellBackgroundColor:!1,hasCellMerge:!0})]}),t[12]=d,t[13]=p,t[14]=l,t[15]=f):f=t[15],f};var zf=y({markdownTransformers:[Rl],nodes:[Vf,Wf,Kf],plugins:[{Component:Ql,position:"normal"},{Component:Hl,position:"normal"},{Component:Ol,position:"floatingAnchorElem"},{Component:Xl,position:"floatingAnchorElem"}],providers:[ql],slashMenu:{groups:[Z([{Icon:zo,key:"table",keywords:["table"],label:"Table",onSelect:({editor:t})=>{t.dispatchCommand(Qt,{})}}])]},toolbarFixed:{groups:[de([{ChildComponent:zo,key:"table",label:"Table",onSelect:({editor:t})=>{t.dispatchCommand(Qt,{})}}])]}});import{$isNodeSelection as g1}from"lexical";import{jsx as ir,jsxs as Zf}from"react/jsx-runtime";import"react";var lr=()=>Zf("svg",{"aria-hidden":"true",className:"icon",fill:"none",focusable:"false",height:"20",viewBox:"0 0 20 20",width:"20",xmlns:"http://www.w3.org/2000/svg",children:[ir("path",{d:"M14.6667 4H5.33333C4.59695 4 4 4.59695 4 5.33333V14.6667C4 15.403 4.59695 16 5.33333 16H14.6667C15.403 16 16 15.403 16 14.6667V5.33333C16 4.59695 15.403 4 14.6667 4Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),ir("path",{d:"M7.99984 9.33366C8.73622 9.33366 9.33317 8.73671 9.33317 8.00033C9.33317 7.26395 8.73622 6.66699 7.99984 6.66699C7.26346 6.66699 6.6665 7.26395 6.6665 8.00033C6.6665 8.73671 7.26346 9.33366 7.99984 9.33366Z",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"}),ir("path",{d:"M16 11.9995L13.9427 9.94214C13.6926 9.69218 13.3536 9.55176 13 9.55176C12.6464 9.55176 12.3074 9.69218 12.0573 9.94214L6 15.9995",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"})]});import{c as r1}from"react/compiler-runtime";import{jsx as n1}from"react/jsx-runtime";import{useLexicalComposerContext as i1}from"@lexical/react/LexicalComposerContext.js";import{$insertNodeToNearestRoot as l1,mergeRegister as s1}from"@lexical/utils";import{useConfig as a1}from"@payloadcms/ui";import{$getPreviousSelection as c1,$getSelection as u1,$isParagraphNode as ts,$isRangeSelection as d1,COMMAND_PRIORITY_EDITOR as m1,createCommand as p1}from"lexical";import{useEffect as f1}from"react";import{c as Xf}from"react/compiler-runtime";import{jsx as sr}from"react/jsx-runtime";import{useLexicalComposerContext as Yf}from"@lexical/react/LexicalComposerContext.js";import{$getNodeByKey as Jf,COMMAND_PRIORITY_EDITOR as qf}from"lexical";import{useEffect as Qf,useState as e1}from"react";var t1=({editor:t,relationTo:e,replaceNodeKey:o,value:r})=>{o?t.update(()=>{let n=Jf(o);n&&n.replace(Ke({data:{fields:null,relationTo:e,value:r}}))}):t.dispatchCommand(ar,{fields:null,relationTo:e,value:r})},o1=t=>{let e=Xf(13),{enabledCollectionSlugs:o}=t,[r]=Yf(),[n,i]=e1(null),l;e[0]!==o?(l={collectionSlugs:o,uploads:!0},e[0]=o,e[1]=l):l=e[1];let{closeListDrawer:s,ListDrawer:a,openListDrawer:d}=lt(l),c,u;e[2]!==r||e[3]!==d?(c=()=>r.registerCommand(We,h=>(i(h?.replace?h?.replace.nodeKey:null),d(),!0),qf),u=[r,d],e[2]=r,e[3]=d,e[4]=c,e[5]=u):(c=e[4],u=e[5]),Qf(c,u);let m;e[6]!==s||e[7]!==r||e[8]!==n?(m=h=>{let{collectionSlug:C,docID:w}=h;s(),t1({editor:r,relationTo:C,replaceNodeKey:n,value:w})},e[6]=s,e[7]=r,e[8]=n,e[9]=m):m=e[9];let p=m,f;return e[10]!==p||e[11]!==a?(f=sr(a,{onSelect:p}),e[10]=p,e[11]=a,e[12]=f):f=e[12],f},es=t=>sr(bt,{...t,uploads:!0,children:sr(o1,{...t})});var ar=p1("INSERT_UPLOAD_COMMAND"),os=t=>{let e=r1(5),[o]=i1(),{config:r}=a1(),{collections:n}=r,i,l;e[0]!==o?(i=()=>{if(!o.hasNodes([Ve]))throw new Error("UploadPlugin: UploadNode not registered on editor");return s1(o.registerCommand(ar,a=>(o.update(()=>{let d=u1()||c1();if(d1(d)){let c=Ke({data:{id:a.id,fields:a.fields,relationTo:a.relationTo,value:a.value}});l1(c);let{focus:u}=d,m=u.getNode();ts(m)&&m.getTextContentSize()===0&&m.getParentOrThrow().getChildren().filter(p=>ts(p)).length>1&&m.remove()}}),!0),m1))},l=[o],e[0]=o,e[1]=i,e[2]=l):(i=e[1],l=e[2]),f1(i,l);let s;return e[3]!==n?(s=n1(es,{enabledCollectionSlugs:n.map(h1)}),e[3]=n,e[4]=s):s=e[4],s};function h1(t){let{slug:e}=t;return e}var C1=y({nodes:[Ve],plugins:[{Component:os,position:"normal"}],slashMenu:{groups:[Z([{Icon:lr,key:"upload",keywords:["upload","image","file","img","picture","photo","media"],label:({i18n:t})=>t.t("lexical:upload:label"),onSelect:({editor:t})=>{t.dispatchCommand(We,{replace:!1})}}])]},toolbarFixed:{groups:[de([{ChildComponent:lr,isActive:({selection:t})=>{if(!g1(t)||!t.getNodes().length)return!1;let e=t.getNodes()[0];return so(e)},key:"upload",label:({i18n:t})=>t.t("lexical:upload:label"),onSelect:({editor:t})=>{t.dispatchCommand(We,{replace:!1})}}])]}});import{c as x1}from"react/compiler-runtime";import{jsx as ur}from"react/jsx-runtime";import{ShimmerEffect as b1}from"@payloadcms/ui";import{lazy as _1,Suspense as T1,useEffect as E1,useState as w1}from"react";var rs={block:"LexicalEditorTheme__block",blockCursor:"LexicalEditorTheme__blockCursor",characterLimit:"LexicalEditorTheme__characterLimit",code:"LexicalEditorTheme__code",codeHighlight:{atrule:"LexicalEditorTheme__tokenAttr",attr:"LexicalEditorTheme__tokenAttr",boolean:"LexicalEditorTheme__tokenProperty",builtin:"LexicalEditorTheme__tokenSelector",cdata:"LexicalEditorTheme__tokenComment",char:"LexicalEditorTheme__tokenSelector",class:"LexicalEditorTheme__tokenFunction","class-name":"LexicalEditorTheme__tokenFunction",comment:"LexicalEditorTheme__tokenComment",constant:"LexicalEditorTheme__tokenProperty",deleted:"LexicalEditorTheme__tokenProperty",doctype:"LexicalEditorTheme__tokenComment",entity:"LexicalEditorTheme__tokenOperator",function:"LexicalEditorTheme__tokenFunction",important:"LexicalEditorTheme__tokenVariable",inserted:"LexicalEditorTheme__tokenSelector",keyword:"LexicalEditorTheme__tokenAttr",namespace:"LexicalEditorTheme__tokenVariable",number:"LexicalEditorTheme__tokenProperty",operator:"LexicalEditorTheme__tokenOperator",prolog:"LexicalEditorTheme__tokenComment",property:"LexicalEditorTheme__tokenProperty",punctuation:"LexicalEditorTheme__tokenPunctuation",regex:"LexicalEditorTheme__tokenVariable",selector:"LexicalEditorTheme__tokenSelector",string:"LexicalEditorTheme__tokenSelector",symbol:"LexicalEditorTheme__tokenProperty",tag:"LexicalEditorTheme__tokenProperty",url:"LexicalEditorTheme__tokenOperator",variable:"LexicalEditorTheme__tokenVariable"},embedBlock:{base:"LexicalEditorTheme__embedBlock",focus:"LexicalEditorTheme__embedBlockFocus"},hashtag:"LexicalEditorTheme__hashtag",heading:{h1:"LexicalEditorTheme__h1",h2:"LexicalEditorTheme__h2",h3:"LexicalEditorTheme__h3",h4:"LexicalEditorTheme__h4",h5:"LexicalEditorTheme__h5",h6:"LexicalEditorTheme__h6"},hr:"LexicalEditorTheme__hr",indent:"LexicalEditorTheme__indent",inlineImage:"LexicalEditor__inline-image",link:"LexicalEditorTheme__link",list:{checklist:"LexicalEditorTheme__checklist",listitem:"LexicalEditorTheme__listItem",listitemChecked:"LexicalEditorTheme__listItemChecked",listitemUnchecked:"LexicalEditorTheme__listItemUnchecked",nested:{listitem:"LexicalEditorTheme__nestedListItem"},olDepth:["LexicalEditorTheme__ol1","LexicalEditorTheme__ol2","LexicalEditorTheme__ol3","LexicalEditorTheme__ol4","LexicalEditorTheme__ol5"],ul:"LexicalEditorTheme__ul"},ltr:"LexicalEditorTheme__ltr",mark:"LexicalEditorTheme__mark",markOverlap:"LexicalEditorTheme__markOverlap",paragraph:"LexicalEditorTheme__paragraph",quote:"LexicalEditorTheme__quote",relationship:"LexicalEditorTheme__relationship",rtl:"LexicalEditorTheme__rtl",table:"LexicalEditorTheme__table",tableAddColumns:"LexicalEditorTheme__tableAddColumns",tableAddRows:"LexicalEditorTheme__tableAddRows",tableCell:"LexicalEditorTheme__tableCell",tableCellActionButton:"LexicalEditorTheme__tableCellActionButton",tableCellActionButtonContainer:"LexicalEditorTheme__tableCellActionButtonContainer",tableCellEditing:"LexicalEditorTheme__tableCellEditing",tableCellHeader:"LexicalEditorTheme__tableCellHeader",tableCellPrimarySelected:"LexicalEditorTheme__tableCellPrimarySelected",tableCellResizer:"LexicalEditorTheme__tableCellResizer",tableCellSelected:"LexicalEditorTheme__tableCellSelected",tableCellSortedIndicator:"LexicalEditorTheme__tableCellSortedIndicator",tableResizeRuler:"LexicalEditorTheme__tableCellResizeRuler",tableRowStriping:"LexicalEditorTheme__tableRowStriping",tableSelected:"LexicalEditorTheme__tableSelected",text:{bold:"LexicalEditorTheme__textBold",code:"LexicalEditorTheme__textCode",italic:"LexicalEditorTheme__textItalic",strikethrough:"LexicalEditorTheme__textStrikethrough",subscript:"LexicalEditorTheme__textSubscript",superscript:"LexicalEditorTheme__textSuperscript",underline:"LexicalEditorTheme__textUnderline",underlineStrikethrough:"LexicalEditorTheme__textUnderlineStrikethrough"},upload:"editor-upload"};var eo={namespace:"lexical",theme:rs};function ns({featureClientSchemaMap:t,field:e,schemaPath:o,unSanitizedEditorConfig:r}){for(let s of r.features)if(!s?.clientFeatureProps?.featureKey||s?.clientFeatureProps?.order===void 0||s?.clientFeatureProps?.order===null)throw new Error("A Feature you have installed does not return the client props as clientFeatureProps. Please make sure to always return those props, even if they are null, as other important props like order and featureKey are later on injected.");r.features=r.features.sort((s,a)=>s.clientFeatureProps.order-a.clientFeatureProps.order);let n=new Map;for(let s of r.features)n.set(s.clientFeatureProps.featureKey,s);let i=new Map,l=0;for(let s of r.features){let a=typeof s.feature=="function"?s.feature({featureClientSchemaMap:t,featureProviderMap:n,field:e,resolvedFeatures:i,schemaPath:o,unSanitizedEditorConfig:r}):s.feature;a.key=s.clientFeatureProps.featureKey,a.order=l,i.set(s.clientFeatureProps.featureKey,a),l++}return i}var is=t=>{let e={enabledFeatures:[],markdownTransformers:[],nodes:[],plugins:[],providers:[],slashMenu:{dynamicGroups:[],groups:[]},toolbarFixed:{groups:[]},toolbarInline:{groups:[]}};if(!t?.size)return e;t.forEach(o=>{if(o.providers?.length&&(e.providers=e.providers.concat(o.providers)),o.nodes?.length)for(let r of o.nodes)e.nodes.push(r);if(o.plugins?.length&&o.plugins.forEach((r,n)=>{e.plugins?.push({clientProps:o.sanitizedClientFeatureProps,Component:r.Component,key:o.key+n,position:r.position})}),o.toolbarInline?.groups?.length)for(let r of o.toolbarInline.groups){let n=e.toolbarInline.groups.find(i=>i.key===r.key);n?e.toolbarInline.groups=e.toolbarInline.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.toolbarInline?.groups.push(n)}if(o.toolbarFixed?.groups?.length)for(let r of o.toolbarFixed.groups){let n=e.toolbarFixed.groups.find(i=>i.key===r.key);n?e.toolbarFixed.groups=e.toolbarFixed.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.toolbarFixed?.groups.push(n)}if(o.slashMenu?.groups){o.slashMenu.dynamicGroups?.length&&(e.slashMenu.dynamicGroups=e.slashMenu.dynamicGroups.concat(o.slashMenu.dynamicGroups));for(let r of o.slashMenu.groups){let n=e.slashMenu.groups.find(i=>i.key===r.key);n?e.slashMenu.groups=e.slashMenu.groups.filter(i=>i.key!==r.key):n={...r,items:[]},r?.items?.length&&(n.items=n.items.concat(r.items)),e.slashMenu.groups.push(n)}}if(o.markdownTransformers?.length)for(let r of o.markdownTransformers)typeof r=="function"?e.markdownTransformers.push(r({allNodes:e.nodes,allTransformers:e.markdownTransformers})):e.markdownTransformers.push(r);e.enabledFeatures.push(o.key)}),e.toolbarInline.groups.sort((o,r)=>o.order&&r.order?o.order-r.order:o.order?-1:r.order?1:0),e.toolbarFixed.groups.sort((o,r)=>o.order&&r.order?o.order-r.order:o.order?-1:r.order?1:0);for(let o of e.toolbarInline.groups)o.items.sort((r,n)=>r.order&&n.order?r.order-n.order:r.order?-1:n.order?1:0);for(let o of e.toolbarFixed.groups)o.items.sort((r,n)=>r.order&&n.order?r.order-n.order:r.order?-1:n.order?1:0);return e};function cr(t,e,o){return{admin:o,features:is(t),lexical:e,resolvedFeatureMap:t}}var k1=_1(()=>import("./Field-US3A77DK.js").then(t=>({default:t.RichText}))),N1=t=>{let e=x1(14),{admin:o,clientFeatures:r,featureClientSchemaMap:n,field:i,lexicalEditorConfig:l,schemaPath:s}=t,a;e[0]!==o?(a=o===void 0?{}:o,e[0]=o,e[1]=a):a=e[1];let d=a,c=l===void 0?eo:l,[u,m]=w1(null),p,f;e[2]!==u||e[3]!==r||e[4]!==c||e[5]!==n||e[6]!==i||e[7]!==s||e[8]!==d?(p=()=>{if(u)return;let C=[];for(let[D,x]of Object.entries(r))x.clientFeatureProvider&&C.push(x.clientFeatureProvider(x.clientFeatureProps));let w=c||eo,v=ns({featureClientSchemaMap:n,field:i,schemaPath:s??i.name,unSanitizedEditorConfig:{features:C,lexical:w}});m(cr(v,w,d))},f=[c,d,u,r,n,i,s],e[2]=u,e[3]=r,e[4]=c,e[5]=n,e[6]=i,e[7]=s,e[8]=d,e[9]=p,e[10]=f):(p=e[9],f=e[10]),E1(p,f);let h;return e[11]!==u||e[12]!==t?(h=ur(T1,{fallback:ur(b1,{height:"35vh"}),children:u&&ur(k1,{...t,editorConfig:u})}),e[11]=u,e[12]=t,e[13]=h):h=e[13],h};function L1(...t){return t.filter(Boolean).join(" ")}var to=new WeakMap;function ls(t){let e=t.changedTouches[0];return e===void 0?null:[e.clientX,e.clientY]}function oo(t,e){let o=to.get(t);if(o===void 0){let r=new Set,n=l=>{o!==void 0&&(o.start=ls(l))},i=l=>{if(o===void 0)return;let{start:s}=o;if(s===null)return;let a=ls(l);for(let d of r)a!==null&&d([a[0]-s[0],a[1]-s[1]],l)};t.addEventListener("touchstart",n),t.addEventListener("touchend",i),o={handleTouchend:i,handleTouchstart:n,listeners:r,start:null},to.set(t,o)}return o.listeners.add(e),()=>{R1(t,e)}}function R1(t,e){let o=to.get(t);if(o===void 0)return;let{listeners:r}=o;r.delete(e),r.size===0&&(to.delete(t),t.removeEventListener("touchstart",o.handleTouchstart),t.removeEventListener("touchend",o.handleTouchend))}function S1(t,e){return oo(t,(o,r)=>{let[n,i]=o;n<0&&-n>Math.abs(i)&&e(n,r)})}function I1(t,e){return oo(t,(o,r)=>{let[n,i]=o;n>0&&n>Math.abs(i)&&e(n,r)})}function y1(t,e){return oo(t,(o,r)=>{let[n,i]=o;i<0&&-i>Math.abs(n)&&e(n,r)})}function v1(t,e){return oo(t,(o,r)=>{let[n,i]=o;i>0&&i>Math.abs(n)&&e(n,r)})}var O={DOM_ELEMENT_TYPE:1,DOM_TEXT_TYPE:3,NO_DIRTY_NODES:0,HAS_DIRTY_NODES:1,FULL_RECONCILE:2,IS_NORMAL:0,IS_TOKEN:1,IS_SEGMENTED:2,IS_INERT:3,IS_BOLD:1,IS_ITALIC:2,IS_STRIKETHROUGH:4,IS_UNDERLINE:8,IS_CODE:16,IS_SUBSCRIPT:32,IS_SUPERSCRIPT:64,IS_HIGHLIGHT:128,IS_DIRECTIONLESS:1,IS_UNMERGEABLE:2,IS_ALIGN_LEFT:1,IS_ALIGN_CENTER:2,IS_ALIGN_RIGHT:3,IS_ALIGN_JUSTIFY:4,IS_ALIGN_START:5,IS_ALIGN_END:6},M1=O.IS_BOLD|O.IS_ITALIC|O.IS_STRIKETHROUGH|O.IS_UNDERLINE|O.IS_CODE|O.IS_SUBSCRIPT|O.IS_SUPERSCRIPT|O.IS_HIGHLIGHT,D1="\xA0",A1=`
40
40
 
41
41
  `,ss="\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC",as="A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u0300-\u0590\u0800-\u1FFF\u200E\u2C00-\uFB1C\uFE00-\uFE6F\uFEFD-\uFFFF",O1=new RegExp("^[^"+as+"]*["+ss+"]"),F1=new RegExp("^[^"+ss+"]*["+as+"]"),$1={bold:O.IS_BOLD,code:O.IS_CODE,highlight:O.IS_HIGHLIGHT,italic:O.IS_ITALIC,strikethrough:O.IS_STRIKETHROUGH,subscript:O.IS_SUBSCRIPT,superscript:O.IS_SUPERSCRIPT,underline:O.IS_UNDERLINE},P1={directionless:O.IS_DIRECTIONLESS,unmergeable:O.IS_UNMERGEABLE},B1={center:O.IS_ALIGN_CENTER,end:O.IS_ALIGN_END,justify:O.IS_ALIGN_JUSTIFY,left:O.IS_ALIGN_LEFT,right:O.IS_ALIGN_RIGHT,start:O.IS_ALIGN_START},H1={[O.IS_ALIGN_CENTER]:"center",[O.IS_ALIGN_END]:"end",[O.IS_ALIGN_JUSTIFY]:"justify",[O.IS_ALIGN_LEFT]:"left",[O.IS_ALIGN_RIGHT]:"right",[O.IS_ALIGN_START]:"start"},j1={normal:O.IS_NORMAL,segmented:O.IS_SEGMENTED,token:O.IS_TOKEN},G1={[O.IS_NORMAL]:"normal",[O.IS_SEGMENTED]:"segmented",[O.IS_TOKEN]:"token"};import{c as U1}from"react/compiler-runtime";import{jsx as W1}from"react/jsx-runtime";import"react";var V1=()=>{let t=U1(2),{EditButton:e}=be(),o;return t[0]!==e?(o=e?W1(e,{}):null,t[0]=e,t[1]=o):o=t[1],o};import{c as K1}from"react/compiler-runtime";import{jsx as z1}from"react/jsx-runtime";import"react";var Z1=()=>{let t=K1(2),{RemoveButton:e}=be(),o;return t[0]!==e?(o=e?z1(e,{}):null,t[0]=e,t[1]=o):o=t[1],o};import{c as X1}from"react/compiler-runtime";import{jsx as Y1}from"react/jsx-runtime";import"react";var J1=()=>{let t=X1(2),{Label:e}=be(),o;return t[0]!==e?(o=e?Y1(e,{}):null,t[0]=e,t[1]=o):o=t[1],o};import{c as q1}from"react/compiler-runtime";import{jsx as Q1}from"react/jsx-runtime";import"react";var eh=t=>{let e=q1(3),{children:o}=t,{InlineBlockContainer:r}=be(),n;return e[0]!==r||e[1]!==o?(n=r?Q1(r,{children:o}):null,e[0]=r,e[1]=o,e[2]=n):n=e[2],n};import{c as th}from"react/compiler-runtime";import{jsx as oh}from"react/jsx-runtime";import"react";var rh=t=>{let e=th(6),{children:o,editButton:r,Label:n,removeButton:i}=t,{BlockCollapsible:l}=ve(),s;return e[0]!==l||e[1]!==r||e[2]!==n||e[3]!==i||e[4]!==o?(s=l?oh(l,{editButton:r,Label:n,removeButton:i,children:o}):null,e[0]=l,e[1]=r,e[2]=n,e[3]=i,e[4]=o,e[5]=s):s=e[5],s};import{c as nh}from"react/compiler-runtime";import{jsx as ih}from"react/jsx-runtime";import"react";var lh=()=>{let t=nh(2),{EditButton:e}=ve(),o;return t[0]!==e?(o=e?ih(e,{}):null,t[0]=e,t[1]=o):o=t[1],o};import{c as sh}from"react/compiler-runtime";import{jsx as ah}from"react/jsx-runtime";import"react";var ch=()=>{let t=sh(2),{RemoveButton:e}=ve(),o;return t[0]!==e?(o=e?ah(e,{}):null,t[0]=e,t[1]=o):o=t[1],o};export{Qe as $createAutoLinkNode,St as $createBlockNode,no as $createInlineBlockNode,me as $createLinkNode,Ue as $createRelationshipNode,Ke as $createUploadNode,fe as $isAutoLinkNode,Rt as $isBlockNode,io as $isInlineBlockNode,V as $isLinkNode,lo as $isRelationshipNode,so as $isUploadNode,Es as AlignFeatureClient,pe as AutoLinkNode,rh as BlockCollapsible,lh as BlockEditButton,ue as BlockNode,ch as BlockRemoveButton,Ss as BlockquoteFeatureClient,ka as BlocksFeatureClient,Va as BoldFeatureClient,us as CAN_USE_DOM,hd as ChecklistFeatureClient,P1 as DETAIL_TYPE_TO_DETAIL,A1 as DOUBLE_LINE_BREAK,H1 as ELEMENT_FORMAT_TO_TYPE,B1 as ELEMENT_TYPE_TO_FORMAT,hs as ENABLE_SLASH_MENU_COMMAND,cs as EditorConfigProvider,He as FieldsDrawer,Km as FixedToolbarFeatureClient,Rc as HeadingFeatureClient,$c as HorizontalRuleFeatureClient,M1 as IS_ALL_FORMATTING,Gc as IndentFeatureClient,eh as InlineBlockContainer,V1 as InlineBlockEditButton,J1 as InlineBlockLabel,ro as InlineBlockNode,Z1 as InlineBlockRemoveButton,Ya as InlineCodeFeatureClient,rp as InlineToolbarFeatureClient,ec as ItalicFeatureClient,F1 as LTR_REGEX,$d as LexicalPluginToLexicalFeatureClient,ed as LinkFeatureClient,Q as LinkNode,D1 as NON_BREAKING_SPACE,O as NodeFormat,wd as OrderedListFeatureClient,Vd as ParagraphFeatureClient,ps as Point,O1 as RTL_REGEX,gs as Rect,_m as RelationshipFeatureClient,Ge as RelationshipNode,N1 as RichTextField,Ud as SlateToLexicalFeatureClient,ic as StrikethroughFeatureClient,cc as SubscriptFeatureClient,pc as SuperscriptFeatureClient,j1 as TEXT_MODE_TO_TYPE,$1 as TEXT_TYPE_TO_FORMAT,G1 as TEXT_TYPE_TO_MODE,le as TOGGLE_LINK_COMMAND,zf as TableFeatureClient,Fa as TestRecorderFeatureClient,st as ToolbarButton,Re as ToolbarDropdown,ja as TreeViewFeatureClient,xc as UnderlineFeatureClient,vd as UnorderedListFeatureClient,C1 as UploadFeatureClient,Ve as UploadNode,v1 as addSwipeDownListener,S1 as addSwipeLeftListener,I1 as addSwipeRightListener,y1 as addSwipeUpListener,To as createBlockNode,y as createClientFeature,eo as defaultEditorLexicalConfig,Ko as getDOMRangeRect,Cs as getEnabledNodes,Me as getSelectedNode,ms as isHTMLElement,fs as isPoint,L1 as joinClasses,cr as sanitizeClientEditorConfig,is as sanitizeClientFeatures,Gt as setFloatingElemPosition,Ot as setFloatingElemPositionForLinkEditor,Z as slashMenuBasicGroupWithItems,de as toolbarAddDropdownGroupWithItems,wo as toolbarFeatureButtonsGroupWithItems,Y as toolbarFormatGroupWithItems,q as toolbarTextDropdownGroupWithItems,B as useEditorConfigContext,ds as useLexicalDocumentDrawer,ce as useLexicalDrawer,lt as useLexicalListDrawer};
42
42
  //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ export function lexicalEditor(props) {
18
18
  }) => {
19
19
  if (process.env.NODE_ENV !== 'production' && process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' && !checkedDependencies) {
20
20
  checkedDependencies = true;
21
- await checkDependencies({
21
+ void checkDependencies({
22
22
  dependencyGroups: [{
23
23
  name: 'lexical',
24
24
  dependencies: ['lexical', '@lexical/headless', '@lexical/link', '@lexical/list', '@lexical/mark', '@lexical/react', '@lexical/rich-text', '@lexical/selection', '@lexical/utils'],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["afterChangeTraverseFields","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","checkDependencies","deepCopyObject","deepCopyObjectSimple","withNullableJSONSchemaType","i18n","defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerEditorConfig","sanitizeServerFeatures","populateLexicalPopulationPromises","getGenerateImportMap","getGenerateSchemaMap","recurseNodeTree","richTextValidateHOC","defaultSanitizedServerEditorConfig","checkedDependencies","lexicalEditor","props","config","isRoot","parentIsLocalized","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","dependencyGroups","name","dependencies","targetVersion","features","resolvedFeatureMap","finalSanitizedEditorConfig","lexical","rootEditor","editor","rootEditorFeatures","defaultFeatures","rootFeatures","unSanitizedEditorConfig","featureI18n","lang","general","CellComponent","path","serverProps","admin","sanitizedEditorConfig","editorConfig","FieldComponent","generateImportMap","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","size","editorPopulationPromises","hooks","afterChange","args","collection","_context","global","operation","schemaPath","value","length","hook","nodeHooks","getSubFields","nodeIDMap","originalNodeIDMap","internal","richText","join","Object","keys","nodes","root","children","id","node","entries","afterChangeHooks","afterChangeHooksForNode","get","type","console","warn","originalNode","parentRichTextFieldPath","parentRichTextFieldSchemaPath","subFieldFn","subFieldDataFn","getSubFieldsData","subFields","data","originalData","doc","fields","previousDoc","previousSiblingDoc","siblingData","afterRead","fallbackLocale","locale","populate","triggerAccessControl","triggerHooks","flattenedNodes","afterReadHooks","afterReadHooksForNode","populateArg","beforeChange","errors","mergeLocaleActions","siblingDocWithLocales","skipValidation","originalNodeWithLocalesIDMap","beforeChangeHooks","beforeChangeHooksForNode","originalNodeWithLocales","originalDataWithLocales","docWithLocales","newOriginalNodeIDMap","previousValue","beforeValidate","beforeValidateHooks","beforeValidateHooksForNode","outputSchema","collectionIDFieldTypes","interfaceNameDefinitions","isRequired","properties","additionalProperties","items","version","required","direction","oneOf","enum","format","indent","modifyOutputSchema","generatedTypes","modifyOutputSchemas","currentSchema","validate","AlignFeature","BlockquoteFeature","BlocksFeature","LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters","convertLexicalNodesToHTML","convertLexicalToHTML","consolidateHTMLConverters","lexicalHTML","HTMLConverterFeature","TestRecorderFeature","TreeViewFeature","EXPERIMENTAL_TableFeature","BoldFeature","InlineCodeFeature","ItalicFeature","StrikethroughFeature","SubscriptFeature","SuperscriptFeature","UnderlineFeature","HeadingFeature","HorizontalRuleFeature","IndentFeature","AutoLinkNode","LinkNode","LinkFeature","ChecklistFeature","OrderedListFeature","UnorderedListFeature","ParagraphFeature","RelationshipFeature","RelationshipServerNode","FixedToolbarFeature","InlineToolbarFeature","createNode","UploadFeature","UploadServerNode","defaultEditorLexicalConfig","sortFeaturesForOptimalLoading","getEnabledNodes","getEnabledNodesFromServerNodes","DETAIL_TYPE_TO_DETAIL","DOUBLE_LINE_BREAK","ELEMENT_FORMAT_TO_TYPE","ELEMENT_TYPE_TO_FORMAT","IS_ALL_FORMATTING","LTR_REGEX","NodeFormat","NON_BREAKING_SPACE","RTL_REGEX","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_FORMAT","TEXT_TYPE_TO_MODE","sanitizeUrl","validateUrl","defaultRichTextValue","createServerFeature","extractPropsFromJSXPropsString","extractFrontmatter","frontmatterToObject","objectToFrontmatter","propsToJSXString","$convertFromMarkdownString","upgradeLexicalData"],"sources":["../src/index.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport {\n afterChangeTraverseFields,\n afterReadTraverseFields,\n beforeChangeTraverseFields,\n beforeValidateTraverseFields,\n checkDependencies,\n deepCopyObject,\n deepCopyObjectSimple,\n withNullableJSONSchemaType,\n} from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from './features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from './lexical/config/types.js'\nimport type {\n AdapterProps,\n LexicalEditorProps,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from './types.js'\n\nimport { i18n } from './i18n.js'\nimport { defaultEditorConfig, defaultEditorFeatures } from './lexical/config/server/default.js'\nimport { loadFeatures } from './lexical/config/server/loader.js'\nimport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\nimport { populateLexicalPopulationPromises } from './populateGraphQL/populateLexicalPopulationPromises.js'\nimport { getGenerateImportMap } from './utilities/generateImportMap.js'\nimport { getGenerateSchemaMap } from './utilities/generateSchemaMap.js'\nimport { recurseNodeTree } from './utilities/recurseNodeTree.js'\nimport { richTextValidateHOC } from './validate/index.js'\n\nlet defaultSanitizedServerEditorConfig: null | SanitizedServerEditorConfig = null\nlet checkedDependencies = false\n\nexport function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapterProvider {\n return async ({ config, isRoot, parentIsLocalized }) => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n await checkDependencies({\n dependencyGroups: [\n {\n name: 'lexical',\n dependencies: [\n 'lexical',\n '@lexical/headless',\n '@lexical/link',\n '@lexical/list',\n '@lexical/mark',\n '@lexical/react',\n '@lexical/rich-text',\n '@lexical/selection',\n '@lexical/utils',\n ],\n targetVersion: '0.20.0',\n },\n ],\n })\n }\n\n let features: FeatureProviderServer<unknown, unknown, unknown>[] = []\n let resolvedFeatureMap: ResolvedServerFeatureMap\n\n let finalSanitizedEditorConfig: SanitizedServerEditorConfig // For server only\n if (!props || (!props.features && !props.lexical)) {\n if (!defaultSanitizedServerEditorConfig) {\n defaultSanitizedServerEditorConfig = await sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n finalSanitizedEditorConfig = deepCopyObject(defaultSanitizedServerEditorConfig)\n\n delete finalSanitizedEditorConfig.lexical // We don't want to send the default lexical editor config to the client\n\n resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap\n } else {\n const rootEditor = config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n\n features =\n props.features && typeof props.features === 'function'\n ? props.features({\n defaultFeatures: deepCopyObject(defaultEditorFeatures),\n rootFeatures: rootEditorFeatures,\n })\n : (props.features as FeatureProviderServer<unknown, unknown, unknown>[])\n if (!features) {\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n const lexical = props.lexical ?? deepCopyObjectSimple(defaultEditorConfig.lexical)!\n\n resolvedFeatureMap = await loadFeatures({\n config,\n isRoot,\n parentIsLocalized,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n finalSanitizedEditorConfig = {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: props.lexical,\n resolvedFeatureMap,\n }\n }\n\n const featureI18n = finalSanitizedEditorConfig.features.i18n\n for (const lang in i18n) {\n if (!featureI18n[lang as keyof typeof featureI18n]) {\n featureI18n[lang as keyof typeof featureI18n] = {\n lexical: {},\n }\n }\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n featureI18n[lang].lexical.general = i18n[lang]\n }\n\n return {\n CellComponent: {\n path: '@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell',\n serverProps: {\n admin: props?.admin,\n sanitizedEditorConfig: finalSanitizedEditorConfig,\n },\n },\n editorConfig: finalSanitizedEditorConfig,\n features,\n FieldComponent: {\n path: '@payloadcms/richtext-lexical/rsc#RscEntryLexicalField',\n serverProps: {\n admin: props?.admin,\n sanitizedEditorConfig: finalSanitizedEditorConfig,\n },\n },\n generateImportMap: getGenerateImportMap({\n resolvedFeatureMap,\n }),\n generateSchemaMap: getGenerateSchemaMap({\n resolvedFeatureMap,\n }),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n // check if there are any features with nodes which have populationPromises for this field\n if (finalSanitizedEditorConfig?.features?.graphQLPopulationPromises?.size) {\n populateLexicalPopulationPromises({\n context,\n currentDepth: currentDepth ?? 0,\n depth,\n draft,\n editorPopulationPromises: finalSanitizedEditorConfig.features.graphQLPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterChange: [\n async (args) => {\n const { collection, context: _context, global, operation, path, req, schemaPath } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.afterChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterChange) {\n value = await hook(args)\n }\n }\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n // TO-DO: We should not use context, as it is intended for external use only\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const afterChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterChange\n const afterChangeHooksForNode = afterChangeHooks?.get(node.type)\n if (afterChangeHooksForNode) {\n for (const hook of afterChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(afterChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await afterChangeTraverseFields({\n collection,\n context,\n data: originalData,\n doc: data,\n fields: subFields,\n global,\n operation,\n path,\n previousDoc: data,\n previousSiblingDoc: { ...data },\n req,\n schemaPath,\n siblingData: originalData || {},\n siblingDoc: { ...data },\n })\n }\n }\n }\n return value\n },\n ],\n afterRead: [\n /**\n * afterRead hooks do not receive the originalNode. Thus, they can run on all nodes, not just nodes with an ID.\n */\n async (args) => {\n const {\n collection,\n context: context,\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path,\n populate,\n populationPromises,\n req,\n schemaPath,\n showHiddenFields,\n triggerAccessControl,\n triggerHooks,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.afterRead?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterRead) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterRead?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n const flattenedNodes: SerializedLexicalNode[] = []\n\n recurseNodeTree({\n flattenedNodes,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n for (let node of flattenedNodes) {\n const afterReadHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterRead\n const afterReadHooksForNode = afterReadHooks?.get(node.type)\n if (afterReadHooksForNode) {\n for (const hook of afterReadHooksForNode) {\n node = await hook({\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n locale: locale!,\n node,\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n populateArg: populate,\n populationPromises: populationPromises!,\n req,\n showHiddenFields: showHiddenFields!,\n triggerAccessControl: triggerAccessControl!,\n triggerHooks: triggerHooks!,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n\n if (subFields?.length) {\n afterReadTraverseFields({\n collection,\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n doc: data,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n fields: subFields,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n global,\n locale: locale!,\n overrideAccess: overrideAccess!,\n path,\n populate,\n populationPromises: populationPromises!,\n req,\n schemaPath,\n showHiddenFields: showHiddenFields!,\n siblingDoc: data,\n triggerAccessControl,\n triggerHooks,\n })\n }\n }\n }\n\n return value\n },\n ],\n beforeChange: [\n async (args) => {\n const {\n collection,\n context: _context,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeChange) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n // TO-DO: We should not use context, as it is intended for external use only\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n const originalNodeWithLocalesIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (field.name && siblingDocWithLocales?.[field.name]) {\n recurseNodeTree({\n nodeIDMap: originalNodeWithLocalesIDMap,\n nodes:\n (siblingDocWithLocales[field.name] as SerializedEditorState)?.root?.children ??\n [],\n })\n }\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.beforeChange\n const beforeChangeHooksForNode = beforeChangeHooks?.get(node.type)\n if (beforeChangeHooksForNode) {\n for (const hook of beforeChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n errors: errors!,\n mergeLocaleActions: mergeLocaleActions!,\n node,\n operation: operation!,\n originalNode: originalNodeIDMap[id],\n originalNodeWithLocales: originalNodeWithLocalesIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n skipValidation: skipValidation!,\n })\n }\n }\n\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n const originalDataWithLocales =\n subFieldDataFn({\n node: originalNodeWithLocalesIDMap[id],\n req,\n }) ?? {}\n\n if (subFields?.length) {\n await beforeChangeTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n docWithLocales: originalDataWithLocales ?? {},\n errors: errors!,\n fields: subFields,\n global,\n mergeLocaleActions: mergeLocaleActions!,\n operation: operation!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n siblingDocWithLocales: originalDataWithLocales ?? {},\n skipValidation,\n })\n }\n }\n }\n\n /**\n * within the beforeChange hook, id's may be re-generated.\n * Example:\n * 1. Seed data contains IDs for block feature blocks.\n * 2. Those are used in beforeValidate\n * 3. in beforeChange, those IDs are regenerated, because you cannot provide IDs during document creation. See baseIDField beforeChange hook for reasoning\n * 4. Thus, in order for all post-beforeChange hooks to receive the correct ID, we need to update the originalNodeIDMap with the new ID's, by regenerating the nodeIDMap.\n * The reason this is not generated for every hook, is to save on performance. We know we only really have to generate it in beforeValidate, which is the first hook,\n * and in beforeChange, which is where modifications to the provided IDs can occur.\n */\n const newOriginalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n const previousValue = siblingData[field.name!]\n\n recurseNodeTree({\n nodeIDMap: newOriginalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!context.internal.richText) {\n context.internal.richText = {}\n }\n context.internal.richText[path.join('.')] = {\n originalNodeIDMap: newOriginalNodeIDMap,\n }\n\n return value\n },\n ],\n beforeValidate: [\n async (args) => {\n const {\n collection,\n context,\n global,\n operation,\n overrideAccess,\n path,\n previousValue,\n req,\n schemaPath,\n } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeValidate?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeValidate) {\n value = await hook(args)\n }\n }\n\n // return value if there are NO hooks\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n /**\n * beforeValidate is the first field hook which runs. This is where we can create the node map, which can then be used in the other hooks.\n *\n */\n\n /**\n * flattenedNodes contains all nodes in the editor, in the order they appear in the editor. They will be used for the following hooks:\n * - afterRead\n *\n * The other hooks require nodes to have IDs, which is why those are ran only from the nodeIDMap. They require IDs because they have both doc/siblingDoc and data/siblingData, and\n * thus require a reliable way to match new node data to old node data. Given that node positions can change in between hooks, this is only reliably possible for nodes which are saved with\n * an ID.\n */\n //const flattenedNodes: SerializedLexicalNode[] = []\n\n /**\n * Only nodes with id's (so, nodes with hooks added to them) will be added to the nodeIDMap. They will be used for the following hooks:\n * - afterChange\n * - beforeChange\n * - beforeValidate\n *\n * Other hooks are handled by the flattenedNodes. All nodes in the nodeIDMap are part of flattenedNodes.\n */\n\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap: originalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!(context as any).internal.richText) {\n ;(context as any).internal.richText = {}\n }\n ;(context as any).internal.richText[path.join('.')] = {\n originalNodeIDMap,\n }\n\n /**\n * Now that the maps for all hooks are set up, we can run the validate hook\n */\n if (!finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size) {\n return value\n }\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n recurseNodeTree({\n //flattenedNodes,\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeValidateHooks =\n finalSanitizedEditorConfig.features.nodeHooks.beforeValidate\n const beforeValidateHooksForNode = beforeValidateHooks?.get(node.type)\n if (beforeValidateHooksForNode) {\n for (const hook of beforeValidateHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeValidate) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await beforeValidateTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n fields: subFields,\n global,\n operation,\n overrideAccess: overrideAccess!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n })\n }\n }\n }\n\n return value\n },\n ],\n },\n i18n: featureI18n,\n outputSchema: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }) => {\n let outputSchema: JSONSchema4 = {\n // This schema matches the SerializedEditorState type so far, that it's possible to cast SerializedEditorState to this schema without any errors.\n // In the future, we should\n // 1) allow recursive children\n // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.\n type: withNullableJSONSchemaType('object', isRequired),\n properties: {\n root: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: {\n type: 'string',\n },\n children: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: {\n type: 'string',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['type', 'version'],\n },\n },\n direction: {\n oneOf: [\n {\n enum: ['ltr', 'rtl'],\n },\n {\n type: 'null',\n },\n ],\n },\n format: {\n type: 'string',\n enum: ['left', 'start', 'center', 'right', 'end', 'justify', ''], // ElementFormatType, since the root node is an element\n },\n indent: {\n type: 'integer',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['children', 'direction', 'format', 'indent', 'type', 'version'],\n },\n },\n required: ['root'],\n }\n for (const modifyOutputSchema of finalSanitizedEditorConfig.features.generatedTypes\n .modifyOutputSchemas) {\n outputSchema = modifyOutputSchema({\n collectionIDFieldTypes,\n config,\n currentSchema: outputSchema,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n }\n\n return outputSchema\n },\n validate: richTextValidateHOC({\n editorConfig: finalSanitizedEditorConfig,\n }),\n }\n }\n}\n\nexport { AlignFeature } from './features/align/server/index.js'\nexport { BlockquoteFeature } from './features/blockquote/server/index.js'\nexport { BlocksFeature, type BlocksFeatureProps } from './features/blocks/server/index.js'\nexport { type BlockFields } from './features/blocks/server/nodes/BlocksNode.js'\n\nexport { LinebreakHTMLConverter } from './features/converters/html/converter/converters/linebreak.js'\nexport { ParagraphHTMLConverter } from './features/converters/html/converter/converters/paragraph.js'\n\nexport { TextHTMLConverter } from './features/converters/html/converter/converters/text.js'\nexport { defaultHTMLConverters } from './features/converters/html/converter/defaultConverters.js'\nexport {\n convertLexicalNodesToHTML,\n convertLexicalToHTML,\n} from './features/converters/html/converter/index.js'\n\nexport type { HTMLConverter } from './features/converters/html/converter/types.js'\nexport { consolidateHTMLConverters, lexicalHTML } from './features/converters/html/field/index.js'\nexport {\n HTMLConverterFeature,\n type HTMLConverterFeatureProps,\n} from './features/converters/html/index.js'\nexport { TestRecorderFeature } from './features/debug/testRecorder/server/index.js'\nexport { TreeViewFeature } from './features/debug/treeView/server/index.js'\nexport { EXPERIMENTAL_TableFeature } from './features/experimental_table/server/index.js'\nexport { BoldFeature } from './features/format/bold/feature.server.js'\nexport { InlineCodeFeature } from './features/format/inlineCode/feature.server.js'\nexport { ItalicFeature } from './features/format/italic/feature.server.js'\n\nexport { StrikethroughFeature } from './features/format/strikethrough/feature.server.js'\nexport { SubscriptFeature } from './features/format/subscript/feature.server.js'\nexport { SuperscriptFeature } from './features/format/superscript/feature.server.js'\nexport { UnderlineFeature } from './features/format/underline/feature.server.js'\nexport { HeadingFeature, type HeadingFeatureProps } from './features/heading/server/index.js'\nexport { HorizontalRuleFeature } from './features/horizontalRule/server/index.js'\nexport { IndentFeature } from './features/indent/server/index.js'\n\nexport { AutoLinkNode } from './features/link/nodes/AutoLinkNode.js'\n\nexport { LinkNode } from './features/link/nodes/LinkNode.js'\nexport type { LinkFields } from './features/link/nodes/types.js'\nexport { LinkFeature, type LinkFeatureServerProps } from './features/link/server/index.js'\nexport { ChecklistFeature } from './features/lists/checklist/server/index.js'\nexport { OrderedListFeature } from './features/lists/orderedList/server/index.js'\nexport { UnorderedListFeature } from './features/lists/unorderedList/server/index.js'\n\nexport type {\n SlateNode,\n SlateNodeConverter,\n} from './features/migrations/slateToLexical/converter/types.js'\n\nexport { ParagraphFeature } from './features/paragraph/server/index.js'\nexport {\n RelationshipFeature,\n type RelationshipFeatureProps,\n} from './features/relationship/server/index.js'\nexport {\n type RelationshipData,\n RelationshipServerNode,\n} from './features/relationship/server/nodes/RelationshipNode.js'\n\nexport { FixedToolbarFeature } from './features/toolbars/fixed/server/index.js'\nexport { InlineToolbarFeature } from './features/toolbars/inline/server/index.js'\n\nexport type { ToolbarGroup, ToolbarGroupItem } from './features/toolbars/types.js'\nexport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n PluginComponent,\n PluginComponentWithAnchor,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n SanitizedPlugin,\n} from './features/typesClient.js'\nexport type {\n AfterChangeNodeHook,\n AfterChangeNodeHookArgs,\n AfterReadNodeHook,\n AfterReadNodeHookArgs,\n BaseNodeHookArgs,\n BeforeChangeNodeHook,\n BeforeChangeNodeHookArgs,\n BeforeValidateNodeHook,\n BeforeValidateNodeHookArgs,\n FeatureProviderProviderServer,\n FeatureProviderServer,\n NodeValidation,\n NodeWithHooks,\n PopulationPromise,\n ResolvedServerFeature,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n ServerFeature,\n ServerFeatureProviderMap,\n} from './features/typesServer.js'\n\nexport { createNode } from './features/typeUtilities.js' // Only useful in feature.server.ts\n\nexport { UploadFeature } from './features/upload/server/feature.server.js'\n\nexport type { UploadFeatureProps } from './features/upload/server/feature.server.js'\nexport { type UploadData, UploadServerNode } from './features/upload/server/nodes/UploadNode.js'\n\nexport type { EditorConfigContextType } from './lexical/config/client/EditorConfigProvider.js'\nexport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultEditorLexicalConfig,\n} from './lexical/config/server/default.js'\n\nexport { loadFeatures, sortFeaturesForOptimalLoading } from './lexical/config/server/loader.js'\nexport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\n\nexport type {\n ClientEditorConfig,\n SanitizedClientEditorConfig,\n SanitizedServerEditorConfig,\n ServerEditorConfig,\n} from './lexical/config/types.js'\nexport { getEnabledNodes, getEnabledNodesFromServerNodes } from './lexical/nodes/index.js'\nexport type { AdapterProps }\n\nexport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from './lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport {\n DETAIL_TYPE_TO_DETAIL,\n DOUBLE_LINE_BREAK,\n ELEMENT_FORMAT_TO_TYPE,\n ELEMENT_TYPE_TO_FORMAT,\n IS_ALL_FORMATTING,\n LTR_REGEX,\n NodeFormat,\n NON_BREAKING_SPACE,\n RTL_REGEX,\n TEXT_MODE_TO_TYPE,\n TEXT_TYPE_TO_FORMAT,\n TEXT_TYPE_TO_MODE,\n} from './lexical/utils/nodeFormat.js'\nexport { sanitizeUrl, validateUrl } from './lexical/utils/url.js'\n\nexport type * from './nodeTypes.js'\n\nexport { defaultRichTextValue } from './populateGraphQL/defaultValue.js'\n\nexport { populate } from './populateGraphQL/populate.js'\nexport type { LexicalEditorProps, LexicalRichTextAdapter } from './types.js'\nexport { createServerFeature } from './utilities/createServerFeature.js'\n\nexport type { FieldsDrawerProps } from './utilities/fieldsDrawer/Drawer.js'\n\nexport { extractPropsFromJSXPropsString } from './utilities/jsx/extractPropsFromJSXPropsString.js'\nexport {\n extractFrontmatter,\n frontmatterToObject,\n objectToFrontmatter,\n propsToJSXString,\n} from './utilities/jsx/jsx.js'\nexport { $convertFromMarkdownString } from './utilities/jsx/lexicalMarkdownCopy.js'\nexport { upgradeLexicalData } from './utilities/upgradeLexicalData/index.js'\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["afterChangeTraverseFields","afterReadTraverseFields","beforeChangeTraverseFields","beforeValidateTraverseFields","checkDependencies","deepCopyObject","deepCopyObjectSimple","withNullableJSONSchemaType","i18n","defaultEditorConfig","defaultEditorFeatures","loadFeatures","sanitizeServerEditorConfig","sanitizeServerFeatures","populateLexicalPopulationPromises","getGenerateImportMap","getGenerateSchemaMap","recurseNodeTree","richTextValidateHOC","defaultSanitizedServerEditorConfig","checkedDependencies","lexicalEditor","props","config","isRoot","parentIsLocalized","process","env","NODE_ENV","PAYLOAD_DISABLE_DEPENDENCY_CHECKER","dependencyGroups","name","dependencies","targetVersion","features","resolvedFeatureMap","finalSanitizedEditorConfig","lexical","rootEditor","editor","rootEditorFeatures","defaultFeatures","rootFeatures","unSanitizedEditorConfig","featureI18n","lang","general","CellComponent","path","serverProps","admin","sanitizedEditorConfig","editorConfig","FieldComponent","generateImportMap","generateSchemaMap","graphQLPopulationPromises","context","currentDepth","depth","draft","field","fieldPromises","findMany","flattenLocales","overrideAccess","populationPromises","req","showHiddenFields","siblingDoc","size","editorPopulationPromises","hooks","afterChange","args","collection","_context","global","operation","schemaPath","value","length","hook","nodeHooks","getSubFields","nodeIDMap","originalNodeIDMap","internal","richText","join","Object","keys","nodes","root","children","id","node","entries","afterChangeHooks","afterChangeHooksForNode","get","type","console","warn","originalNode","parentRichTextFieldPath","parentRichTextFieldSchemaPath","subFieldFn","subFieldDataFn","getSubFieldsData","subFields","data","originalData","doc","fields","previousDoc","previousSiblingDoc","siblingData","afterRead","fallbackLocale","locale","populate","triggerAccessControl","triggerHooks","flattenedNodes","afterReadHooks","afterReadHooksForNode","populateArg","beforeChange","errors","mergeLocaleActions","siblingDocWithLocales","skipValidation","originalNodeWithLocalesIDMap","beforeChangeHooks","beforeChangeHooksForNode","originalNodeWithLocales","originalDataWithLocales","docWithLocales","newOriginalNodeIDMap","previousValue","beforeValidate","beforeValidateHooks","beforeValidateHooksForNode","outputSchema","collectionIDFieldTypes","interfaceNameDefinitions","isRequired","properties","additionalProperties","items","version","required","direction","oneOf","enum","format","indent","modifyOutputSchema","generatedTypes","modifyOutputSchemas","currentSchema","validate","AlignFeature","BlockquoteFeature","BlocksFeature","LinebreakHTMLConverter","ParagraphHTMLConverter","TextHTMLConverter","defaultHTMLConverters","convertLexicalNodesToHTML","convertLexicalToHTML","consolidateHTMLConverters","lexicalHTML","HTMLConverterFeature","TestRecorderFeature","TreeViewFeature","EXPERIMENTAL_TableFeature","BoldFeature","InlineCodeFeature","ItalicFeature","StrikethroughFeature","SubscriptFeature","SuperscriptFeature","UnderlineFeature","HeadingFeature","HorizontalRuleFeature","IndentFeature","AutoLinkNode","LinkNode","LinkFeature","ChecklistFeature","OrderedListFeature","UnorderedListFeature","ParagraphFeature","RelationshipFeature","RelationshipServerNode","FixedToolbarFeature","InlineToolbarFeature","createNode","UploadFeature","UploadServerNode","defaultEditorLexicalConfig","sortFeaturesForOptimalLoading","getEnabledNodes","getEnabledNodesFromServerNodes","DETAIL_TYPE_TO_DETAIL","DOUBLE_LINE_BREAK","ELEMENT_FORMAT_TO_TYPE","ELEMENT_TYPE_TO_FORMAT","IS_ALL_FORMATTING","LTR_REGEX","NodeFormat","NON_BREAKING_SPACE","RTL_REGEX","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_FORMAT","TEXT_TYPE_TO_MODE","sanitizeUrl","validateUrl","defaultRichTextValue","createServerFeature","extractPropsFromJSXPropsString","extractFrontmatter","frontmatterToObject","objectToFrontmatter","propsToJSXString","$convertFromMarkdownString","upgradeLexicalData"],"sources":["../src/index.ts"],"sourcesContent":["import type { JSONSchema4 } from 'json-schema'\nimport type { SerializedEditorState, SerializedLexicalNode } from 'lexical'\n\nimport {\n afterChangeTraverseFields,\n afterReadTraverseFields,\n beforeChangeTraverseFields,\n beforeValidateTraverseFields,\n checkDependencies,\n deepCopyObject,\n deepCopyObjectSimple,\n withNullableJSONSchemaType,\n} from 'payload'\n\nimport type { FeatureProviderServer, ResolvedServerFeatureMap } from './features/typesServer.js'\nimport type { SanitizedServerEditorConfig } from './lexical/config/types.js'\nimport type {\n AdapterProps,\n LexicalEditorProps,\n LexicalRichTextAdapter,\n LexicalRichTextAdapterProvider,\n} from './types.js'\n\nimport { i18n } from './i18n.js'\nimport { defaultEditorConfig, defaultEditorFeatures } from './lexical/config/server/default.js'\nimport { loadFeatures } from './lexical/config/server/loader.js'\nimport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\nimport { populateLexicalPopulationPromises } from './populateGraphQL/populateLexicalPopulationPromises.js'\nimport { getGenerateImportMap } from './utilities/generateImportMap.js'\nimport { getGenerateSchemaMap } from './utilities/generateSchemaMap.js'\nimport { recurseNodeTree } from './utilities/recurseNodeTree.js'\nimport { richTextValidateHOC } from './validate/index.js'\n\nlet defaultSanitizedServerEditorConfig: null | SanitizedServerEditorConfig = null\nlet checkedDependencies = false\n\nexport function lexicalEditor(props?: LexicalEditorProps): LexicalRichTextAdapterProvider {\n return async ({ config, isRoot, parentIsLocalized }) => {\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_DISABLE_DEPENDENCY_CHECKER !== 'true' &&\n !checkedDependencies\n ) {\n checkedDependencies = true\n void checkDependencies({\n dependencyGroups: [\n {\n name: 'lexical',\n dependencies: [\n 'lexical',\n '@lexical/headless',\n '@lexical/link',\n '@lexical/list',\n '@lexical/mark',\n '@lexical/react',\n '@lexical/rich-text',\n '@lexical/selection',\n '@lexical/utils',\n ],\n targetVersion: '0.20.0',\n },\n ],\n })\n }\n\n let features: FeatureProviderServer<unknown, unknown, unknown>[] = []\n let resolvedFeatureMap: ResolvedServerFeatureMap\n\n let finalSanitizedEditorConfig: SanitizedServerEditorConfig // For server only\n if (!props || (!props.features && !props.lexical)) {\n if (!defaultSanitizedServerEditorConfig) {\n defaultSanitizedServerEditorConfig = await sanitizeServerEditorConfig(\n defaultEditorConfig,\n config,\n parentIsLocalized,\n )\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n finalSanitizedEditorConfig = deepCopyObject(defaultSanitizedServerEditorConfig)\n\n delete finalSanitizedEditorConfig.lexical // We don't want to send the default lexical editor config to the client\n\n resolvedFeatureMap = finalSanitizedEditorConfig.resolvedFeatureMap\n } else {\n const rootEditor = config.editor\n let rootEditorFeatures: FeatureProviderServer<unknown, unknown, unknown>[] = []\n if (typeof rootEditor === 'object' && 'features' in rootEditor) {\n rootEditorFeatures = (rootEditor as LexicalRichTextAdapter).features\n }\n\n features =\n props.features && typeof props.features === 'function'\n ? props.features({\n defaultFeatures: deepCopyObject(defaultEditorFeatures),\n rootFeatures: rootEditorFeatures,\n })\n : (props.features as FeatureProviderServer<unknown, unknown, unknown>[])\n if (!features) {\n features = deepCopyObject(defaultEditorFeatures)\n }\n\n const lexical = props.lexical ?? deepCopyObjectSimple(defaultEditorConfig.lexical)!\n\n resolvedFeatureMap = await loadFeatures({\n config,\n isRoot,\n parentIsLocalized,\n unSanitizedEditorConfig: {\n features,\n lexical,\n },\n })\n\n finalSanitizedEditorConfig = {\n features: sanitizeServerFeatures(resolvedFeatureMap),\n lexical: props.lexical,\n resolvedFeatureMap,\n }\n }\n\n const featureI18n = finalSanitizedEditorConfig.features.i18n\n for (const lang in i18n) {\n if (!featureI18n[lang as keyof typeof featureI18n]) {\n featureI18n[lang as keyof typeof featureI18n] = {\n lexical: {},\n }\n }\n // @ts-expect-error - vestiges of when tsconfig was not strict. Feel free to improve\n featureI18n[lang].lexical.general = i18n[lang]\n }\n\n return {\n CellComponent: {\n path: '@payloadcms/richtext-lexical/rsc#RscEntryLexicalCell',\n serverProps: {\n admin: props?.admin,\n sanitizedEditorConfig: finalSanitizedEditorConfig,\n },\n },\n editorConfig: finalSanitizedEditorConfig,\n features,\n FieldComponent: {\n path: '@payloadcms/richtext-lexical/rsc#RscEntryLexicalField',\n serverProps: {\n admin: props?.admin,\n sanitizedEditorConfig: finalSanitizedEditorConfig,\n },\n },\n generateImportMap: getGenerateImportMap({\n resolvedFeatureMap,\n }),\n generateSchemaMap: getGenerateSchemaMap({\n resolvedFeatureMap,\n }),\n graphQLPopulationPromises({\n context,\n currentDepth,\n depth,\n draft,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n }) {\n // check if there are any features with nodes which have populationPromises for this field\n if (finalSanitizedEditorConfig?.features?.graphQLPopulationPromises?.size) {\n populateLexicalPopulationPromises({\n context,\n currentDepth: currentDepth ?? 0,\n depth,\n draft,\n editorPopulationPromises: finalSanitizedEditorConfig.features.graphQLPopulationPromises,\n field,\n fieldPromises,\n findMany,\n flattenLocales,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc,\n })\n }\n },\n hooks: {\n afterChange: [\n async (args) => {\n const { collection, context: _context, global, operation, path, req, schemaPath } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.afterChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterChange) {\n value = await hook(args)\n }\n }\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n // TO-DO: We should not use context, as it is intended for external use only\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const afterChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterChange\n const afterChangeHooksForNode = afterChangeHooks?.get(node.type)\n if (afterChangeHooksForNode) {\n for (const hook of afterChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(afterChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await afterChangeTraverseFields({\n collection,\n context,\n data: originalData,\n doc: data,\n fields: subFields,\n global,\n operation,\n path,\n previousDoc: data,\n previousSiblingDoc: { ...data },\n req,\n schemaPath,\n siblingData: originalData || {},\n siblingDoc: { ...data },\n })\n }\n }\n }\n return value\n },\n ],\n afterRead: [\n /**\n * afterRead hooks do not receive the originalNode. Thus, they can run on all nodes, not just nodes with an ID.\n */\n async (args) => {\n const {\n collection,\n context: context,\n currentDepth,\n depth,\n draft,\n fallbackLocale,\n fieldPromises,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n path,\n populate,\n populationPromises,\n req,\n schemaPath,\n showHiddenFields,\n triggerAccessControl,\n triggerHooks,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.afterRead?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.afterRead) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.afterRead?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n const flattenedNodes: SerializedLexicalNode[] = []\n\n recurseNodeTree({\n flattenedNodes,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n for (let node of flattenedNodes) {\n const afterReadHooks = finalSanitizedEditorConfig.features.nodeHooks?.afterRead\n const afterReadHooksForNode = afterReadHooks?.get(node.type)\n if (afterReadHooksForNode) {\n for (const hook of afterReadHooksForNode) {\n node = await hook({\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n locale: locale!,\n node,\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n populateArg: populate,\n populationPromises: populationPromises!,\n req,\n showHiddenFields: showHiddenFields!,\n triggerAccessControl: triggerAccessControl!,\n triggerHooks: triggerHooks!,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n\n if (subFields?.length) {\n afterReadTraverseFields({\n collection,\n context,\n currentDepth: currentDepth!,\n depth: depth!,\n doc: data,\n draft: draft!,\n fallbackLocale: fallbackLocale!,\n fieldPromises: fieldPromises!,\n fields: subFields,\n findMany: findMany!,\n flattenLocales: flattenLocales!,\n global,\n locale: locale!,\n overrideAccess: overrideAccess!,\n path,\n populate,\n populationPromises: populationPromises!,\n req,\n schemaPath,\n showHiddenFields: showHiddenFields!,\n siblingDoc: data,\n triggerAccessControl,\n triggerHooks,\n })\n }\n }\n }\n\n return value\n },\n ],\n beforeChange: [\n async (args) => {\n const {\n collection,\n context: _context,\n errors,\n field,\n global,\n mergeLocaleActions,\n operation,\n path,\n req,\n schemaPath,\n siblingData,\n siblingDocWithLocales,\n skipValidation,\n } = args\n let { value } = args\n\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeChange?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeChange) {\n value = await hook(args)\n }\n }\n\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n // TO-DO: We should not use context, as it is intended for external use only\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const context: any = _context\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n /**\n * Get the originalNodeIDMap from the beforeValidate hook, which is always run before this hook.\n */\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = context?.internal?.richText?.[path.join('.')]?.originalNodeIDMap\n\n if (!originalNodeIDMap || !Object.keys(originalNodeIDMap).length || !value) {\n return value\n }\n\n const originalNodeWithLocalesIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (field.name && siblingDocWithLocales?.[field.name]) {\n recurseNodeTree({\n nodeIDMap: originalNodeWithLocalesIDMap,\n nodes:\n (siblingDocWithLocales[field.name] as SerializedEditorState)?.root?.children ??\n [],\n })\n }\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeChangeHooks = finalSanitizedEditorConfig.features.nodeHooks?.beforeChange\n const beforeChangeHooksForNode = beforeChangeHooks?.get(node.type)\n if (beforeChangeHooksForNode) {\n for (const hook of beforeChangeHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeChange) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n errors: errors!,\n mergeLocaleActions: mergeLocaleActions!,\n node,\n operation: operation!,\n originalNode: originalNodeIDMap[id],\n originalNodeWithLocales: originalNodeWithLocalesIDMap[id],\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n skipValidation: skipValidation!,\n })\n }\n }\n\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n const originalDataWithLocales =\n subFieldDataFn({\n node: originalNodeWithLocalesIDMap[id],\n req,\n }) ?? {}\n\n if (subFields?.length) {\n await beforeChangeTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n docWithLocales: originalDataWithLocales ?? {},\n errors: errors!,\n fields: subFields,\n global,\n mergeLocaleActions: mergeLocaleActions!,\n operation: operation!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n siblingDocWithLocales: originalDataWithLocales ?? {},\n skipValidation,\n })\n }\n }\n }\n\n /**\n * within the beforeChange hook, id's may be re-generated.\n * Example:\n * 1. Seed data contains IDs for block feature blocks.\n * 2. Those are used in beforeValidate\n * 3. in beforeChange, those IDs are regenerated, because you cannot provide IDs during document creation. See baseIDField beforeChange hook for reasoning\n * 4. Thus, in order for all post-beforeChange hooks to receive the correct ID, we need to update the originalNodeIDMap with the new ID's, by regenerating the nodeIDMap.\n * The reason this is not generated for every hook, is to save on performance. We know we only really have to generate it in beforeValidate, which is the first hook,\n * and in beforeChange, which is where modifications to the provided IDs can occur.\n */\n const newOriginalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n const previousValue = siblingData[field.name!]\n\n recurseNodeTree({\n nodeIDMap: newOriginalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!context.internal.richText) {\n context.internal.richText = {}\n }\n context.internal.richText[path.join('.')] = {\n originalNodeIDMap: newOriginalNodeIDMap,\n }\n\n return value\n },\n ],\n beforeValidate: [\n async (args) => {\n const {\n collection,\n context,\n global,\n operation,\n overrideAccess,\n path,\n previousValue,\n req,\n schemaPath,\n } = args\n let { value } = args\n if (finalSanitizedEditorConfig?.features?.hooks?.beforeValidate?.length) {\n for (const hook of finalSanitizedEditorConfig.features.hooks.beforeValidate) {\n value = await hook(args)\n }\n }\n\n // return value if there are NO hooks\n if (\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.afterChange?.size &&\n !finalSanitizedEditorConfig.features.nodeHooks?.beforeChange?.size &&\n !finalSanitizedEditorConfig.features.getSubFields?.size\n ) {\n return value\n }\n\n /**\n * beforeValidate is the first field hook which runs. This is where we can create the node map, which can then be used in the other hooks.\n *\n */\n\n /**\n * flattenedNodes contains all nodes in the editor, in the order they appear in the editor. They will be used for the following hooks:\n * - afterRead\n *\n * The other hooks require nodes to have IDs, which is why those are ran only from the nodeIDMap. They require IDs because they have both doc/siblingDoc and data/siblingData, and\n * thus require a reliable way to match new node data to old node data. Given that node positions can change in between hooks, this is only reliably possible for nodes which are saved with\n * an ID.\n */\n //const flattenedNodes: SerializedLexicalNode[] = []\n\n /**\n * Only nodes with id's (so, nodes with hooks added to them) will be added to the nodeIDMap. They will be used for the following hooks:\n * - afterChange\n * - beforeChange\n * - beforeValidate\n *\n * Other hooks are handled by the flattenedNodes. All nodes in the nodeIDMap are part of flattenedNodes.\n */\n\n const originalNodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n\n recurseNodeTree({\n nodeIDMap: originalNodeIDMap,\n nodes: (previousValue as SerializedEditorState)?.root?.children ?? [],\n })\n\n if (!context.internal) {\n // Add to context, for other hooks to use\n context.internal = {}\n }\n if (!(context as any).internal.richText) {\n ;(context as any).internal.richText = {}\n }\n ;(context as any).internal.richText[path.join('.')] = {\n originalNodeIDMap,\n }\n\n /**\n * Now that the maps for all hooks are set up, we can run the validate hook\n */\n if (!finalSanitizedEditorConfig.features.nodeHooks?.beforeValidate?.size) {\n return value\n }\n const nodeIDMap: {\n [key: string]: SerializedLexicalNode\n } = {}\n recurseNodeTree({\n //flattenedNodes,\n nodeIDMap,\n nodes: (value as SerializedEditorState)?.root?.children ?? [],\n })\n\n // eslint-disable-next-line prefer-const\n for (let [id, node] of Object.entries(nodeIDMap)) {\n const beforeValidateHooks =\n finalSanitizedEditorConfig.features.nodeHooks.beforeValidate\n const beforeValidateHooksForNode = beforeValidateHooks?.get(node.type)\n if (beforeValidateHooksForNode) {\n for (const hook of beforeValidateHooksForNode) {\n if (!originalNodeIDMap[id]) {\n console.warn(\n '(beforeValidate) No original node found for node with id',\n id,\n 'node:',\n node,\n 'path',\n path.join('.'),\n )\n continue\n }\n node = await hook({\n context,\n node,\n operation,\n originalNode: originalNodeIDMap[id],\n overrideAccess: overrideAccess!,\n parentRichTextFieldPath: path,\n parentRichTextFieldSchemaPath: schemaPath,\n req,\n })\n }\n }\n const subFieldFn = finalSanitizedEditorConfig.features.getSubFields?.get(node.type)\n const subFieldDataFn = finalSanitizedEditorConfig.features.getSubFieldsData?.get(\n node.type,\n )\n\n if (subFieldFn && subFieldDataFn) {\n const subFields = subFieldFn({ node, req })\n const data = subFieldDataFn({ node, req }) ?? {}\n const originalData = subFieldDataFn({ node: originalNodeIDMap[id], req }) ?? {}\n\n if (subFields?.length) {\n await beforeValidateTraverseFields({\n id,\n collection,\n context,\n data,\n doc: originalData,\n fields: subFields,\n global,\n operation,\n overrideAccess: overrideAccess!,\n path,\n req,\n schemaPath,\n siblingData: data,\n siblingDoc: originalData,\n })\n }\n }\n }\n\n return value\n },\n ],\n },\n i18n: featureI18n,\n outputSchema: ({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n }) => {\n let outputSchema: JSONSchema4 = {\n // This schema matches the SerializedEditorState type so far, that it's possible to cast SerializedEditorState to this schema without any errors.\n // In the future, we should\n // 1) allow recursive children\n // 2) Pass in all the different types for every node added to the editorconfig. This can be done with refs in the schema.\n type: withNullableJSONSchemaType('object', isRequired),\n properties: {\n root: {\n type: 'object',\n additionalProperties: false,\n properties: {\n type: {\n type: 'string',\n },\n children: {\n type: 'array',\n items: {\n type: 'object',\n additionalProperties: true,\n properties: {\n type: {\n type: 'string',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['type', 'version'],\n },\n },\n direction: {\n oneOf: [\n {\n enum: ['ltr', 'rtl'],\n },\n {\n type: 'null',\n },\n ],\n },\n format: {\n type: 'string',\n enum: ['left', 'start', 'center', 'right', 'end', 'justify', ''], // ElementFormatType, since the root node is an element\n },\n indent: {\n type: 'integer',\n },\n version: {\n type: 'integer',\n },\n },\n required: ['children', 'direction', 'format', 'indent', 'type', 'version'],\n },\n },\n required: ['root'],\n }\n for (const modifyOutputSchema of finalSanitizedEditorConfig.features.generatedTypes\n .modifyOutputSchemas) {\n outputSchema = modifyOutputSchema({\n collectionIDFieldTypes,\n config,\n currentSchema: outputSchema,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n }\n\n return outputSchema\n },\n validate: richTextValidateHOC({\n editorConfig: finalSanitizedEditorConfig,\n }),\n }\n }\n}\n\nexport { AlignFeature } from './features/align/server/index.js'\nexport { BlockquoteFeature } from './features/blockquote/server/index.js'\nexport { BlocksFeature, type BlocksFeatureProps } from './features/blocks/server/index.js'\nexport { type BlockFields } from './features/blocks/server/nodes/BlocksNode.js'\n\nexport { LinebreakHTMLConverter } from './features/converters/html/converter/converters/linebreak.js'\nexport { ParagraphHTMLConverter } from './features/converters/html/converter/converters/paragraph.js'\n\nexport { TextHTMLConverter } from './features/converters/html/converter/converters/text.js'\nexport { defaultHTMLConverters } from './features/converters/html/converter/defaultConverters.js'\nexport {\n convertLexicalNodesToHTML,\n convertLexicalToHTML,\n} from './features/converters/html/converter/index.js'\n\nexport type { HTMLConverter } from './features/converters/html/converter/types.js'\nexport { consolidateHTMLConverters, lexicalHTML } from './features/converters/html/field/index.js'\nexport {\n HTMLConverterFeature,\n type HTMLConverterFeatureProps,\n} from './features/converters/html/index.js'\nexport { TestRecorderFeature } from './features/debug/testRecorder/server/index.js'\nexport { TreeViewFeature } from './features/debug/treeView/server/index.js'\nexport { EXPERIMENTAL_TableFeature } from './features/experimental_table/server/index.js'\nexport { BoldFeature } from './features/format/bold/feature.server.js'\nexport { InlineCodeFeature } from './features/format/inlineCode/feature.server.js'\nexport { ItalicFeature } from './features/format/italic/feature.server.js'\n\nexport { StrikethroughFeature } from './features/format/strikethrough/feature.server.js'\nexport { SubscriptFeature } from './features/format/subscript/feature.server.js'\nexport { SuperscriptFeature } from './features/format/superscript/feature.server.js'\nexport { UnderlineFeature } from './features/format/underline/feature.server.js'\nexport { HeadingFeature, type HeadingFeatureProps } from './features/heading/server/index.js'\nexport { HorizontalRuleFeature } from './features/horizontalRule/server/index.js'\nexport { IndentFeature } from './features/indent/server/index.js'\n\nexport { AutoLinkNode } from './features/link/nodes/AutoLinkNode.js'\n\nexport { LinkNode } from './features/link/nodes/LinkNode.js'\nexport type { LinkFields } from './features/link/nodes/types.js'\nexport { LinkFeature, type LinkFeatureServerProps } from './features/link/server/index.js'\nexport { ChecklistFeature } from './features/lists/checklist/server/index.js'\nexport { OrderedListFeature } from './features/lists/orderedList/server/index.js'\nexport { UnorderedListFeature } from './features/lists/unorderedList/server/index.js'\n\nexport type {\n SlateNode,\n SlateNodeConverter,\n} from './features/migrations/slateToLexical/converter/types.js'\n\nexport { ParagraphFeature } from './features/paragraph/server/index.js'\nexport {\n RelationshipFeature,\n type RelationshipFeatureProps,\n} from './features/relationship/server/index.js'\nexport {\n type RelationshipData,\n RelationshipServerNode,\n} from './features/relationship/server/nodes/RelationshipNode.js'\n\nexport { FixedToolbarFeature } from './features/toolbars/fixed/server/index.js'\nexport { InlineToolbarFeature } from './features/toolbars/inline/server/index.js'\n\nexport type { ToolbarGroup, ToolbarGroupItem } from './features/toolbars/types.js'\nexport type {\n BaseClientFeatureProps,\n ClientFeature,\n ClientFeatureProviderMap,\n FeatureProviderClient,\n FeatureProviderProviderClient,\n PluginComponent,\n PluginComponentWithAnchor,\n ResolvedClientFeature,\n ResolvedClientFeatureMap,\n SanitizedClientFeatures,\n SanitizedPlugin,\n} from './features/typesClient.js'\nexport type {\n AfterChangeNodeHook,\n AfterChangeNodeHookArgs,\n AfterReadNodeHook,\n AfterReadNodeHookArgs,\n BaseNodeHookArgs,\n BeforeChangeNodeHook,\n BeforeChangeNodeHookArgs,\n BeforeValidateNodeHook,\n BeforeValidateNodeHookArgs,\n FeatureProviderProviderServer,\n FeatureProviderServer,\n NodeValidation,\n NodeWithHooks,\n PopulationPromise,\n ResolvedServerFeature,\n ResolvedServerFeatureMap,\n SanitizedServerFeatures,\n ServerFeature,\n ServerFeatureProviderMap,\n} from './features/typesServer.js'\n\nexport { createNode } from './features/typeUtilities.js' // Only useful in feature.server.ts\n\nexport { UploadFeature } from './features/upload/server/feature.server.js'\n\nexport type { UploadFeatureProps } from './features/upload/server/feature.server.js'\nexport { type UploadData, UploadServerNode } from './features/upload/server/nodes/UploadNode.js'\n\nexport type { EditorConfigContextType } from './lexical/config/client/EditorConfigProvider.js'\nexport {\n defaultEditorConfig,\n defaultEditorFeatures,\n defaultEditorLexicalConfig,\n} from './lexical/config/server/default.js'\n\nexport { loadFeatures, sortFeaturesForOptimalLoading } from './lexical/config/server/loader.js'\nexport {\n sanitizeServerEditorConfig,\n sanitizeServerFeatures,\n} from './lexical/config/server/sanitize.js'\n\nexport type {\n ClientEditorConfig,\n SanitizedClientEditorConfig,\n SanitizedServerEditorConfig,\n ServerEditorConfig,\n} from './lexical/config/types.js'\nexport { getEnabledNodes, getEnabledNodesFromServerNodes } from './lexical/nodes/index.js'\nexport type { AdapterProps }\n\nexport type {\n SlashMenuGroup,\n SlashMenuItem,\n} from './lexical/plugins/SlashMenu/LexicalTypeaheadMenuPlugin/types.js'\n\nexport {\n DETAIL_TYPE_TO_DETAIL,\n DOUBLE_LINE_BREAK,\n ELEMENT_FORMAT_TO_TYPE,\n ELEMENT_TYPE_TO_FORMAT,\n IS_ALL_FORMATTING,\n LTR_REGEX,\n NodeFormat,\n NON_BREAKING_SPACE,\n RTL_REGEX,\n TEXT_MODE_TO_TYPE,\n TEXT_TYPE_TO_FORMAT,\n TEXT_TYPE_TO_MODE,\n} from './lexical/utils/nodeFormat.js'\nexport { sanitizeUrl, validateUrl } from './lexical/utils/url.js'\n\nexport type * from './nodeTypes.js'\n\nexport { defaultRichTextValue } from './populateGraphQL/defaultValue.js'\n\nexport { populate } from './populateGraphQL/populate.js'\nexport type { LexicalEditorProps, LexicalRichTextAdapter } from './types.js'\nexport { createServerFeature } from './utilities/createServerFeature.js'\n\nexport type { FieldsDrawerProps } from './utilities/fieldsDrawer/Drawer.js'\n\nexport { extractPropsFromJSXPropsString } from './utilities/jsx/extractPropsFromJSXPropsString.js'\nexport {\n extractFrontmatter,\n frontmatterToObject,\n objectToFrontmatter,\n propsToJSXString,\n} from './utilities/jsx/jsx.js'\nexport { $convertFromMarkdownString } from './utilities/jsx/lexicalMarkdownCopy.js'\nexport { upgradeLexicalData } from './utilities/upgradeLexicalData/index.js'\n"],"mappings":"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","ignoreList":[]}
@@ -44,10 +44,10 @@ export const LexicalProvider = props => {
44
44
  throw new Error('The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' + JSON.stringify(value));
45
45
  }
46
46
  if (value && Array.isArray(value) && !('root' in value)) {
47
- throw new Error('You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended');
47
+ throw new Error('You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended');
48
48
  }
49
49
  if (value && 'jsonContent' in value) {
50
- throw new Error('You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical');
50
+ throw new Error('You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical');
51
51
  }
52
52
  return {
53
53
  editable: readOnly !== true,
@@ -1 +1 @@
1
- {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({\n children,\n providers,\n}: {\n children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n providers: any[]\n}) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig that depends on readOnly and value\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/beta/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/beta/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,eAAe,QAAQ;AAChC,YAAYC,KAAA,MAAW;AACvB,SAASC,OAAO,QAAQ;AAKxB,SACEC,oBAAoB,EACpBC,sBAAsB,QACjB;AACP,SAASC,aAAA,IAAiBC,sBAAsB,QAAQ;AACxD,SAASC,eAAe,QAAQ;AAWhC,MAAMC,aAAA,GAAgBA,CAAC;EACrBC,QAAQ;EACRC;AAAS,CAKV;EACC,IAAI,CAACA,SAAA,EAAWC,MAAA,EAAQ;IACtB,OAAOF,QAAA;EACT;EACA,MAAMG,SAAA,GAAYF,SAAS,CAAC,EAAE;EAC9B,IAAIA,SAAA,CAAUC,MAAM,GAAG,GAAG;IACxB,oBACEE,IAAA,CAACD,SAAA;gBACC,aAAAC,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWA,SAAA,CAAUI,KAAK,CAAC;kBAAKL;;;EAGrD;EACA,oBAAOI,IAAA,CAACD,SAAA;cAAWH;;AACrB;AAEA,OAAO,MAAMM,eAAA,GAAmDC,KAAA;EAC9D,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGN,KAAA;EAE7E,MAAMO,aAAA,GAAgBnB,sBAAA;EAEtB,MAAMoB,kBAAA,GAAqBvB,KAAA,CAAMwB,MAAM,CAAiB;EAExD;EACA,MAAMC,aAAA,GAAgBxB,OAAA,CAA2B;IAC/C,IAAIoB,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;MACtC,MAAM,IAAIK,KAAA,CACR,kLACEC,IAAA,CAAKC,SAAS,CAACP,KAAA;IAErB;IAEA,IAAIA,KAAA,IAASQ,KAAA,CAAMC,OAAO,CAACT,KAAA,KAAU,EAAE,UAAUA,KAAI,GAAI;MACvD,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,IAAIL,KAAA,IAAS,iBAAiBA,KAAA,EAAO;MACnC,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,OAAO;MACLK,QAAA,EAAUX,QAAA,KAAa;MACvBY,WAAA,EAAaX,KAAA,IAAS,OAAOM,IAAA,CAAKC,SAAS,CAACP,KAAA,IAASY,SAAA;MACrDC,SAAA,EAAWjB,YAAA,CAAakB,OAAO,CAACD,SAAS;MACzCE,KAAA,EAAO9B,eAAA,CAAgB;QAAEW;MAAa;MACtCoB,OAAA,EAAUC,KAAA;QACR,MAAMA,KAAA;MACR;MACAC,KAAA,EAAOtB,YAAA,CAAakB,OAAO,CAACI;IAC9B;IACA;IACA;EACF,GAAG,CAACtB,YAAA,CAAa;EAEjB,IAAI,CAACQ,aAAA,EAAe;IAClB,oBAAOb,IAAA,CAAC;gBAAE;;EACZ;EAEA;EACA;EACA,oBACEA,IAAA,CAACb,eAAA;IAAgB0B,aAAA,EAAeA,aAAA;cAC9B,aAAAb,IAAA,CAACV,oBAAA;MACCe,YAAA,EAAcA,YAAA;MACdM,kBAAA,EAAoBA,kBAAA;MACpBL,UAAA,EAAYA,UAAA;MACZI,aAAA,EAAeA,aAAA;gBAEf,aAAAV,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWQ,YAAA,CAAauB,QAAQ,CAAC/B,SAAS;kBACvD,aAAAG,IAAA,CAACP,sBAAA;UACCY,YAAA,EAAcA,YAAA;UACdM,kBAAA,EAAoBA,kBAAA;UACpBJ,QAAA,EAAUA;;;;KAXkCH,WAAA,GAAcS,aAAA,CAAcM,QAAQ;AAiB5F","ignoreList":[]}
1
+ {"version":3,"file":"LexicalProvider.js","names":["LexicalComposer","React","useMemo","EditorConfigProvider","useEditorConfigContext","LexicalEditor","LexicalEditorComponent","getEnabledNodes","NestProviders","children","providers","length","Component","_jsx","slice","LexicalProvider","props","composerKey","editorConfig","fieldProps","onChange","readOnly","value","parentContext","editorContainerRef","useRef","initialConfig","Error","JSON","stringify","Array","isArray","editable","editorState","undefined","namespace","lexical","nodes","onError","error","theme","features"],"sources":["../../src/lexical/LexicalProvider.tsx"],"sourcesContent":["'use client'\nimport type { InitialConfigType } from '@lexical/react/LexicalComposer.js'\nimport type { EditorState, LexicalEditor, SerializedEditorState } from 'lexical'\nimport type { ClientField } from 'payload'\n\nimport { LexicalComposer } from '@lexical/react/LexicalComposer.js'\nimport * as React from 'react'\nimport { useMemo } from 'react'\n\nimport type { LexicalRichTextFieldProps } from '../types.js'\nimport type { SanitizedClientEditorConfig } from './config/types.js'\n\nimport {\n EditorConfigProvider,\n useEditorConfigContext,\n} from './config/client/EditorConfigProvider.js'\nimport { LexicalEditor as LexicalEditorComponent } from './LexicalEditor.js'\nimport { getEnabledNodes } from './nodes/index.js'\n\nexport type LexicalProviderProps = {\n composerKey: string\n editorConfig: SanitizedClientEditorConfig\n fieldProps: LexicalRichTextFieldProps\n onChange: (editorState: EditorState, editor: LexicalEditor, tags: Set<string>) => void\n readOnly: boolean\n value: SerializedEditorState\n}\n\nconst NestProviders = ({\n children,\n providers,\n}: {\n children: React.ReactNode\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n providers: any[]\n}) => {\n if (!providers?.length) {\n return children\n }\n const Component = providers[0]\n if (providers.length > 1) {\n return (\n <Component>\n <NestProviders providers={providers.slice(1)}>{children}</NestProviders>\n </Component>\n )\n }\n return <Component>{children}</Component>\n}\n\nexport const LexicalProvider: React.FC<LexicalProviderProps> = (props) => {\n const { composerKey, editorConfig, fieldProps, onChange, readOnly, value } = props\n\n const parentContext = useEditorConfigContext()\n\n const editorContainerRef = React.useRef<HTMLDivElement>(null)\n\n // useMemo for the initialConfig that depends on readOnly and value\n const initialConfig = useMemo<InitialConfigType>(() => {\n if (value && typeof value !== 'object') {\n throw new Error(\n 'The value passed to the Lexical editor is not an object. This is not supported. Please remove the data from the field and start again. This is the value that was passed in: ' +\n JSON.stringify(value),\n )\n }\n\n if (value && Array.isArray(value) && !('root' in value)) {\n throw new Error(\n 'You have tried to pass in data from the old Slate editor to the new Lexical editor. The data structure is different, thus you will have to migrate your data. We offer a one-line migration script which migrates all your rich text fields: https://payloadcms.com/docs/lexical/migration#migration-via-migration-script-recommended',\n )\n }\n\n if (value && 'jsonContent' in value) {\n throw new Error(\n 'You have tried to pass in data from payload-plugin-lexical. The data structure is different, thus you will have to migrate your data. Migration guide: https://payloadcms.com/docs/lexical/migration#migrating-from-payload-plugin-lexical',\n )\n }\n\n return {\n editable: readOnly !== true,\n editorState: value != null ? JSON.stringify(value) : undefined,\n namespace: editorConfig.lexical.namespace,\n nodes: getEnabledNodes({ editorConfig }),\n onError: (error: Error) => {\n throw error\n },\n theme: editorConfig.lexical.theme,\n }\n // Important: do not add readOnly and value to the dependencies array. This will cause the entire lexical editor to re-render if the document is saved, which will\n // cause the editor to lose focus.\n }, [editorConfig])\n\n if (!initialConfig) {\n return <p>Loading...</p>\n }\n\n // We need to add initialConfig.editable to the key to force a re-render when the readOnly prop changes.\n // Without it, there were cases where lexical editors inside drawers turn readOnly initially - a few miliseconds later they turn editable, but the editor does not re-render and stays readOnly.\n return (\n <LexicalComposer initialConfig={initialConfig} key={composerKey + initialConfig.editable}>\n <EditorConfigProvider\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n fieldProps={fieldProps}\n parentContext={parentContext}\n >\n <NestProviders providers={editorConfig.features.providers}>\n <LexicalEditorComponent\n editorConfig={editorConfig}\n editorContainerRef={editorContainerRef}\n onChange={onChange}\n />\n </NestProviders>\n </EditorConfigProvider>\n </LexicalComposer>\n )\n}\n"],"mappings":"AAAA;;;AAKA,SAASA,eAAe,QAAQ;AAChC,YAAYC,KAAA,MAAW;AACvB,SAASC,OAAO,QAAQ;AAKxB,SACEC,oBAAoB,EACpBC,sBAAsB,QACjB;AACP,SAASC,aAAA,IAAiBC,sBAAsB,QAAQ;AACxD,SAASC,eAAe,QAAQ;AAWhC,MAAMC,aAAA,GAAgBA,CAAC;EACrBC,QAAQ;EACRC;AAAS,CAKV;EACC,IAAI,CAACA,SAAA,EAAWC,MAAA,EAAQ;IACtB,OAAOF,QAAA;EACT;EACA,MAAMG,SAAA,GAAYF,SAAS,CAAC,EAAE;EAC9B,IAAIA,SAAA,CAAUC,MAAM,GAAG,GAAG;IACxB,oBACEE,IAAA,CAACD,SAAA;gBACC,aAAAC,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWA,SAAA,CAAUI,KAAK,CAAC;kBAAKL;;;EAGrD;EACA,oBAAOI,IAAA,CAACD,SAAA;cAAWH;;AACrB;AAEA,OAAO,MAAMM,eAAA,GAAmDC,KAAA;EAC9D,MAAM;IAAEC,WAAW;IAAEC,YAAY;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGN,KAAA;EAE7E,MAAMO,aAAA,GAAgBnB,sBAAA;EAEtB,MAAMoB,kBAAA,GAAqBvB,KAAA,CAAMwB,MAAM,CAAiB;EAExD;EACA,MAAMC,aAAA,GAAgBxB,OAAA,CAA2B;IAC/C,IAAIoB,KAAA,IAAS,OAAOA,KAAA,KAAU,UAAU;MACtC,MAAM,IAAIK,KAAA,CACR,kLACEC,IAAA,CAAKC,SAAS,CAACP,KAAA;IAErB;IAEA,IAAIA,KAAA,IAASQ,KAAA,CAAMC,OAAO,CAACT,KAAA,KAAU,EAAE,UAAUA,KAAI,GAAI;MACvD,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,IAAIL,KAAA,IAAS,iBAAiBA,KAAA,EAAO;MACnC,MAAM,IAAIK,KAAA,CACR;IAEJ;IAEA,OAAO;MACLK,QAAA,EAAUX,QAAA,KAAa;MACvBY,WAAA,EAAaX,KAAA,IAAS,OAAOM,IAAA,CAAKC,SAAS,CAACP,KAAA,IAASY,SAAA;MACrDC,SAAA,EAAWjB,YAAA,CAAakB,OAAO,CAACD,SAAS;MACzCE,KAAA,EAAO9B,eAAA,CAAgB;QAAEW;MAAa;MACtCoB,OAAA,EAAUC,KAAA;QACR,MAAMA,KAAA;MACR;MACAC,KAAA,EAAOtB,YAAA,CAAakB,OAAO,CAACI;IAC9B;IACA;IACA;EACF,GAAG,CAACtB,YAAA,CAAa;EAEjB,IAAI,CAACQ,aAAA,EAAe;IAClB,oBAAOb,IAAA,CAAC;gBAAE;;EACZ;EAEA;EACA;EACA,oBACEA,IAAA,CAACb,eAAA;IAAgB0B,aAAA,EAAeA,aAAA;cAC9B,aAAAb,IAAA,CAACV,oBAAA;MACCe,YAAA,EAAcA,YAAA;MACdM,kBAAA,EAAoBA,kBAAA;MACpBL,UAAA,EAAYA,UAAA;MACZI,aAAA,EAAeA,aAAA;gBAEf,aAAAV,IAAA,CAACL,aAAA;QAAcE,SAAA,EAAWQ,YAAA,CAAauB,QAAQ,CAAC/B,SAAS;kBACvD,aAAAG,IAAA,CAACP,sBAAA;UACCY,YAAA,EAAcA,YAAA;UACdM,kBAAA,EAAoBA,kBAAA;UACpBJ,QAAA,EAAUA;;;;KAXkCH,WAAA,GAAcS,aAAA,CAAcM,QAAQ;AAiB5F","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"initLexicalFeatures.d.ts","sourceRoot":"","sources":["../../src/utilities/initLexicalFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACpF,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,2BAA2B,CAAA;IAClD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG;IAC/C,cAAc,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAA;IAC3D,sBAAsB,EAAE,sBAAsB,CAAA;CAC/C,CA4HA"}
1
+ {"version":3,"file":"initLexicalFeatures.d.ts","sourceRoot":"","sources":["../../src/utilities/initLexicalFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAsB,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAA;AAI/E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AACpF,KAAK,IAAI,GAAG;IACV,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,qBAAqB,EAAE,2BAA2B,CAAA;IAClD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG;IAC/C,cAAc,EAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAA;IAC3D,sBAAsB,EAAE,sBAAsB,CAAA;CAC/C,CAyHA"}