Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@lexical/yjs

Package Overview
Dependencies
Maintainers
2
Versions
213
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lexical/yjs - npm Package Compare versions

Comparing version 0.1.5 to 0.1.6

105

index.js

@@ -1,54 +0,59 @@

'use strict';var t=require("yjs"),w=require("lexical"),aa=require("lexical/ParagraphNode");
class z{constructor(a,b,c,d){this._key="";this._map=a;this._parent=c;this._text=b;this._type=d;this._normalized=!1}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return w.$isTextNode(a)?a:null}getNode(){const a=w.$getNodeByKey(this._key);return w.$isTextNode(a)?a:null}getSharedType(){return this._map}getType(){return this._type}getKey(){return this._key}getSize(){return this._text.length+(this._normalized?0:1)}getOffset(){return this._parent.getChildOffset(this)}spliceText(a,b,c){const d=
this._parent._xmlText;a=this.getOffset()+1+a;0!==b&&d.delete(a,b);""!==c&&d.insert(a,c)}syncPropertiesAndTextFromLexical(a,b,c){var d=this.getPrevNode(c);c=b.__text;B(a,this._map,d,b);if(null!==d&&(a=d.__text,a!==c)){d=b.__key;b=a;var e=w.$getSelection();a=c.length;null!==e&&e.isCollapsed()&&(e=e.anchor,e.key===d&&(a=e.offset));const f=b.length;d=c.length;let g=e=0;for(;e<f&&e<d&&b[e]===c[e]&&e<a;)e++;for(;g+e<f&&g+e<d&&b[f-g-1]===c[d-g-1];)g++;for(;g+e<f&&g+e<d&&b[e]===c[e];)e++;b=e;a=f-e-g;d=c.slice(e,
'use strict';var m=require("yjs"),v=require("lexical");
class z{constructor(a,b,c,d){this._key="";this._map=a;this._parent=c;this._text=b;this._type=d;this._normalized=!1}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return v.$isTextNode(a)?a:null}getNode(){const a=v.$getNodeByKey(this._key);return v.$isTextNode(a)?a:null}getSharedType(){return this._map}getType(){return this._type}getKey(){return this._key}getSize(){return this._text.length+(this._normalized?0:1)}getOffset(){return this._parent.getChildOffset(this)}spliceText(a,b,c){const d=
this._parent._xmlText;a=this.getOffset()+1+a;0!==b&&d.delete(a,b);""!==c&&d.insert(a,c)}syncPropertiesAndTextFromLexical(a,b,c){var d=this.getPrevNode(c);c=b.__text;B(a,this._map,d,b);if(null!==d&&(a=d.__text,a!==c)){d=b.__key;b=a;var e=v.$getSelection();a=c.length;null!==e&&e.isCollapsed()&&(e=e.anchor,e.key===d&&(a=e.offset));const f=b.length;d=c.length;let g=e=0;for(;e<f&&e<d&&b[e]===c[e]&&e<a;)e++;for(;g+e<f&&g+e<d&&b[f-g-1]===c[d-g-1];)g++;for(;g+e<f&&g+e<d&&b[e]===c[e];)e++;b=e;a=f-e-g;d=c.slice(e,
d-g);this.spliceText(b,a,d);this._text=c}}syncPropertiesAndTextFromYjs(a,b){const c=this.getNode();if(null===c)throw Error("Should never happen");C(a,this._map,c,b);a=this._text;c.__text!==a&&(c.getWritable().__text=a)}destroy(a){a.collabNodeMap.delete(this._key)}}function D(a,b,c,d){b=new z(a,b,c,d);return a._collabNode=b}
class F{constructor(a,b){this._key="";this._map=a;this._parent=b;this._type="linebreak"}getNode(){const a=w.$getNodeByKey(this._key);return w.$isLineBreakNode(a)?a:null}getKey(){return this._key}getSharedType(){return this._map}getType(){return this._type}getSize(){return 1}getOffset(){return this._parent.getChildOffset(this)}destroy(a){a.collabNodeMap.delete(this._key)}}function G(a,b){b=new F(a,b);return a._collabNode=b}
function H(a){throw Error(`Minified Lexical error #${a}; see codes.json for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}function I(a,b,c,d){const e=c.observe(f=>{J(a,()=>L(a,b,c,c._map,d,f))});b._unobservers.add(e)}
function L(a,b,c,d,e,f){const g=d.get(f);d=e.get(f);if(g!==d)if(w.isDecoratorMap(g))void 0===d&&(d=new t.Map,d._lexicalValue=g,d._collabNode=b,d.set("type","map"),e.set(f,d),I(a,b,c,e)),M(a,b,g,d);else if(w.isDecoratorEditor(g)){let h;void 0===d&&(d=new t.Map,d._lexicalValue=g,d._collabNode=b,h=new t.Doc,d.set("doc",h),d.set("type","editor"),e.set(f,d));h=h||d.get("doc");b=d.get("id");c=g.id;b!==c&&(a=a.docMap,a.delete(b),d.set("id",c),a.set(c,h))}else e.set(f,g)}
function M(a,b,c,d){const e=c._map,f=Array.from(e.keys());for(let g=0;g<f.length;g++)L(a,b,c,e,d,f[g])}
function N(a,b,c,d,e){const f=d._map;e=null===e?Array.from(c.keys()):Array.from(e);for(let p=0;p<e.length;p++){var g=a,h=b,n=c,k=d,l=f,q=e[p],r=l.get(q);const m=n.get(q);r!==m&&(m instanceof t.Map?(r=m.get("type"),k=m._lexicalValue,"editor"===r?void 0===k&&(g=g.docMap,n=m.get("id"),r=m.get("doc"),k=w.createDecoratorEditor(n),m._lexicalValue=k,m._collabNode=h,g.set(n,r),l.set(q,k)):"map"===r?(void 0===k&&(k=w.createDecoratorMap(g.editor),I(g,h,k,n),m._lexicalValue=k,m._collabNode=h,l.set(q,k)),N(g,
h,m,k,null)):H(48)):k.set(q,m))}}
class O{constructor(a,b,c){this._key="";this._xmlElem=a;this._parent=b;this._type=c;this._unobservers=new Set}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return w.$isDecoratorNode(a)?a:null}getNode(){const a=w.$getNodeByKey(this._key);return w.$isDecoratorNode(a)?a:null}getSharedType(){return this._xmlElem}getType(){return this._type}getKey(){return this._key}getSize(){return 1}getOffset(){return this._parent.getChildOffset(this)}syncPropertiesFromLexical(a,b,c){const d=this.getPrevNode(c);
c=this._xmlElem;const e=null===d?null:d.__state,f=b.__state;B(a,c,d,b);e!==f&&(b=new t.Map,c.insert(0,[b]),b._lexicalValue=f,b._collabNode=this,M(a,this,f,b),I(a,this,f,b))}syncPropertiesFromYjs(a,b){const c=this.getNode();if(null===c)throw Error("Should never happen");const d=this._xmlElem,e=d.firstChild,f=c.__state;e._lexicalValue=f;e._collabNode=this;C(a,d,c,b);N(a,this,e,f,null);I(a,this,f,e)}destroy(a){a.collabNodeMap.delete(this._key);this._unobservers.forEach(b=>b());this._unobservers.clear()}}
function P(a,b,c){b=new O(a,b,c);return a._collabNode=b}const R=new Set("__key __children __parent __cachedText __text __state".split(" "));function S(a){a=w.$getNodeByKey(a);if(null===a)throw Error("Should never happen");return a}
function T(a,b,c){const d=b.__type;if(w.$isElementNode(b)){var e=new t.XmlText;c=U(e,c,d);c.syncPropertiesFromLexical(a,b,null);c.syncChildrenFromLexical(a,b,null,null,null)}else if(w.$isTextNode(b))e=new t.Map,c=D(e,b.__text,c,d),c.syncPropertiesAndTextFromLexical(a,b,null);else if(w.$isLineBreakNode(b))a=new t.Map,a.set("__type","linebreak"),c=G(a,c);else if(w.$isDecoratorNode(b))e=new t.XmlElement,c=P(e,c,d),c.syncPropertiesFromLexical(a,b,null);else throw Error("Should never happen");c._key=b.__key;
return c}
function V(a,b,c){const d=b._collabNode;if(void 0===d){var e=a.editor._registeredNodes;const f=b instanceof t.Map?b.get("__type"):b.getAttribute("__type");if(null==f)throw Error("Should never happen");if(void 0===e.get(f))throw Error("Should never happen");e=b.parent;a=void 0===c&&null!==e?V(a,e):c||null;if(!(a instanceof W))throw Error("Should never happen");if(b instanceof t.XmlText)return U(b,a,f);if(b instanceof t.Map){if(null===a)throw Error("Should never happen");return"linebreak"===f?G(b,a):
D(b,"",a,f)}if(b instanceof t.XmlElement)return P(b,a,f)}return d}function C(a,b,c,d){a=null===d?b instanceof t.Map?Array.from(b.keys()):Object.keys(b.getAttributes()):Array.from(d);let e;for(d=0;d<a.length;d++){const f=a[d];if(R.has(f))continue;const g=c[f],h=b instanceof t.Map?b.get(f):b.getAttribute(f);g!==h&&(void 0===e&&(e=c.getWritable()),e[f]=h)}}
function B(a,b,c,d){var e=d.__type,f=a.nodeProperties;a=f.get(e);void 0===a&&(a=Object.keys(d).filter(g=>!R.has(g)),f.set(e,a));for(e=0;e<a.length;e++){f=a[e];const g=d[f];(null===c?void 0:c[f])!==g&&(b instanceof t.Map?b.set(f,g):b.setAttribute(f,g))}}
class E{constructor(a,b){this._key="";this._map=a;this._parent=b;this._type="linebreak"}getNode(){const a=v.$getNodeByKey(this._key);return v.$isLineBreakNode(a)?a:null}getKey(){return this._key}getSharedType(){return this._map}getType(){return this._type}getSize(){return 1}getOffset(){return this._parent.getChildOffset(this)}destroy(a){a.collabNodeMap.delete(this._key)}}function F(a,b){b=new E(a,b);return a._collabNode=b}
function G(a){throw Error(`Minified Lexical error #${a}; see codes.json for the full message or `+"use the non-minified dev environment for full errors and additional helpful warnings.");}let I=!1;function J(a){const b=I;try{I=!0,a()}finally{I=b}}function K(a,b,c,d){const e=c.observe(f=>{I||L(a,()=>M(a,b,c._map,d,f))});b._unobservers.add(e)}function N(a,b,c,d){const e=c.observe((f,g)=>{I||L(a,()=>{0<g&&d.delete(f,g);aa(a,b,c._array,d,f)})});b._unobservers.add(e)}
function M(a,b,c,d,e){const f=c.get(e);c=d.get(e);if(f!==c)if(v.isDecoratorMap(f))void 0===c&&(c=new m.Map,c._lexicalValue=f,c._collabNode=b,c.set("type","map"),d.set(e,c),K(a,b,f,c)),P(a,b,f,c);else if(v.isDecoratorEditor(f)){let g;void 0===c&&(c=new m.Map,c._lexicalValue=f,c._collabNode=b,g=new m.Doc,c.set("doc",g),c.set("type","editor"),d.set(e,c));g=g||c.get("doc");b=c.get("id");d=f.id;b!==d&&(a=a.docMap,a.delete(b),c.set("id",d),a.set(d,g))}else v.isDecoratorArray(f)?(void 0===c&&(c=new m.Array,
c._lexicalValue=f,c._collabNode=b,d.set(e,c),N(a,b,f,c)),ba(a,b,f,c)):((v.isDecoratorArray(c)||v.isDecoratorMap(c))&&c.destroy(),d.set(e,f))}
function aa(a,b,c,d,e){const f=c[e];c=d.get(e);if(f!==c)if(v.isDecoratorMap(f))void 0===c&&(c=new m.Map,c._lexicalValue=f,c._collabNode=b,c.set("type","map"),d.insert(e,[c]),K(a,b,f,c)),P(a,b,f,c);else if(v.isDecoratorEditor(f)){let g;void 0===c&&(c=new m.Map,c._lexicalValue=f,c._collabNode=b,g=new m.Doc,c.set("doc",g),c.set("type","editor"),d.insert(e,[c]));g=g||c.get("doc");b=c.get("id");d=f.id;b!==d&&(a=a.docMap,a.delete(b),c.set("id",d),a.set(d,g))}else v.isDecoratorArray(f)?(void 0===c&&(c=new m.Array,
c._lexicalValue=f,c._collabNode=b,d.insert(e,[c]),N(a,b,f,c)),ba(a,b,f,c)):d.insert(e,[f])}function P(a,b,c,d){c=c._map;const e=Array.from(c.keys());for(let f=0;f<e.length;f++)M(a,b,c,d,e[f])}function ba(a,b,c,d){c=c._array;for(let e=0;e<c.length;e++)aa(a,b,c,d,e)}
function ca(a,b,c,d,e){var f=d.get(e);const g=c.get(e);if(f!==g){let h=g._lexicalValue;g instanceof m.Map?(c=g.get("type"),"editor"===c?void 0===h&&(a=a.docMap,c=g.get("id"),f=g.get("doc"),h=v.createDecoratorEditor(c),g._lexicalValue=h,g._collabNode=b,a.set(c,f),J(()=>d.set(e,h))):"map"===c?(void 0===h&&(h=v.createDecoratorMap(a.editor),K(a,b,h,g),g._lexicalValue=h,g._collabNode=b,J(()=>d.set(e,h))),Q(a,b,g,h,null)):G(48)):g instanceof m.Array?(void 0===h&&(h=v.createDecoratorArray(a.editor),N(a,
b,h,g),g._lexicalValue=h,g._collabNode=b,J(()=>d.set(e,h))),da(a,b,g,h)):J(()=>d.set(e,g))}}
function ea(a,b,c,d,e){var f=d._array[e];const g=c.get(e);if(f!==g){let h=g._lexicalValue;g instanceof m.Map?(c=g.get("type"),"editor"===c?void 0===h&&(a=a.docMap,c=g.get("id"),f=g.get("doc"),h=v.createDecoratorEditor(c),g._lexicalValue=h,g._collabNode=b,a.set(c,f),J(()=>d.splice(e,0,h))):"map"===c?(void 0===h&&(h=v.createDecoratorMap(a.editor),K(a,b,h,g),g._lexicalValue=h,g._collabNode=b,J(()=>d.splice(e,0,h))),Q(a,b,g,h,null)):G(48)):g instanceof m.Array?(void 0===h&&(h=v.createDecoratorArray(a.editor),
N(a,b,h,g),g._lexicalValue=h,g._collabNode=b,J(()=>d.splice(e,0,h))),da(a,b,g,h)):J(()=>d.splice(e,0,g))}}function da(a,b,c,d){const e=Math.max(c.length,d.length);for(let f=0;f<e;f++)ea(a,b,c,d,f)}function Q(a,b,c,d,e){e=null===e?Array.from(c.keys()):Array.from(e);for(let f=0;f<e.length;f++)ca(a,b,c,d,e[f])}
class R{constructor(a,b,c){this._key="";this._xmlElem=a;this._parent=b;this._type=c;this._unobservers=new Set}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return v.$isDecoratorNode(a)?a:null}getNode(){const a=v.$getNodeByKey(this._key);return v.$isDecoratorNode(a)?a:null}getSharedType(){return this._xmlElem}getType(){return this._type}getKey(){return this._key}getSize(){return 1}getOffset(){return this._parent.getChildOffset(this)}syncPropertiesFromLexical(a,b,c){const d=this.getPrevNode(c);
c=this._xmlElem;const e=null===d?null:d.__state,f=b.__state;B(a,c,d,b);e!==f&&(b=new m.Map,c.insert(0,[b]),b._lexicalValue=f,b._collabNode=this,P(a,this,f,b),K(a,this,f,b))}syncPropertiesFromYjs(a,b){const c=this.getNode();if(null===c)throw Error("Should never happen");const d=this._xmlElem,e=d.firstChild,f=c.__state;e._lexicalValue=f;e._collabNode=this;C(a,d,c,b);Q(a,this,e,f,null);K(a,this,f,e)}destroy(a){a.collabNodeMap.delete(this._key);this._unobservers.forEach(b=>b());this._unobservers.clear()}}
function fa(a,b,c){b=new R(a,b,c);return a._collabNode=b}const ha=new Set("__key __children __parent __cachedText __text __state".split(" "));function S(a){a=v.$getNodeByKey(a);if(null===a)throw Error("Should never happen");return a}
function ia(a,b,c){const d=b.__type;if(v.$isElementNode(b)){var e=new m.XmlText;c=T(e,c,d);c.syncPropertiesFromLexical(a,b,null);c.syncChildrenFromLexical(a,b,null,null,null)}else if(v.$isTextNode(b))e=new m.Map,c=D(e,b.__text,c,d),c.syncPropertiesAndTextFromLexical(a,b,null);else if(v.$isLineBreakNode(b))a=new m.Map,a.set("__type","linebreak"),c=F(a,c);else if(v.$isDecoratorNode(b))e=new m.XmlElement,c=fa(e,c,d),c.syncPropertiesFromLexical(a,b,null);else throw Error("Should never happen");c._key=
b.__key;return c}
function U(a,b,c){const d=b._collabNode;if(void 0===d){var e=a.editor._registeredNodes;const f=b instanceof m.Map?b.get("__type"):b.getAttribute("__type");if(null==f)throw Error("Should never happen");if(void 0===e.get(f))throw Error("Should never happen");e=b.parent;a=void 0===c&&null!==e?U(a,e):c||null;if(!(a instanceof V))throw Error("Should never happen");if(b instanceof m.XmlText)return T(b,a,f);if(b instanceof m.Map){if(null===a)throw Error("Should never happen");return"linebreak"===f?F(b,a):
D(b,"",a,f)}if(b instanceof m.XmlElement)return fa(b,a,f)}return d}function C(a,b,c,d){a=null===d?b instanceof m.Map?Array.from(b.keys()):Object.keys(b.getAttributes()):Array.from(d);let e;for(d=0;d<a.length;d++){const f=a[d];if(ha.has(f))continue;const g=c[f],h=b instanceof m.Map?b.get(f):b.getAttribute(f);g!==h&&(void 0===e&&(e=c.getWritable()),e[f]=h)}}
function B(a,b,c,d){var e=d.__type,f=a.nodeProperties;a=f.get(e);void 0===a&&(a=Object.keys(d).filter(g=>!ha.has(g)),f.set(e,a));for(e=0;e<a.length;e++){f=a[e];const g=d[f];(null===c?void 0:c[f])!==g&&(b instanceof m.Map?b.set(f,g):b.setAttribute(f,g))}}
function X(a,b,c){let d=0,e=0;const f=a._children,g=f.length;for(;e<g;e++){a=f[e];const h=d,n=a.getSize();d+=n;if((c?d>=b:d>b)&&a instanceof z)return b=b-h-1,0>b&&(b=0),{node:a,nodeIndex:e,offset:b,length:n-b};if(d>b)return{node:a,nodeIndex:e,offset:h,length:0};if(e===g-1)return{node:null,nodeIndex:e+1,offset:h+1,length:0}}return{node:null,nodeIndex:0,offset:0,length:0}}
function ba(a){const b=a.anchor;a=a.focus;let c=!1;try{const d=b.getNode(),e=a.getNode();if(!d.isAttached()||!e.isAttached()||w.$isTextNode(d)&&b.offset>d.getTextContentSize()||w.$isTextNode(e)&&a.offset>e.getTextContentSize())c=!0}catch(d){c=!0}return c}function J(a,b){a.doc.transact(b,a)}
class W{constructor(a,b,c){this._key="";this._children=[];this._xmlText=a;this._type=c;this._parent=b}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return w.$isElementNode(a)?a:null}getNode(){const a=w.$getNodeByKey(this._key);return w.$isElementNode(a)?a:null}getSharedType(){return this._xmlText}getType(){return this._type}getKey(){return this._key}isEmpty(){return 0===this._children.length}getSize(){return 1}getOffset(){const a=this._parent;if(null===a)throw Error("Should never happen");
return a.getChildOffset(this)}syncPropertiesFromYjs(a,b){const c=this.getNode();if(null===c)throw this.getNode(),Error("Should never happen");C(a,this._xmlText,c,b)}applyChildrenYjsDelta(a,b){const c=this._children;let d=0;for(let k=0;k<b.length;k++){var e=b[k],f=e.insert,g=e.delete;if(null!=e.retain)d+=e.retain;else if("number"===typeof g)for(f=g;0<f;){const {node:l,nodeIndex:q,offset:r,length:p}=X(this,d,!1);if(l instanceof W||l instanceof F||l instanceof O)c.splice(q,1),--f;else if(l instanceof
z){e=Math.min(f,p);g=0!==q?c[q-1]:null;var h=l.getSize();if(0===r&&1===e&&0<q&&g instanceof z&&p===h)g._text+=l._text,c.splice(q,1);else if(0===r&&e===h)c.splice(q,1);else{g=l._text;h=r;var n=e;g=g.slice(0,h)+""+g.slice(h+n);l._text=g}f-=e}else break}else if(null!=f)if("string"===typeof f){const {node:l,offset:q}=X(this,d,!0);l instanceof z?(e=l._text,g=q,h=f,e=e.slice(0,g)+h+e.slice(g+0),l._text=e):this._xmlText.delete(q,f.length);d+=f.length}else e=f,{nodeIndex:f}=X(this,d,!1),e=V(a,e,this),c.splice(f,
0,e),d+=1;else throw Error("Unexpected delta format");}}syncChildrenFromYjs(a){var b=this.getNode();if(null===b)throw this.getNode(),Error("Should never happen");var c=b.__key;const d=b.__children;var e=[];const f=d.length,g=this._children,h=g.length,n=a.collabNodeMap,k=new Set;let l,q;h!==f&&(q=ca(b,q,e));let r=0;for(let y=0;y<h;y++){var p=d[r];const x=g[y];var m=x.getNode(),u=x._key;if(null!==m&&p===u){m=w.$isTextNode(m);k.add(p);if(m)if(x._key=p,x instanceof W)m=x._xmlText,x.syncPropertiesFromYjs(a,
null),x.applyChildrenYjsDelta(a,m.toDelta()),x.syncChildrenFromYjs(a);else if(x instanceof z)x.syncPropertiesAndTextFromYjs(a,null);else if(x instanceof O)x.syncPropertiesFromYjs(a,null);else if(!(x instanceof F))throw Error("Should never happen");e[y]=p;r++}else{if(void 0===l)for(l=new Set,u=0;u<h;u++){var v=g[u]._key;""!==v&&l.add(v)}if(null===m||void 0===p||l.has(p)){q=ca(b,q,e);p=a;m=x;u=c;v=m.getType();v=p.editor._registeredNodes.get(v);if(void 0===v)throw Error("createLexicalNode failed");v=
new v.klass;v.__parent=u;m._key=v.__key;m instanceof W?(u=m._xmlText,m.syncPropertiesFromYjs(p,null),m.applyChildrenYjsDelta(p,u.toDelta()),m.syncChildrenFromYjs(p)):m instanceof z?m.syncPropertiesAndTextFromYjs(p,null):m instanceof O&&m.syncPropertiesFromYjs(p,null);p.collabNodeMap.set(v.__key,m);p=v.__key;n.set(p,x);e[y]=p}else y--,r++}}for(b=0;b<f;b++)e=d[b],k.has(e)||(c=S(e).getWritable(),e=a.collabNodeMap.get(e),void 0!==e&&e.destroy(a),c.__parent=null)}syncPropertiesFromLexical(a,b,c){B(a,this._xmlText,
this.getPrevNode(c),b)}_syncChildFromLexical(a,b,c,d,e,f){b=this._children[b];c=S(c);b instanceof W&&w.$isElementNode(c)?(b.syncPropertiesFromLexical(a,c,d),b.syncChildrenFromLexical(a,c,d,e,f)):b instanceof z&&w.$isTextNode(c)?b.syncPropertiesAndTextFromLexical(a,c,d):b instanceof O&&w.$isDecoratorNode(c)&&b.syncPropertiesFromLexical(a,c,d)}syncChildrenFromLexical(a,b,c,d,e){var f=this.getPrevNode(c);const g=null===f?[]:f.__children;f=b.__children;const h=g.length-1,n=f.length-1,k=a.collabNodeMap;
let l,q,r=0;for(b=0;r<=h&&b<=n;){var p=g[r];const u=f[b];if(p===u)this._syncChildFromLexical(a,b,u,c,d,e),r++,b++;else{void 0===l&&(l=new Set(g));void 0===q&&(q=new Set(f));var m=q.has(p);p=l.has(u);m?(m=S(u),m=T(a,m,this),k.set(u,m),p?(this.splice(a,b,1,m),r++):this.splice(a,b,0,m),b++):(this.splice(a,b,1),r++)}}c=r>h;d=b>n;if(c&&!d)for(;b<=n;++b)c=f[b],d=S(c),d=T(a,d,this),this.append(d),k.set(c,d);else if(d&&!c)for(f=this._children.length-1;f>=b;f--)this.splice(a,f,1)}append(a){const b=this._xmlText;
var c=this._children;c=c[c.length-1];c=void 0!==c?c.getOffset()+c.getSize():0;if(a instanceof W)b.insertEmbed(c,a._xmlText);else if(a instanceof z){const d=a._map;null===d.parent&&b.insertEmbed(c,d);b.insert(c+1,a._text)}else a instanceof F?b.insertEmbed(c,a._map):a instanceof O&&b.insertEmbed(c,a._xmlElem);this._children.push(a)}splice(a,b,c,d){const e=this._children;var f=e[b];if(void 0===f)if(void 0!==d)this.append(d);else throw Error("Should never happen");else{var g=f.getOffset();if(-1===g)throw Error("Should never happen");
var h=this._xmlText;0!==c&&h.delete(g,f.getSize());d instanceof W?h.insertEmbed(g,d._xmlText):d instanceof z?(f=d._map,null===f.parent&&h.insertEmbed(g,f),h.insert(g+1,d._text)):d instanceof F?h.insertEmbed(g,d._map):d instanceof O&&h.insertEmbed(g,d._xmlElem);if(0!==c)for(g=e.slice(b,b+c),h=0;h<g.length;h++)g[h].destroy(a);void 0!==d?e.splice(b,c,d):e.splice(b,c)}}getChildOffset(a){let b=0;const c=this._children;for(let d=0;d<c.length;d++){const e=c[d];if(e===a)return b;b+=e.getSize()}return-1}destroy(a){const b=
a.collabNodeMap,c=this._children;for(let d=0;d<c.length;d++)c[d].destroy(a);b.delete(this._key)}}function ca(a,b,c){return void 0===b?(a=a.getWritable(),a.__children=c,a):b}function U(a,b,c){b=new W(a,b,c);return a._collabNode=b}function da(a,b){b=b.collabNodeMap.get(a.key);if(void 0===b)return null;a=a.offset;let c=b.getSharedType();if(b instanceof z){c=b._parent._xmlText;b=b.getOffset();if(-1===b)return null;a=b+1+a}return t.createRelativePositionFromTypeIndex(c,a)}
function ea(a,b){if(null==a){if(null!=b)return!0}else if(null==b||!t.compareRelativePositions(a,b))return!0;return!1}function fa(a,b){a=a.cursorsContainer;if(null!==a){b=b.selections;const c=b.length;for(let d=0;d<c;d++)a.removeChild(b[d])}}function ha(a){for(;null!=a;){if(3===a.nodeType)return a;a=a.firstChild}return null}function ia(a){const b=a.parentNode;if(null==b)throw Error("Should never happen");return[b,Array.from(b.childNodes).indexOf(a)]}
function ja(a,b){var c=b.awareness.getLocalState();if(null!==c&&(b=c.anchorPos,c=c.focusPos,null!==b&&null!==c&&(b=t.createAbsolutePositionFromRelativePosition(b,a.doc),a=t.createAbsolutePositionFromRelativePosition(c,a.doc),null!==b&&null!==a))){const [e,f]=Y(b.type,b.index),[g,h]=Y(a.type,a.index);if(null!==e&&null!==g){c=e.getKey();a=g.getKey();b=w.$getSelection();if(null===b)throw Error("TODO: syncLocalCursorPosition");var d=b.anchor;const n=b.focus;if(d.key!==c||d.offset!==f)d=w.$getNodeByKey(c),
b.anchor.set(c,f,w.$isElementNode(d)?"element":"text");if(n.key!==a||n.offset!==h)c=w.$getNodeByKey(a),b.focus.set(a,h,w.$isElementNode(c)?"element":"text")}}}function Y(a,b){a=a._collabNode;if(void 0===a)return[null,0];if(a instanceof W){const {node:c,offset:d}=X(a,b,!0);return null===c?[a,0]:[c,d]}return[null,0]}
function oa(a,b){var c=Array.from(b.awareness.getStates()),d=a.doc.clientID;b=a.cursors;var e=a.editor._editorState._nodeMap;const f=new Set;for(var g=0;g<c.length;g++){const [K,ta]=c[g];if(K!==d){f.add(K);const {anchorPos:ka,focusPos:la,name:ua,color:va,focusing:wa}=ta;var h=null,n=b.get(K);void 0===n&&(n={color:va,name:ua,selection:null},b.set(K,n));if(null!==ka&&null!==la&&wa){var k=t.createAbsolutePositionFromRelativePosition(ka,a.doc),l=t.createAbsolutePositionFromRelativePosition(la,a.doc);
if(null!==k&&null!==l){const [E,Q]=Y(k.type,k.index),[ma,na]=Y(l.type,l.index);if(null!==E&&null!==ma){l=E.getKey();var q=ma.getKey();h=n.selection;if(null===h){k=n;h=l;l=Q;var r=na,p=k.color,m=document.createElement("span");m.style.cssText=`position:absolute;top:0;bottom:0;right:-1px;width:1px;background-color:rgb(${p});z-index:10;`;var u=document.createElement("span");u.textContent=k.name;u.style.cssText=`position:absolute;left:-2px;top:-16px;background-color:rgb(${p});color:#fff;line-height:12px;height:12px;font-size:12px;padding:2px;font-family:Arial;font-weight:bold`;
m.appendChild(u);h={caret:m,name:u,color:p,range:document.createRange(),selections:[],anchor:{key:h,offset:l},focus:{key:q,offset:r}}}else k=h.anchor,r=h.focus,k.key=l,k.offset=Q,r.key=q,r.offset=na}}}a:{k=a;l=n;m=h;var v=e;p=k.editor;q=p.getRootElement();n=k.cursorsContainer;if(null===n||null===q)break a;h=l.selection;if(null===m){null!==h&&(l.selection=null,fa(k,h));break a}else l.selection=m;r=m.range;h=m.caret;l=m.color;k=m.selections;var y=m.anchor,x=m.focus;m=y.key;u=x.key;var A=v.get(m);const E=
v.get(u);v=p.getElementByKey(m);p=p.getElementByKey(u);y=y.offset;x=x.offset;w.$isTextNode(A)&&(v=ha(v));w.$isTextNode(E)&&(p=ha(p));if(void 0!==A&&void 0!==E&&null!==v&&null!==p){"BR"===v.nodeName&&([v,y]=ia(v));"BR"===p.nodeName&&([p,x]=ia(p));A=v.firstChild;v===p&&null!=A&&"BR"===A.nodeName&&0===y&&0===x&&(x=1);try{r.setStart(v,y),r.setEnd(p,x)}catch(Q){break a}!r.collapsed||y===x&&m===u||(r.setStart(p,x),r.setEnd(v,y));p=q.getBoundingClientRect();q=getComputedStyle(q);q=parseFloat(q.paddingLeft)+
parseFloat(q.paddingRight);m=Array.from(r.getClientRects());r=m.length;u=k.length;for(A=0;A<r;A++)v=m[A],v.width+q===p.width?(m.splice(A--,1),r--):(y=k[A],void 0===y&&(y=document.createElement("span"),k[A]=y,n.appendChild(y)),y.style.cssText=`position:absolute;top:${v.top}px;left:${v.left}px;height:${v.height}px;width:${v.width}px;background-color:rgba(${l}, 0.3);pointer-events:none;z-index:10;`,A===r-1&&h.parentNode!==y&&y.appendChild(h));for(h=u-1;h>=r;h--)n.removeChild(k[h]),k.pop()}}}}c=Array.from(b.keys());
for(d=0;d<c.length;d++)e=c[d],f.has(e)||(g=b.get(e),void 0!==g&&(g=g.selection,null!==g&&fa(a,g),b.delete(e)))}function pa(a,b,c,d){b=b.awareness;var e=b.getLocalState();if(null!==e){var {anchorPos:f,focusPos:g,name:h,color:n,focusing:k}=e,l=e=null;if(null!==d&&(null===f||d.is(c))||null!==c)null!==d&&(e=da(d.anchor,a),l=da(d.focus,a)),(ea(f,e)||ea(g,l))&&b.setLocalState({name:h,color:n,anchorPos:e,focusPos:l,focusing:k})}}
class qa{constructor(a,b,c=1){this._offsetMap=a;this._firstNode=b;this._blockOffsetSize=c}createSelectionFromOffsets(a,b,c){var d=this._firstNode;if(null===d)return null;var e=Z(d,a,this._blockOffsetSize);let f=Z(d,b,this._blockOffsetSize);void 0!==c&&(a=ra(a,e,c,this,this._blockOffsetSize),e=Z(d,a,this._blockOffsetSize),b=ra(b,f,c,this,this._blockOffsetSize),f=Z(d,b,this._blockOffsetSize));if(null===e||null===f)return null;c=e.key;d=f.key;const g=w.$getNodeByKey(c),h=w.$getNodeByKey(d);if(null===
g||null===h)return null;let n=0,k=0,l="element",q="element";"text"===e.type?(n=a-e.start,l="text",e=g.getNextSibling(),a!==b&&n===g.getTextContentSize()&&w.$isTextNode(e)&&(n=0,c=e.__key)):"inline"===e.type&&(c=g.getParentOrThrow().getKey(),n=b>e.start?e.end:e.start);"text"===f.type?(k=b-f.start,q="text"):"inline"===f.type&&(d=h.getParentOrThrow().getKey(),k=b>f.start?f.end:f.start);a=w.$createSelection();if(null===a)return null;a.anchor.set(c,n,l);a.focus.set(d,k,q);return a}getOffsetsFromSelection(a){var b=
function ja(a){const b=a.anchor;a=a.focus;let c=!1;try{const d=b.getNode(),e=a.getNode();if(!d.isAttached()||!e.isAttached()||v.$isTextNode(d)&&b.offset>d.getTextContentSize()||v.$isTextNode(e)&&a.offset>e.getTextContentSize())c=!0}catch(d){c=!0}return c}function L(a,b){a.doc.transact(b,a)}
class V{constructor(a,b,c){this._key="";this._children=[];this._xmlText=a;this._type=c;this._parent=b}getPrevNode(a){if(null===a)return null;a=a.get(this._key);return v.$isElementNode(a)?a:null}getNode(){const a=v.$getNodeByKey(this._key);return v.$isElementNode(a)?a:null}getSharedType(){return this._xmlText}getType(){return this._type}getKey(){return this._key}isEmpty(){return 0===this._children.length}getSize(){return 1}getOffset(){const a=this._parent;if(null===a)throw Error("Should never happen");
return a.getChildOffset(this)}syncPropertiesFromYjs(a,b){const c=this.getNode();if(null===c)throw this.getNode(),Error("Should never happen");C(a,this._xmlText,c,b)}applyChildrenYjsDelta(a,b){const c=this._children;let d=0;for(let l=0;l<b.length;l++){var e=b[l],f=e.insert,g=e.delete;if(null!=e.retain)d+=e.retain;else if("number"===typeof g)for(f=g;0<f;){const {node:k,nodeIndex:r,offset:t,length:q}=X(this,d,!1);if(k instanceof V||k instanceof E||k instanceof R)c.splice(r,1),--f;else if(k instanceof
z){e=Math.min(f,q);g=0!==r?c[r-1]:null;var h=k.getSize();if(0===t&&1===e&&0<r&&g instanceof z&&q===h)g._text+=k._text,c.splice(r,1);else if(0===t&&e===h)c.splice(r,1);else{g=k._text;h=t;var n=e;g=g.slice(0,h)+""+g.slice(h+n);k._text=g}f-=e}else break}else if(null!=f)if("string"===typeof f){const {node:k,offset:r}=X(this,d,!0);k instanceof z?(e=k._text,g=r,h=f,e=e.slice(0,g)+h+e.slice(g+0),k._text=e):this._xmlText.delete(r,f.length);d+=f.length}else e=f,{nodeIndex:f}=X(this,d,!1),e=U(a,e,this),c.splice(f,
0,e),d+=1;else throw Error("Unexpected delta format");}}syncChildrenFromYjs(a){var b=this.getNode();if(null===b)throw this.getNode(),Error("Should never happen");var c=b.__key;const d=b.__children;var e=[];const f=d.length,g=this._children,h=g.length,n=a.collabNodeMap,l=new Set;let k,r;h!==f&&(r=ka(b,r,e));let t=0;for(let y=0;y<h;y++){var q=d[t];const x=g[y];var p=x.getNode(),u=x._key;if(null!==p&&q===u){p=v.$isTextNode(p);l.add(q);if(p)if(x._key=q,x instanceof V)p=x._xmlText,x.syncPropertiesFromYjs(a,
null),x.applyChildrenYjsDelta(a,p.toDelta()),x.syncChildrenFromYjs(a);else if(x instanceof z)x.syncPropertiesAndTextFromYjs(a,null);else if(x instanceof R)x.syncPropertiesFromYjs(a,null);else if(!(x instanceof E))throw Error("Should never happen");e[y]=q;t++}else{if(void 0===k)for(k=new Set,u=0;u<h;u++){var w=g[u]._key;""!==w&&k.add(w)}if(null===p||void 0===q||k.has(q)){r=ka(b,r,e);q=a;p=x;u=c;w=p.getType();w=q.editor._registeredNodes.get(w);if(void 0===w)throw Error("createLexicalNode failed");w=
new w.klass;w.__parent=u;p._key=w.__key;p instanceof V?(u=p._xmlText,p.syncPropertiesFromYjs(q,null),p.applyChildrenYjsDelta(q,u.toDelta()),p.syncChildrenFromYjs(q)):p instanceof z?p.syncPropertiesAndTextFromYjs(q,null):p instanceof R&&p.syncPropertiesFromYjs(q,null);q.collabNodeMap.set(w.__key,p);q=w.__key;n.set(q,x);e[y]=q}else y--,t++}}for(b=0;b<f;b++)e=d[b],l.has(e)||(c=S(e).getWritable(),e=a.collabNodeMap.get(e),void 0!==e&&e.destroy(a),c.__parent=null)}syncPropertiesFromLexical(a,b,c){B(a,this._xmlText,
this.getPrevNode(c),b)}_syncChildFromLexical(a,b,c,d,e,f){b=this._children[b];c=S(c);b instanceof V&&v.$isElementNode(c)?(b.syncPropertiesFromLexical(a,c,d),b.syncChildrenFromLexical(a,c,d,e,f)):b instanceof z&&v.$isTextNode(c)?b.syncPropertiesAndTextFromLexical(a,c,d):b instanceof R&&v.$isDecoratorNode(c)&&b.syncPropertiesFromLexical(a,c,d)}syncChildrenFromLexical(a,b,c,d,e){var f=this.getPrevNode(c);const g=null===f?[]:f.__children;f=b.__children;const h=g.length-1,n=f.length-1,l=a.collabNodeMap;
let k,r,t=0;for(b=0;t<=h&&b<=n;){var q=g[t];const u=f[b];if(q===u)this._syncChildFromLexical(a,b,u,c,d,e),t++,b++;else{void 0===k&&(k=new Set(g));void 0===r&&(r=new Set(f));var p=r.has(q);q=k.has(u);p?(p=S(u),p=ia(a,p,this),l.set(u,p),q?(this.splice(a,b,1,p),t++):this.splice(a,b,0,p),b++):(this.splice(a,b,1),t++)}}c=t>h;d=b>n;if(c&&!d)for(;b<=n;++b)c=f[b],d=S(c),d=ia(a,d,this),this.append(d),l.set(c,d);else if(d&&!c)for(f=this._children.length-1;f>=b;f--)this.splice(a,f,1)}append(a){const b=this._xmlText;
var c=this._children;c=c[c.length-1];c=void 0!==c?c.getOffset()+c.getSize():0;if(a instanceof V)b.insertEmbed(c,a._xmlText);else if(a instanceof z){const d=a._map;null===d.parent&&b.insertEmbed(c,d);b.insert(c+1,a._text)}else a instanceof E?b.insertEmbed(c,a._map):a instanceof R&&b.insertEmbed(c,a._xmlElem);this._children.push(a)}splice(a,b,c,d){const e=this._children;var f=e[b];if(void 0===f)if(void 0!==d)this.append(d);else throw Error("Should never happen");else{var g=f.getOffset();if(-1===g)throw Error("Should never happen");
var h=this._xmlText;0!==c&&h.delete(g,f.getSize());d instanceof V?h.insertEmbed(g,d._xmlText):d instanceof z?(f=d._map,null===f.parent&&h.insertEmbed(g,f),h.insert(g+1,d._text)):d instanceof E?h.insertEmbed(g,d._map):d instanceof R&&h.insertEmbed(g,d._xmlElem);if(0!==c)for(g=e.slice(b,b+c),h=0;h<g.length;h++)g[h].destroy(a);void 0!==d?e.splice(b,c,d):e.splice(b,c)}}getChildOffset(a){let b=0;const c=this._children;for(let d=0;d<c.length;d++){const e=c[d];if(e===a)return b;b+=e.getSize()}return-1}destroy(a){const b=
a.collabNodeMap,c=this._children;for(let d=0;d<c.length;d++)c[d].destroy(a);b.delete(this._key)}}function ka(a,b,c){return void 0===b?(a=a.getWritable(),a.__children=c,a):b}function T(a,b,c){b=new V(a,b,c);return a._collabNode=b}function la(a,b){b=b.collabNodeMap.get(a.key);if(void 0===b)return null;a=a.offset;let c=b.getSharedType();if(b instanceof z){c=b._parent._xmlText;b=b.getOffset();if(-1===b)return null;a=b+1+a}return m.createRelativePositionFromTypeIndex(c,a)}
function ma(a,b){if(null==a){if(null!=b)return!0}else if(null==b||!m.compareRelativePositions(a,b))return!0;return!1}function na(a,b){a=a.cursorsContainer;if(null!==a){b=b.selections;const c=b.length;for(let d=0;d<c;d++)a.removeChild(b[d])}}function oa(a){for(;null!=a;){if(3===a.nodeType)return a;a=a.firstChild}return null}function pa(a){const b=a.parentNode;if(null==b)throw Error("Should never happen");return[b,Array.from(b.childNodes).indexOf(a)]}
function qa(a,b){var c=b.awareness.getLocalState();if(null!==c&&(b=c.anchorPos,c=c.focusPos,null!==b&&null!==c&&(b=m.createAbsolutePositionFromRelativePosition(b,a.doc),a=m.createAbsolutePositionFromRelativePosition(c,a.doc),null!==b&&null!==a))){const [e,f]=Y(b.type,b.index),[g,h]=Y(a.type,a.index);if(null!==e&&null!==g){c=e.getKey();a=g.getKey();b=v.$getSelection();if(null===b)throw Error("TODO: syncLocalCursorPosition");var d=b.anchor;const n=b.focus;if(d.key!==c||d.offset!==f)d=v.$getNodeByKey(c),
b.anchor.set(c,f,v.$isElementNode(d)?"element":"text");if(n.key!==a||n.offset!==h)c=v.$getNodeByKey(a),b.focus.set(a,h,v.$isElementNode(c)?"element":"text")}}}function Y(a,b){a=a._collabNode;if(void 0===a)return[null,0];if(a instanceof V){const {node:c,offset:d}=X(a,b,!0);return null===c?[a,0]:[c,d]}return[null,0]}
function va(a,b){var c=Array.from(b.awareness.getStates()),d=a.clientID;b=a.cursors;var e=a.editor._editorState._nodeMap;const f=new Set;for(var g=0;g<c.length;g++){const [O,Aa]=c[g];if(O!==d){f.add(O);const {anchorPos:ra,focusPos:sa,name:Ba,color:Ca,focusing:Da}=Aa;var h=null,n=b.get(O);void 0===n&&(n={color:Ca,name:Ba,selection:null},b.set(O,n));if(null!==ra&&null!==sa&&Da){var l=m.createAbsolutePositionFromRelativePosition(ra,a.doc),k=m.createAbsolutePositionFromRelativePosition(sa,a.doc);if(null!==
l&&null!==k){const [H,W]=Y(l.type,l.index),[ta,ua]=Y(k.type,k.index);if(null!==H&&null!==ta){k=H.getKey();var r=ta.getKey();h=n.selection;if(null===h){l=n;h=k;k=W;var t=ua,q=l.color,p=document.createElement("span");p.style.cssText=`position:absolute;top:0;bottom:0;right:-1px;width:1px;background-color:rgb(${q});z-index:10;`;var u=document.createElement("span");u.textContent=l.name;u.style.cssText=`position:absolute;left:-2px;top:-16px;background-color:rgb(${q});color:#fff;line-height:12px;height:12px;font-size:12px;padding:2px;font-family:Arial;font-weight:bold`;
p.appendChild(u);h={caret:p,name:u,color:q,range:document.createRange(),selections:[],anchor:{key:h,offset:k},focus:{key:r,offset:t}}}else l=h.anchor,t=h.focus,l.key=k,l.offset=W,t.key=r,t.offset=ua}}}a:{l=a;k=n;p=h;var w=e;q=l.editor;r=q.getRootElement();n=l.cursorsContainer;if(null===n||null===r)break a;h=k.selection;if(null===p){null!==h&&(k.selection=null,na(l,h));break a}else k.selection=p;t=p.range;h=p.caret;k=p.color;l=p.selections;var y=p.anchor,x=p.focus;p=y.key;u=x.key;var A=w.get(p);const H=
w.get(u);w=q.getElementByKey(p);q=q.getElementByKey(u);y=y.offset;x=x.offset;v.$isTextNode(A)&&(w=oa(w));v.$isTextNode(H)&&(q=oa(q));if(void 0!==A&&void 0!==H&&null!==w&&null!==q){"BR"===w.nodeName&&([w,y]=pa(w));"BR"===q.nodeName&&([q,x]=pa(q));A=w.firstChild;w===q&&null!=A&&"BR"===A.nodeName&&0===y&&0===x&&(x=1);try{t.setStart(w,y),t.setEnd(q,x)}catch(W){break a}!t.collapsed||y===x&&p===u||(t.setStart(q,x),t.setEnd(w,y));q=r.getBoundingClientRect();r=getComputedStyle(r);r=parseFloat(r.paddingLeft)+
parseFloat(r.paddingRight);p=Array.from(t.getClientRects());t=p.length;u=l.length;for(A=0;A<t;A++)w=p[A],w.width+r===q.width?(p.splice(A--,1),t--):(y=l[A],void 0===y&&(y=document.createElement("span"),l[A]=y,n.appendChild(y)),y.style.cssText=`position:absolute;top:${w.top}px;left:${w.left}px;height:${w.height}px;width:${w.width}px;background-color:rgba(${k}, 0.3);pointer-events:none;z-index:10;`,A===t-1&&h.parentNode!==y&&y.appendChild(h));for(h=u-1;h>=t;h--)n.removeChild(l[h]),l.pop()}}}}c=Array.from(b.keys());
for(d=0;d<c.length;d++)e=c[d],f.has(e)||(g=b.get(e),void 0!==g&&(g=g.selection,null!==g&&na(a,g),b.delete(e)))}function wa(a,b,c,d){b=b.awareness;var e=b.getLocalState();if(null!==e){var {anchorPos:f,focusPos:g,name:h,color:n,focusing:l}=e,k=e=null;if(null!==d&&(null===f||d.is(c))||null!==c)null!==d&&(e=la(d.anchor,a),k=la(d.focus,a)),(ma(f,e)||ma(g,k))&&b.setLocalState({name:h,color:n,anchorPos:e,focusPos:k,focusing:l})}}
class xa{constructor(a,b,c=1){this._offsetMap=a;this._firstNode=b;this._blockOffsetSize=c}createSelectionFromOffsets(a,b,c){var d=this._firstNode;if(null===d)return null;var e=Z(d,a,this._blockOffsetSize);let f=Z(d,b,this._blockOffsetSize);void 0!==c&&(a=ya(a,e,c,this,this._blockOffsetSize),e=Z(d,a,this._blockOffsetSize),b=ya(b,f,c,this,this._blockOffsetSize),f=Z(d,b,this._blockOffsetSize));if(null===e||null===f)return null;c=e.key;d=f.key;const g=v.$getNodeByKey(c),h=v.$getNodeByKey(d);if(null===
g||null===h)return null;let n=0,l=0,k="element",r="element";"text"===e.type?(n=a-e.start,k="text",e=g.getNextSibling(),a!==b&&n===g.getTextContentSize()&&v.$isTextNode(e)&&(n=0,c=e.__key)):"inline"===e.type&&(c=g.getParentOrThrow().getKey(),n=b>e.start?e.end:e.start);"text"===f.type?(l=b-f.start,r="text"):"inline"===f.type&&(d=h.getParentOrThrow().getKey(),l=b>f.start?f.end:f.start);a=v.$createSelection();if(null===a)return null;a.anchor.set(c,n,k);a.focus.set(d,l,r);return a}getOffsetsFromSelection(a){var b=
a.anchor,c=a.focus,d=this._offsetMap;const e=b.offset;var f=c.offset;let g=a=-1;if("text"===b.type)b=d.get(b.key),void 0!==b&&(a=b.start+e);else{b=b.getNode().getDescendantByIndex(e);const h=d.get(b.getKey());void 0!==h&&(a=b.getIndexWithinParent()!==e?h.end:h.start)}"text"===c.type?(f=d.get(c.key),void 0!==f&&(g=f.start+c.offset)):(c=c.getNode().getDescendantByIndex(f),d=d.get(c.getKey()),void 0!==d&&(g=c.getIndexWithinParent()!==f?d.end:d.start));return[a,g]}}
function ra(a,b,c,d,e){const f=c._offsetMap;d=d._offsetMap;const g=new Set;let h=a;for(;null!==b;){var n=b.key,k=f.get(n),l=b.end-b.start;g.add(n);void 0===k?h+=l:(n=k.end-k.start,n!==l&&(h+=l-n));l=b.prev;if(null!==l)b=l;else{for(b=b.parent;null!==b;)k=b.prev,null!==k&&(l=k.key,n=f.get(l),k=k.end-k.start,g.add(l),void 0===n?h+=k:(l=n.end-n.start,l!==k&&(h+=k-l))),b=b.parent;break}}c=c._firstNode;if(null!==c){b=Z(c,a,e);for(a=!1;null!==b;){if(!g.has(b.key)){a=!0;break}b=b.parent}if(!a)for(;null!==
function ya(a,b,c,d,e){const f=c._offsetMap;d=d._offsetMap;const g=new Set;let h=a;for(;null!==b;){var n=b.key,l=f.get(n),k=b.end-b.start;g.add(n);void 0===l?h+=k:(n=l.end-l.start,n!==k&&(h+=k-n));k=b.prev;if(null!==k)b=k;else{for(b=b.parent;null!==b;)l=b.prev,null!==l&&(k=l.key,n=f.get(k),l=l.end-l.start,g.add(k),void 0===n?h+=l:(k=n.end-n.start,k!==l&&(h+=l-k))),b=b.parent;break}}c=c._firstNode;if(null!==c){b=Z(c,a,e);for(a=!1;null!==b;){if(!g.has(b.key)){a=!0;break}b=b.parent}if(!a)for(;null!==
b;)a=b.key,g.has(a)||(e=d.get(a),a=b.end-b.start,void 0===e?h-=a:(e=e.end-e.start,a!==e&&(h+=e-a))),b=b.prev}return h}function Z(a,b,c){for(;null!==a;){if(b<a.end+("element"!==a.type||0===c?1:0)){const d=a.child;if(null!==d){a=d;continue}return a}a=a.next;if(null===a)break}return null}
function sa(a,b,c,d,e,f){let g=null,h=null;const n=b.length;for(let v=0;v<n;v++){{var k=a;var l=b[v];var q=c,r=d,p=e,m=f,u=r.get(l);void 0===u&&H(3);const y=k.offset;if(w.$isElementNode(u)){const x=u.__children;r=(u=0===x.length)?null:sa(k,x,null,r,p,m);if(!k.prevIsBlock||u)k.prevIsBlock=!0,k.offset+=m;q={child:r,prev:null,next:null,type:"element",start:y,end:y,key:l,parent:q};null!==r&&(r.parent=q);q.end=k.offset;p.set(l,q);l=q}else k.prevIsBlock=!1,m=w.$isTextNode(u),k=k.offset+=m?u.__text.length:
1,k={child:null,prev:null,next:null,type:m?"text":"inline",start:y,end:k,key:l,parent:q},p.set(l,k),l=k}null===h?g=l:(l.prev=h,h.next=l);h=l}return g}function xa(a,b=1,c){c=(c||a._pendingEditorState||a._editorState)._nodeMap;const d=c.get("root");a=new Map;c=sa({offset:0,prevIsBlock:!1},d.__children,null,c,a,b);return new qa(a,c,b)}
exports.createBinding=function(a,b,c,d){b=d.get(c);if(void 0===b)throw Error("Should never happen");var e=b.get("root",t.XmlText);e=U(e,null,"root");e._key="root";return{collabNodeMap:new Map,nodeProperties:new Map,editor:a,id:c,cursors:new Map,cursorsContainer:null,doc:b,root:e,docMap:d}};exports.createUndoManager=function(a,b){return new t.UndoManager(b,{trackedOrigins:new Set([a,null])})};
exports.initLocalState=function(a,b,c,d){a.awareness.setLocalState({color:c,name:b,anchorPos:null,focusPos:null,focusing:d})};exports.setLocalStateFocus=function(a,b){({awareness:a}=a);a.setLocalState({...a.getLocalState(),focusing:b})};exports.syncCursorPositions=oa;
exports.syncLexicalUpdateToYjs=function(a,b,c,d,e,f,g,h){J(a,()=>{d.read(()=>{if(h.has("collaboration")){if(0<g.size){var n=Array.from(g),k=a.collabNodeMap,l=[];for(let m=0;m<n.length;m++){var q=n[m],r=w.$getNodeByKey(q),p=k.get(q);if(p instanceof z)if(w.$isTextNode(r))l.push([p,r.__text]);else{r=p.getOffset();if(-1===r)continue;const u=p._parent;p._normalized=!0;u._xmlText.delete(r,1);k.delete(q);q=u._children;p=q.indexOf(p);q.splice(p,1)}}for(n=0;n<l.length;n++){const [m,u]=l[n];m._text=u}}}else e.has("root")&&
(l=c._nodeMap,n=w.$getRoot(),k=a.root,k.syncPropertiesFromLexical(a,n,l),k.syncChildrenFromLexical(a,n,l,e,f)),l=w.$getSelection(),pa(a,b,c._selection,l)})})};
exports.syncYjsChangesToLexical=function(a,b,c){const d=a.editor,e=d._editorState;d.update(()=>{var f=d._pendingEditorState;for(var g=0;g<c.length;g++){{var h=a,n=c[g];const {target:l}=n;var k=V(h,l);const q=l._lexicalValue;if(void 0!==q&&l instanceof t.Map&&k instanceof O)N(h,k,l,q,n.keysChanged);else if(k instanceof W&&n instanceof t.YTextEvent){const {keysChanged:r,childListChanged:p,delta:m}=n;0<r.size&&k.syncPropertiesFromYjs(h,r);p&&(k.applyChildrenYjsDelta(h,m),k.syncChildrenFromYjs(h))}else if(k instanceof
z&&n instanceof t.YMapEvent)({keysChanged:n}=n),0<n.size&&k.syncPropertiesAndTextFromYjs(h,n);else if(k instanceof O&&n instanceof t.YXmlEvent)({attributesChanged:n}=n),0<n.size&&k.syncPropertiesFromYjs(h,n);else throw Error("Should never happen");}}g=w.$getSelection();if(null!==g)if(ba(g)){h=e._selection;if(null!==h){k=xa(d,0,e);f=xa(d,0,f);const [l,q]=k.getOffsetsFromSelection(h);f=f.createSelectionFromOffsets(l,q,k);null!==f?w.$setSelection(f):(ja(a,b),ba(g)&&(f=w.$getRoot(),0===f.getChildrenSize()&&
f.append(aa.$createParagraphNode()),w.$getRoot().selectEnd()))}pa(a,b,h,w.$getSelection())}else ja(a,b)},{onUpdate:()=>{oa(a,b)},skipTransforms:!0,tag:"collaboration"})};
function za(a,b,c,d,e,f){let g=null,h=null;const n=b.length;for(let w=0;w<n;w++){{var l=a;var k=b[w];var r=c,t=d,q=e,p=f,u=t.get(k);void 0===u&&G(3);const y=l.offset;if(v.$isElementNode(u)){const x=u.__children;t=(u=0===x.length)?null:za(l,x,null,t,q,p);if(!l.prevIsBlock||u)l.prevIsBlock=!0,l.offset+=p;r={child:t,prev:null,next:null,type:"element",start:y,end:y,key:k,parent:r};null!==t&&(t.parent=r);r.end=l.offset;q.set(k,r);k=r}else l.prevIsBlock=!1,p=v.$isTextNode(u),l=l.offset+=p?u.__text.length:
1,l={child:null,prev:null,next:null,type:p?"text":"inline",start:y,end:l,key:k,parent:r},q.set(k,l),k=l}null===h?g=k:(k.prev=h,h.next=k);h=k}return g}function Ea(a,b=1,c){c=(c||a._pendingEditorState||a._editorState)._nodeMap;const d=c.get("root");a=new Map;c=za({offset:0,prevIsBlock:!1},d.__children,null,c,a,b);return new xa(a,c,b)}
function Fa(a,b){var {target:c}=b;const d=U(a,c),e=c._lexicalValue;if(void 0!==e&&d instanceof R)if(c instanceof m.Map)Q(a,d,c,e,b.keysChanged);else{if(c instanceof m.Array&&v.isDecoratorArray(e)){b=b.delta;let g=0;for(let h=0;h<b.length;h++){var f=b[h];const n=f.retain,l=f.delete;f=f.insert;if(void 0!==n)g+=n;else if(void 0!==l)J(()=>{e._array.slice(g,g+l).forEach(k=>{(v.isDecoratorArray(k)||v.isDecoratorMap(k))&&k.destroy()});e.splice(g,l)});else if(void 0!==f)ea(a,d,c,e,g);else throw Error("Not supported");
}}}else if(d instanceof V&&b instanceof m.YTextEvent){const {keysChanged:g,childListChanged:h,delta:n}=b;0<g.size&&d.syncPropertiesFromYjs(a,g);h&&(d.applyChildrenYjsDelta(a,n),d.syncChildrenFromYjs(a))}else if(d instanceof z&&b instanceof m.YMapEvent)({keysChanged:c}=b),0<c.size&&d.syncPropertiesAndTextFromYjs(a,c);else if(d instanceof R&&b instanceof m.YXmlEvent)({attributesChanged:c}=b),0<c.size&&d.syncPropertiesFromYjs(a,c);else throw Error("Should never happen");}
exports.createBinding=function(a,b,c,d){b=d.get(c);if(void 0===b)throw Error("Should never happen");var e=b.get("root",m.XmlText);e=T(e,null,"root");e._key="root";return{clientID:b.clientID,collabNodeMap:new Map,nodeProperties:new Map,editor:a,id:c,cursors:new Map,cursorsContainer:null,doc:b,root:e,docMap:d}};exports.createUndoManager=function(a,b){return new m.UndoManager(b,{trackedOrigins:new Set([a,null])})};
exports.initLocalState=function(a,b,c,d){a.awareness.setLocalState({color:c,name:b,anchorPos:null,focusPos:null,focusing:d})};exports.setLocalStateFocus=function(a,b){({awareness:a}=a);a.setLocalState({...a.getLocalState(),focusing:b})};exports.syncCursorPositions=va;
exports.syncLexicalUpdateToYjs=function(a,b,c,d,e,f,g,h){L(a,()=>{d.read(()=>{if(h.has("collaboration")){if(0<g.size){var n=Array.from(g),l=a.collabNodeMap,k=[];for(let p=0;p<n.length;p++){var r=n[p],t=v.$getNodeByKey(r),q=l.get(r);if(q instanceof z)if(v.$isTextNode(t))k.push([q,t.__text]);else{t=q.getOffset();if(-1===t)continue;const u=q._parent;q._normalized=!0;u._xmlText.delete(t,1);l.delete(r);r=u._children;q=r.indexOf(q);r.splice(q,1)}}for(n=0;n<k.length;n++){const [p,u]=k[n];p._text=u}}}else e.has("root")&&
(k=c._nodeMap,n=v.$getRoot(),l=a.root,l.syncPropertiesFromLexical(a,n,k),l.syncChildrenFromLexical(a,n,k,e,f)),k=v.$getSelection(),wa(a,b,c._selection,k)})})};
exports.syncYjsChangesToLexical=function(a,b,c){const d=a.editor,e=d._editorState;d.update(()=>{var f=d._pendingEditorState;for(var g=0;g<c.length;g++)Fa(a,c[g]);var h=v.$getSelection();if(null!==h)if(ja(h)){g=e._selection;if(null!==g){const n=Ea(d,0,e);f=Ea(d,0,f);const [l,k]=n.getOffsetsFromSelection(g);f=f.createSelectionFromOffsets(l,k,n);null!==f?v.$setSelection(f):(qa(a,b),ja(h)&&(h=v.$getRoot(),0===h.getChildrenSize()&&h.append(v.$createParagraphNode()),v.$getRoot().selectEnd()))}wa(a,b,g,
v.$getSelection())}else qa(a,b)},{onUpdate:()=>{va(a,b)},skipTransforms:!0,tag:"collaboration"})};

@@ -18,6 +18,6 @@ {

"license": "MIT",
"version": "0.1.5",
"version": "0.1.6",
"main": "LexicalYjs.js",
"peerDependencies": {
"lexical": "0.1.5",
"lexical": "0.1.6",
"yjs": ">=13.5.22"

@@ -24,0 +24,0 @@ },

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc