@univerjs/drawing 0.8.2 → 0.8.3-nightly.202506271607

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var Bt=Object.defineProperty;var Gt=(a,e,n)=>e in a?Bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n;var H=(a,e,n)=>Gt(a,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ce=require("@univerjs/core"),Ie=require("rxjs"),Lt=500,qt=500,Kt=10,Pt=5*1024*1024,At=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"];var Ve={},Qe={},tt={},vt;function Ht(){if(vt)return tt;vt=1,Object.defineProperty(tt,"__esModule",{value:!0});function a(t,r){if(Array.isArray(r))return!1;for(let u in t)if(!n(t[u],r[u]))return!1;for(let u in r)if(t[u]===void 0)return!1;return!0}function e(t,r){if(!Array.isArray(r)||t.length!==r.length)return!1;for(let u=0;u<t.length;u++)if(!n(t[u],r[u]))return!1;return!0}function n(t,r){return t===r?!0:t===null||r===null||typeof t!="object"||typeof r!="object"?!1:Array.isArray(t)?e(t,r):a(t,r)}return tt.default=n,tt}var nt={},mt;function Ft(){if(mt)return nt;mt=1,Object.defineProperty(nt,"__esModule",{value:!0});function a(e){if(e===null)return null;if(Array.isArray(e))return e.map(a);if(typeof e=="object"){const n={};for(let t in e)n[t]=a(e[t]);return n}else return e}return nt.default=a,nt}var at={},Ot;function Mt(){return Ot||(Ot=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.eachChildOf=a.advancer=a.readCursor=a.writeCursor=a.WriteCursor=a.ReadCursor=a.isValidPathItem=void 0;function e(_,s){if(!_)throw new Error(s)}const n=_=>_!=null&&typeof _=="object"&&!Array.isArray(_),t=(_,s)=>typeof _==typeof s?_>s:typeof _=="string"&&typeof s=="number";function r(_,s){for(let c in _){const h=c;s.write(h,_[h])}}a.isValidPathItem=_=>typeof _=="number"||typeof _=="string"&&_!=="__proto__";class u{constructor(s=null){this.parents=[],this.indexes=[],this.lcIdx=-1,this.idx=-1,this.container=s}ascend(){e(this.parents.length===this.indexes.length/2),this.idx===0?this.parents.length?(this.lcIdx=this.indexes.pop(),this.container=this.parents.pop(),this.idx=this.indexes.pop()):(this.lcIdx=0,this.idx=-1):(e(this.idx>0),this.idx--,n(this.container[this.idx])&&this.idx--)}getPath(){const s=[];let c=this.container,h=this.parents.length-1,U=this.idx;for(;U>=0;)s.unshift(c[U]),U===0?(U=this.indexes[h*2],c=this.parents[h--]):U-=n(c[U-1])?2:1;return s}}class o extends u{get(){return this.container?this.container.slice(this.idx+1):null}getKey(){return e(this.container!=null,"Invalid call to getKey before cursor descended"),this.container[this.idx]}getComponent(){let s;return this.container&&this.container.length>this.idx+1&&n(s=this.container[this.idx+1])?s:null}descendFirst(){let s=this.idx+1;if(!this.container||s>=this.container.length||n(this.container[s])&&s+1>=this.container.length)return!1;n(this.container[s])&&s++;const c=this.container[s];return Array.isArray(c)?(this.indexes.push(this.idx),this.parents.push(this.container),this.indexes.push(s),this.idx=0,this.container=c):this.idx=s,!0}nextSibling(){if(e(this.parents.length===this.indexes.length/2),this.idx>0||this.parents.length===0)return!1;const s=this.indexes[this.indexes.length-1]+1,c=this.parents[this.parents.length-1];return s>=c.length?!1:(e(!isNaN(s)),this.indexes[this.indexes.length-1]=s,this.container=c[s],!0)}_init(s,c,h,U){this.container=s,this.idx=c,this.parents=h.slice(),this.indexes=U.slice()}clone(){const s=new o;return s._init(this.container,this.idx,this.parents,this.indexes),s}*[Symbol.iterator](){if(this.descendFirst()){do yield this.getKey();while(this.nextSibling());this.ascend()}}traverse(s,c){const h=this.getComponent();h&&c(h,s);for(const U of this)s&&s.descend(U),this.traverse(s,c),s&&s.ascend()}eachPick(s,c){this.traverse(s,(h,U)=>{h.p!=null&&c(h.p,U)})}eachDrop(s,c){this.traverse(s,(h,U)=>{h.d!=null&&c(h.d,U)})}}a.ReadCursor=o;class l extends u{constructor(s=null){super(s),this.pendingDescent=[],this._op=s}flushDescent(){e(this.parents.length===this.indexes.length/2),this.container===null&&(this._op=this.container=[]);for(let s=0;s<this.pendingDescent.length;s++){const c=this.pendingDescent[s];let h=this.idx+1;if(h<this.container.length&&n(this.container[h])&&h++,e(h===this.container.length||!n(this.container[h])),h===this.container.length)this.container.push(c),this.idx=h;else if(this.container[h]===c)this.idx=h;else{if(!Array.isArray(this.container[h])){const U=this.container.splice(h,this.container.length-h);this.container.push(U),this.lcIdx>-1&&(this.lcIdx=h)}for(this.indexes.push(this.idx),this.parents.push(this.container),this.lcIdx!==-1&&(e(t(c,this.container[this.lcIdx][0])),h=this.lcIdx+1,this.lcIdx=-1);h<this.container.length&&t(c,this.container[h][0]);)h++;if(this.indexes.push(h),this.idx=0,h<this.container.length&&this.container[h][0]===c)this.container=this.container[h];else{const U=[c];this.container.splice(h,0,U),this.container=U}}}this.pendingDescent.length=0}reset(){this.lcIdx=-1}getComponent(){this.flushDescent();const s=this.idx+1;if(s<this.container.length&&n(this.container[s]))return this.container[s];{const c={};return this.container.splice(s,0,c),c}}write(s,c){const h=this.getComponent();e(h[s]==null||h[s]===c,"Internal consistency error: Overwritten component. File a bug"),h[s]=c}get(){return this._op}descend(s){if(!a.isValidPathItem(s))throw Error("Invalid JSON key");this.pendingDescent.push(s)}descendPath(s){return this.pendingDescent.push(...s),this}ascend(){this.pendingDescent.length?this.pendingDescent.pop():super.ascend()}mergeTree(s,c=r){if(s===null)return;if(e(Array.isArray(s)),s===this._op)throw Error("Cannot merge into my own tree");const h=this.lcIdx,U=this.parents.length;let Y=0;for(let pe=0;pe<s.length;pe++){const Z=s[pe];typeof Z=="string"||typeof Z=="number"?(Y++,this.descend(Z)):Array.isArray(Z)?this.mergeTree(Z,c):typeof Z=="object"&&c(Z,this)}for(;Y--;)this.ascend();this.lcIdx=this.parents.length===U?h:-1}at(s,c){this.descendPath(s),c(this);for(let h=0;h<s.length;h++)this.ascend();return this}writeAtPath(s,c,h){return this.at(s,()=>this.write(c,h)),this.reset(),this}writeMove(s,c,h=0){return this.writeAtPath(s,"p",h).writeAtPath(c,"d",h)}getPath(){const s=super.getPath();return s.push(...this.pendingDescent),s}}a.WriteCursor=l,a.writeCursor=()=>new l,a.readCursor=_=>new o(_);function E(_,s,c){let h,U;U=h=_?_.descendFirst():!1;function Y(pe){let Z;for(;U;){const Ce=Z=_.getKey();if(pe!=null){let qe=!1;if(s&&typeof Ce=="number"&&(Z=s(Ce,_.getComponent()),Z<0&&(Z=~Z,qe=!0)),t(Z,pe))return null;if(Z===pe&&!qe)return _}c&&typeof Z=="number"&&c(Z,_.getComponent()),U=_.nextSibling()}return null}return Y.end=()=>{h&&_.ascend()},Y}a.advancer=E;function W(_,s,c){let h,U,Y,pe;for(h=U=_&&_.descendFirst(),Y=pe=s&&s.descendFirst();h||Y;){let Z=h?_.getKey():null,Ce=Y?s.getKey():null;Z!==null&&Ce!==null&&(t(Ce,Z)?Ce=null:Z!==Ce&&(Z=null)),c(Z==null?Ce:Z,Z!=null?_:null,Ce!=null?s:null),Z!=null&&h&&(h=_.nextSibling()),Ce!=null&&Y&&(Y=s.nextSibling())}U&&_.ascend(),pe&&s.ascend()}a.eachChildOf=W}(at)),at}var lt={},bt;function jt(){return bt||(bt=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.ConflictType=void 0,function(e){e[e.RM_UNEXPECTED_CONTENT=1]="RM_UNEXPECTED_CONTENT",e[e.DROP_COLLISION=2]="DROP_COLLISION",e[e.BLACKHOLE=3]="BLACKHOLE"}(a.ConflictType||(a.ConflictType={}))}(lt)),lt}var ke={},ze={},wt;function ht(){return wt||(wt=1,Object.defineProperty(ze,"__esModule",{value:!0}),ze.uniToStrPos=ze.strPosToUni=void 0,ze.strPosToUni=(a,e=a.length)=>{let n=0,t=0;for(;t<e;t++){const r=a.charCodeAt(t);r>=55296&&r<=57343&&(n++,t++)}if(t!==e)throw Error("Invalid offset - splits unicode bytes");return t-n},ze.uniToStrPos=(a,e)=>{let n=0;for(;e>0;e--){const t=a.charCodeAt(n);n+=t>=55296&&t<=57343?2:1}return n}),ze}var ut={},It;function ft(){return It||(It=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.uniSlice=a.dlen=a.eachOp=void 0;const e=ht(),n=f=>{if(!Array.isArray(f))throw Error("Op must be an array of components");let y=null;for(let w=0;w<f.length;w++){const L=f[w];switch(typeof L){case"object":if(typeof L.d!="number"&&typeof L.d!="string")throw Error("Delete must be number or string");if(a.dlen(L.d)<=0)throw Error("Deletes must not be empty");break;case"string":if(!(L.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(L>0))throw Error("Skip components must be >0");if(typeof y=="number")throw Error("Adjacent skip components should be combined");break}y=L}if(typeof y=="number")throw Error("Op has a trailing skip")};function t(f,y){let w=0,L=0;for(let z=0;z<f.length;z++){const q=f[z];switch(y(q,w,L),typeof q){case"object":w+=a.dlen(q.d);break;case"string":L+=e.strPosToUni(q);break;case"number":w+=q,L+=q;break}}}a.eachOp=t;function r(f,y){const w=[],L=l(w);return t(f,(z,q,De)=>{L(y(z,q,De))}),s(w)}const u=f=>f,o=f=>r(f,u);a.dlen=f=>typeof f=="number"?f:e.strPosToUni(f);const l=f=>y=>{if(!(!y||y.d===0||y.d===""))if(f.length===0)f.push(y);else if(typeof y==typeof f[f.length-1])if(typeof y=="object"){const w=f[f.length-1];w.d=typeof w.d=="string"&&typeof y.d=="string"?w.d+y.d:a.dlen(w.d)+a.dlen(y.d)}else f[f.length-1]+=y;else f.push(y)},E=f=>typeof f=="number"?f:typeof f=="string"?e.strPosToUni(f):typeof f.d=="number"?f.d:e.strPosToUni(f.d);a.uniSlice=(f,y,w)=>{const L=e.uniToStrPos(f,y),z=w==null?1/0:e.uniToStrPos(f,w);return f.slice(L,z)};const W=(f,y,w)=>typeof f=="number"?w==null?f-y:Math.min(f,w)-y:a.uniSlice(f,y,w),_=f=>{let y=0,w=0;return{take:(q,De)=>{if(y===f.length)return q===-1?null:q;const de=f[y];let ne;if(typeof de=="number")return q===-1||de-w<=q?(ne=de-w,++y,w=0,ne):(w+=q,q);if(typeof de=="string"){if(q===-1||De==="i"||e.strPosToUni(de.slice(w))<=q)return ne=de.slice(w),++y,w=0,ne;{const le=w+e.uniToStrPos(de.slice(w),q);return ne=de.slice(w,le),w=le,ne}}else{if(q===-1||De==="d"||a.dlen(de.d)-w<=q)return ne={d:W(de.d,w)},++y,w=0,ne;{let le=W(de.d,w,w+q);return w+=q,{d:le}}}},peek:()=>f[y]}},s=f=>(f.length>0&&typeof f[f.length-1]=="number"&&f.pop(),f);function c(f,y,w){if(w!=="left"&&w!=="right")throw Error("side ("+w+") must be 'left' or 'right'");n(f),n(y);const L=[],z=l(L),{take:q,peek:De}=_(f);for(let ne=0;ne<y.length;ne++){const le=y[ne];let ye,Se;switch(typeof le){case"number":for(ye=le;ye>0;)Se=q(ye,"i"),z(Se),typeof Se!="string"&&(ye-=E(Se));break;case"string":w==="left"&&typeof De()=="string"&&z(q(-1)),z(e.strPosToUni(le));break;case"object":for(ye=a.dlen(le.d);ye>0;)switch(Se=q(ye,"i"),typeof Se){case"number":ye-=Se;break;case"string":z(Se);break;case"object":ye-=a.dlen(Se.d)}break}}let de;for(;de=q(-1);)z(de);return s(L)}function h(f,y){n(f),n(y);const w=[],L=l(w),{take:z}=_(f);for(let De=0;De<y.length;De++){const de=y[De];let ne,le;switch(typeof de){case"number":for(ne=de;ne>0;)le=z(ne,"d"),L(le),typeof le!="object"&&(ne-=E(le));break;case"string":L(de);break;case"object":ne=a.dlen(de.d);let ye=0;for(;ye<ne;)switch(le=z(ne-ye,"d"),typeof le){case"number":L({d:W(de.d,ye,ye+le)}),ye+=le;break;case"string":ye+=e.strPosToUni(le);break;case"object":L(le)}break}}let q;for(;q=z(-1);)L(q);return s(w)}const U=(f,y)=>{let w=0;for(let L=0;L<y.length&&f>w;L++){const z=y[L];switch(typeof z){case"number":{w+=z;break}case"string":const q=e.strPosToUni(z);w+=q,f+=q;break;case"object":f-=Math.min(a.dlen(z.d),f-w);break}}return f},Y=(f,y)=>typeof f=="number"?U(f,y):f.map(w=>U(w,y));function pe(f,y,w){return r(f,(L,z)=>typeof L=="object"&&typeof L.d=="number"?{d:w.slice(y,z,z+L.d)}:L)}function Z(f){return r(f,y=>{switch(typeof y){case"object":if(typeof y.d=="number")throw Error("Cannot invert text op: Deleted characters missing from operation. makeInvertible must be called first.");return y.d;case"string":return{d:y};case"number":return y}})}function Ce(f){return r(f,y=>typeof y=="object"&&typeof y.d=="string"?{d:e.strPosToUni(y.d)}:y)}function qe(f){let y=!0;return t(f,w=>{typeof w=="object"&&typeof w.d=="number"&&(y=!1)}),y}function me(f){return{name:"text-unicode",uri:"http://sharejs.org/types/text-unicode",trim:s,normalize:o,checkOp:n,create(y=""){if(typeof y!="string")throw Error("Initial data must be a string");return f.create(y)},apply(y,w){n(w);const L=f.builder(y);for(let z=0;z<w.length;z++){const q=w[z];switch(typeof q){case"number":L.skip(q);break;case"string":L.append(q);break;case"object":L.del(a.dlen(q.d));break}}return L.build()},transform:c,compose:h,transformPosition:U,transformSelection:Y,isInvertible:qe,makeInvertible(y,w){return pe(y,w,f)},stripInvertible:Ce,invert:Z,invertWithDoc(y,w){return Z(pe(y,w,f))},isNoop:y=>y.length===0}}a.default=me}(ut)),ut}var rt={},Ct;function Vt(){if(Ct)return rt;Ct=1,Object.defineProperty(rt,"__esModule",{value:!0});const a=ft(),e=ht();function n(t,r){return{get:t,getLength(){return t().length},insert(u,o,l){const E=e.strPosToUni(t(),u);return r([E,o],l)},remove(u,o,l){const E=e.strPosToUni(t(),u);return r([E,{d:o}],l)},_onOp(u){a.eachOp(u,(o,l,E)=>{switch(typeof o){case"string":this.onInsert&&this.onInsert(E,o);break;case"object":const W=a.dlen(o.d);this.onRemove&&this.onRemove(E,W)}})},onInsert:null,onRemove:null}}return rt.default=n,n.provides={text:!0},rt}var Et;function zt(){return Et||(Et=1,function(a){var e=ke&&ke.__createBinding||(Object.create?function(c,h,U,Y){Y===void 0&&(Y=U),Object.defineProperty(c,Y,{enumerable:!0,get:function(){return h[U]}})}:function(c,h,U,Y){Y===void 0&&(Y=U),c[Y]=h[U]}),n=ke&&ke.__setModuleDefault||(Object.create?function(c,h){Object.defineProperty(c,"default",{enumerable:!0,value:h})}:function(c,h){c.default=h}),t=ke&&ke.__importStar||function(c){if(c&&c.__esModule)return c;var h={};if(c!=null)for(var U in c)Object.hasOwnProperty.call(c,U)&&e(h,c,U);return n(h,c),h},r=ke&&ke.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(a,"__esModule",{value:!0}),a.type=a.remove=a.insert=void 0;const u=ht(),o=t(ft()),l=r(Vt()),E={create(c){return c},toString(c){return c},builder(c){if(typeof c!="string")throw Error("Invalid document snapshot: "+c);const h=[];return{skip(U){let Y=u.uniToStrPos(c,U);if(Y>c.length)throw Error("The op is too long for this document");h.push(c.slice(0,Y)),c=c.slice(Y)},append(U){h.push(U)},del(U){c=c.slice(u.uniToStrPos(c,U))},build(){return h.join("")+c}}},slice:o.uniSlice},W=o.default(E),_=Object.assign(Object.assign({},W),{api:l.default});a.type=_,a.insert=(c,h)=>h.length===0?[]:c===0?[h]:[c,h],a.remove=(c,h)=>o.dlen(h)===0?[]:c===0?[{d:h}]:[c,{d:h}];var s=ft();Object.defineProperty(a,"makeType",{enumerable:!0,get:function(){return s.default}})}(ke)),ke}var Dt;function Xt(){return Dt||(Dt=1,function(a){var e=Qe&&Qe.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(a,"__esModule",{value:!0}),a.editOp=a.replaceOp=a.insertOp=a.moveOp=a.removeOp=a.type=void 0;const n=e(Ht()),t=e(Ft()),r=Mt(),u=jt();function o(i,d){if(!i)throw new Error(d)}a.type={name:"json1",uri:"http://sharejs.org/types/JSONv1",readCursor:r.readCursor,writeCursor:r.writeCursor,create:i=>i,isNoop:i=>i==null,setDebug(i){},registerSubtype:Z,checkValidOp:z,normalize:q,apply:De,transformPosition:de,compose:ne,tryTransform:st,transform:Wt,makeInvertible:Se,invert:le,invertWithDoc:Rt,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>yt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},a.type),{transform:(d,m,D)=>yt(i,d,m,D)})};const l=i=>i?i.getComponent():null;function E(i){return i&&typeof i=="object"&&!Array.isArray(i)}const W=i=>Array.isArray(i)?i.slice():i!==null&&typeof i=="object"?Object.assign({},i):i,_=i=>i&&(i.p!=null||i.r!==void 0),s=i=>i&&(i.d!=null||i.i!==void 0);function c(i,d){return o(i!=null),typeof d=="number"?(o(Array.isArray(i),"Invalid key - child is not an array"),(i=i.slice()).splice(d,1)):(o(E(i),"Invalid key - child is not an object"),delete(i=Object.assign({},i))[d]),i}function h(i,d,m){return typeof d=="number"?(o(i!=null,"Container is missing for key"),o(Array.isArray(i),"Cannot use numerical key for object container"),o(i.length>=d,"Cannot insert into out of bounds index"),i.splice(d,0,m)):(o(E(i),"Cannot insert into missing item"),o(i[d]===void 0,"Trying to overwrite value at key. Your op needs to remove it first"),i[d]=m),m}a.removeOp=(i,d=!0)=>r.writeCursor().writeAtPath(i,"r",d).get(),a.moveOp=(i,d)=>r.writeCursor().writeMove(i,d).get(),a.insertOp=(i,d)=>r.writeCursor().writeAtPath(i,"i",d).get(),a.replaceOp=(i,d,m)=>r.writeCursor().at(i,D=>{D.write("r",d),D.write("i",m)}).get(),a.editOp=(i,d,m,D=!1)=>r.writeCursor().at(i,O=>y(O,d,m,D)).get();const U=(i,d)=>i!=null&&(typeof d=="number"?Array.isArray(i):typeof i=="object"),Y=(i,d)=>U(i,d)?i[d]:void 0,pe={};function Z(i){let d=i.type?i.type:i;d.name&&(pe[d.name]=d),d.uri&&(pe[d.uri]=d)}const Ce=i=>{const d=pe[i];if(d)return d;throw Error("Missing type: "+i)};Z(zt());const qe=(i,d)=>i+d;Z({name:"number",apply:qe,compose:qe,invert:i=>-i,transform:i=>i});const me=i=>i==null?null:i.et?Ce(i.et):i.es?pe["text-unicode"]:i.ena!=null?pe.number:null,f=i=>i.es?i.es:i.ena!=null?i.ena:i.e,y=(i,d,m,D=!1)=>{const[O,C]=typeof d=="string"?[Ce(d),d]:[d,d.name];!D&&O.isNoop&&O.isNoop(m)||(C==="number"?i.write("ena",m):C==="text-unicode"?i.write("es",m):(i.write("et",C),i.write("e",m)))};function w(i){o(typeof i=="number"),o(i>=0),o(i===(0|i))}function L(i){typeof i=="number"?w(i):o(typeof i=="string")}function z(i){if(i===null)return;const d=new Set,m=new Set,D=C=>{let R=!0,N=!1;for(let g in C){const v=C[g];if(R=!1,o(g==="p"||g==="r"||g==="d"||g==="i"||g==="e"||g==="es"||g==="ena"||g==="et","Invalid component item '"+g+"'"),g==="p")w(v),o(!d.has(v)),d.add(v),o(C.r===void 0);else if(g==="d")w(v),o(!m.has(v)),m.add(v),o(C.i===void 0);else if(g==="e"||g==="es"||g==="ena"){o(!N),N=!0;const b=me(C);o(b,"Missing type in edit"),b.checkValidOp&&b.checkValidOp(f(C))}}o(!R)},O=(C,R,N)=>{if(!Array.isArray(C))throw Error("Op must be null or a list");if(C.length===0)throw Error("Empty descent");R||L(C[0]);let g=1,v=0,b=0;for(let I=0;I<C.length;I++){const $=C[I];if(o($!=null),Array.isArray($)){const x=O($,!1);if(v){const p=typeof b,M=typeof x;p===M?o(b<x,"descent keys are not in order"):o(p==="number"&&M==="string")}b=x,v++,g=3}else typeof $=="object"?(o(g===1,`Prev not scalar - instead ${g}`),D($),g=2):(o(g!==3),L($),o(r.isValidPathItem($),"Invalid path key"),g=1)}return o(v!==1,"Operation makes multiple descents. Remove some []"),o(g===2||g===3),C[0]};O(i,!0),o(d.size===m.size,"Mismatched picks and drops in op");for(let C=0;C<d.size;C++)o(d.has(C)),o(m.has(C))}function q(i){let d=0,m=[];const D=r.writeCursor();return D.mergeTree(i,(O,C)=>{const R=me(O);if(R){const g=f(O);y(C,R,R.normalize?R.normalize(g):g)}for(const g of["r","p","i","d"])if(O[g]!==void 0){const v=g==="p"||g==="d"?(N=O[g],m[N]==null&&(m[N]=d++),m[N]):O[g];C.write(g,v)}var N}),D.get()}function De(i,d){if(z(d),d===null)return i;const m=[];return function D(O,C){let R=O,N=0,g={root:O},v=0,b=g,I="root";function $(){for(;v<N;v++){let x=C[v];typeof x!="object"&&(o(U(b,I)),b=b[I]=W(b[I]),I=x)}}for(;N<C.length;N++){const x=C[N];if(Array.isArray(x)){const p=D(R,x);p!==R&&p!==void 0&&($(),R=b[I]=p)}else if(typeof x=="object"){x.d!=null?($(),R=h(b,I,m[x.d])):x.i!==void 0&&($(),R=h(b,I,x.i));const p=me(x);if(p)$(),R=b[I]=p.apply(R,f(x));else if(x.e!==void 0)throw Error("Subtype "+x.et+" undefined")}else R=Y(R,x)}return g.root}(i=function D(O,C){const R=[];let N=0;for(;N<C.length;N++){const I=C[N];if(Array.isArray(I))break;typeof I!="object"&&(R.push(O),O=Y(O,I))}for(let I=C.length-1;I>=N;I--)O=D(O,C[I]);for(--N;N>=0;N--){const I=C[N];if(typeof I!="object"){const $=R.pop();O=O===Y($,I)?$:O===void 0?c($,I):(v=I,b=O,(g=W(g=$))[v]=b,g)}else _(I)&&(o(O!==void 0,"Cannot pick up or remove undefined"),I.p!=null&&(m[I.p]=O),O=void 0)}var g,v,b;return O}(i,d),d)}function de(i,d){i=i.slice(),z(d);const m=r.readCursor(d);let D,O,C=!1;const R=[];for(let g=0;;g++){const v=i[g],b=m.getComponent();if(b&&(b.r!==void 0?C=!0:b.p!=null&&(C=!1,D=b.p,O=g)),g>=i.length)break;let I=0;const $=r.advancer(m,void 0,(p,M)=>{_(M)&&I++});R.unshift($);const x=$(v);if(typeof v=="number"&&(i[g]-=I),!x)break}if(R.forEach(g=>g.end()),C)return null;const N=()=>{let g=0;if(D!=null){const v=m.getPath();g=v.length,i=v.concat(i.slice(O))}for(;g<i.length;g++){const v=i[g],b=l(m),I=me(b);if(I){const p=f(b);I.transformPosition&&(i[g]=I.transformPosition(i[g],p));break}let $=0;const x=r.advancer(m,(p,M)=>s(M)?~(p-$):p-$,(p,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[g]+=$),!x)break}};return D!=null?m.eachDrop(null,g=>{g===D&&N()}):N(),i}function ne(i,d){if(z(i),z(d),i==null)return d;if(d==null)return i;let m=0;const D=r.readCursor(i),O=r.readCursor(d),C=r.writeCursor(),R=[],N=[],g=[],v=[],b=[],I=[],$=new Set;D.traverse(null,p=>{p.p!=null&&(g[p.p]=D.clone())}),O.traverse(null,p=>{p.d!=null&&(v[p.d]=O.clone())});const x=r.writeCursor();return function p(M,re,te,K,se,Re,be,_e){o(re||te);const oe=l(re),Te=l(te),Ae=!!Te&&Te.r!==void 0,Ke=!!oe&&oe.i!==void 0,Pe=oe?oe.d:null,Ee=Te?Te.p:null,We=(Re||Ae)&&Ee==null;if(Ee!=null)K=v[Ee],be=N[Ee]=new r.WriteCursor;else if(Te&&Te.r!==void 0)K=null;else{const T=l(K);T&&T.d!=null&&(K=null)}const Q=l(K);if(Pe!=null)if(M=g[Pe],_e=R[Pe]=new r.WriteCursor,We)Re&&!Ae&&_e.write("r",!0);else{const T=b[Pe]=m++;be.write("d",T)}else if(oe&&oe.i!==void 0)M=null;else{const T=l(M);T&&T.p!=null&&(M=null)}let P;Ke?(o(se===void 0),P=oe.i):P=se;const B=(Ee==null?!Ke||Re||Ae:P===void 0)?null:be.getComponent();if(Ee!=null){if(!(se!==void 0||Ke)){const T=Pe!=null?b[Pe]:m++;I[Ee]=T,_e.write("p",T)}}else Ae&&(Ke||se!==void 0||(Te.r,_e.write("r",Te.r)));const A=We?null:me(oe),S=me(Q);if((A||S)&&(A&&A.name,S&&S.name),A&&S){o(A===S);const T=f(oe),G=f(Q),ge=A.compose(T,G);y(be,A,ge),$.add(Q)}else A?y(be,A,f(oe)):S&&(y(be,S,f(Q)),$.add(Q));const j=typeof P=="object"&&P!=null;let J=!1,X=0,ee=0,he=0,fe=0,ae=0;const Oe=r.advancer(K,(T,G)=>s(G)?fe-T-1:T-fe,(T,G)=>{s(G)&&fe++}),V=r.advancer(M,(T,G)=>_(G)?X-T-1:T-X,(T,G)=>{_(G)&&X++});if(r.eachChildOf(re,te,(T,G,ge)=>{let we,xe,He=T,Me=T,Ze=T;if(typeof T=="number"){let ve=T+he;xe=Oe(ve),Me=ve+fe;let ue=T+ee;we=V(ue),s(l(xe))&&(we=null),He=ue+X,Ze=T+ae,o(He>=0,"p1PickKey is negative"),o(Me>=0,"p2DropKey is negative");const je=s(l(G)),Be=_(l(ge));(je||Be&&!We)&&ae--,je&&ee--,Be&&he--}else we=V(T),xe=Oe(T);_e.descend(He),be.descend(Me);const Je=j&&!s(l(G))?P[Ze]:void 0,Ne=p(we,G,ge,xe,Je,We,be,_e);var $e,k,ie;j&&!We?Je!==Ne&&(J||(P=Array.isArray(P)?P.slice():Object.assign({},P),J=!0),$e=P,ie=Ne,typeof(k=Ze)=="number"?(o(Array.isArray($e)),o(k<$e.length)):(o(!Array.isArray($e)),o($e[k]!==void 0)),ie===void 0?typeof k=="number"?$e.splice(k,1):delete $e[k]:$e[k]=ie):o(Ne===void 0),be.ascend(),_e.ascend()}),V.end(),Oe.end(),B!=null)B.i=P;else if(!Re&&!Ae&&Ee==null)return P}(D,D.clone(),O,O.clone(),void 0,!1,C,x),C.reset(),C.mergeTree(x.get()),C.reset(),C.get(),R.map(p=>p.get()),N.map(p=>p.get()),D.traverse(C,(p,M)=>{const re=p.p;if(re!=null){const te=b[re];te!=null&&M.write("p",te);const K=R[re];K&&K.get(),K&&M.mergeTree(K.get())}else p.r!==void 0&&M.write("r",p.r)}),C.reset(),C.get(),O.traverse(C,(p,M)=>{const re=p.d;if(re!=null){const K=I[re];K!=null&&M.write("d",K);const se=N[re];se&&M.mergeTree(se.get())}else p.i!==void 0&&M.write("i",p.i);const te=me(p);te&&!$.has(p)&&y(M,te,f(p))}),C.get()}function le(i){if(i==null)return null;const d=new r.ReadCursor(i),m=new r.WriteCursor;let D;const O=[],C=[];return function R(N,g,v){const b=N.getComponent();let I,$=!1;if(b){b.p!=null&&(g.write("d",b.p),O[b.p]=N.clone()),b.r!==void 0&&g.write("i",b.r),b.d!=null&&(g.write("p",b.d),v=void 0),b.i!==void 0&&(v=I=b.i);const p=me(b);p&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=p.apply(v,f(b)),$=!0))}let x=0;for(const p of N){g.descend(p);const M=typeof p=="number"?p-x:p,re=Y(v,M);s(N.getComponent())&&x++;const te=R(N,g,re);if(v!==void 0&&te!==void 0){if($||($=!0,v=W(v)),!U(v,M))throw Error("Cannot modify child - invalid operation");v[M]=te}g.ascend()}if(I===void 0)return $?v:void 0;g.write("r",v)}(d,m,void 0),D&&(m.reset(),function R(N,g,v){const b=g.getComponent();if(b){const p=b.d;if(p!=null&&(N=O[p],v=C[p]=r.writeCursor()),D.has(b)){const M=me(b);if(!M.invert)throw Error(`Cannot invert subtype ${M.name}`);y(v,M,M.invert(f(b)))}}let I=0,$=0;const x=r.advancer(N,(p,M)=>_(M)?I-p-1:p-I,(p,M)=>{_(M)&&I++});for(const p of g)if(typeof p=="number"){const M=p-$,re=x(M),te=M+I;v.descend(te),R(re,g,v),s(g.getComponent())&&$++,v.ascend()}else v.descend(p),R(x(p),g,v),v.ascend();x.end()}(d.clone(),d,m),C.length&&(m.reset(),d.traverse(m,(R,N)=>{const g=R.p;if(g!=null){const v=C[g];v&&v.get(),v&&N.mergeTree(v.get())}}))),m.get()}const ye=(i,d)=>i.some(m=>typeof m=="object"&&(Array.isArray(m)?ye(m,d):d(m)));function Se(i,d){if(i==null||!ye(i,g=>{var v;return g.r!==void 0||((v=me(g))===null||v===void 0?void 0:v.makeInvertible)!=null}))return i;const m=new r.ReadCursor(i),D=new r.WriteCursor;let O=!1;const C=[],R=[],N=(g,v,b)=>{const I=g.getComponent();let $=!1;if(I){I.d!=null&&v.write("d",I.d),I.i!==void 0&&v.write("i",I.i);const p=I.p;if(p!=null&&(C[p]=g.clone(),o(b!==void 0,"Operation picks up at an invalid key"),R[p]=b,v.write("p",I.p)),I.r!==void 0&&b===void 0)throw Error("Invalid doc / op in makeInvertible: removed item missing from doc");const M=me(I);M&&(M.makeInvertible?O=!0:y(v,M,f(I),!0))}let x=0;for(const p of g){v.descend(p);const M=typeof p=="number"?p-x:p,re=Y(b,M),te=N(g,v,re);re!==te&&($||($=!0,b=W(b)),te===void 0?(b=c(b,M),typeof p=="number"&&x++):b[M]=te),v.ascend()}return I&&(I.r!==void 0?(v.write("r",t.default(b)),b=void 0):I.p!=null&&(b=void 0)),b};return N(m,D,d),D.get(),O&&(D.reset(),function g(v,b,I,$,x){const p=b.getComponent();if(p){p.i!==void 0?($=p.i,x=!0):p.d!=null&&($=R[p.d],v=C[p.d],x=!1,p.d);let K=me(p);if(K&&K.makeInvertible){const se=f(p);y(I,K,K.makeInvertible(se,$),!0)}}let M=0,re=0;const te=r.advancer(v,(K,se)=>_(se)?M-K-1:K-M,(K,se)=>{_(se)&&M++});for(const K of b)if(typeof K=="number"){const se=K-re,Re=te(se),be=se+M,_e=Y($,x?se:be);I.descend(K),g(Re,b,I,_e,x),s(b.getComponent())&&re++,I.ascend()}else{const se=Y($,K);I.descend(K),g(te(K),b,I,se,x),I.ascend()}te.end()}(m.clone(),m,D,d,!1)),D.get()}function Rt(i,d){return le(Se(i,d))}const it=i=>{if(i==null)return null;const d=i.slice();for(let m=0;m<i.length;m++){const D=d[m];Array.isArray(D)&&(d[m]=it(D))}return d};function st(i,d,m){o(m==="left"||m==="right","Direction must be left or right");const D=m==="left"?0:1;if(d==null)return{ok:!0,result:i};z(i),z(d);let O=null;const C=[],R=[],N=[],g=[],v=[],b=[],I=[],$=[],x=[],p=[],M=[],re=[],te=[],K=[],se=[];let Re=0;const be=r.readCursor(i),_e=r.readCursor(d),oe=r.writeCursor();if(function Q(P,B=null,A){const S=l(B);S&&(S.r!==void 0?A=B.clone():S.p!=null&&(A=null,b[S.p]=P.clone()));const j=P.getComponent();let J;j&&(J=j.p)!=null&&(v[J]=B?B.clone():null,N[J]=P.clone(),A&&(p[J]=!0,x[J]=A),S&&S.p!=null&&(K[J]=S.p));const X=r.advancer(B);for(const ee of P)Q(P,X(ee),A);X.end()}(_e,be,null),function Q(P,B,A,S,j){const J=A.getComponent();let X,ee=!1;J&&((X=J.d)!=null?(g[X]=A.clone(),S!=null&&(se[S]==null&&(se[S]=[]),se[S].push(X)),p[X],P=v[X]||null,B=N[X]||null,p[X]?(j&&(M[X]=!0),j=x[X]||null):!j||D!==1&&K[X]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.moveOp(B.getPath(),A.getPath())}),ee=!0):J.i!==void 0&&(P=B=null,ee=!0,j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.insertOp(A.getPath(),J.i)})));const he=l(P);he&&(he.r!==void 0?j=P.clone():he.p!=null&&(he.p,S=he.p,j=null));const fe=me(J);fe&&j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.editOp(A.getPath(),fe,f(J),!0)});let ae=0,Oe=0;const V=r.advancer(B,(G,ge)=>_(ge)?ae-G-1:G-ae,(G,ge)=>{_(ge)&&ae++}),T=r.advancer(P);for(const G of A)if(typeof G=="number"){const ge=G-Oe,we=V(ge);Oe+=+Q(T(ge+ae),we,A,S,j)}else{const ge=V(G);Q(T(G),ge,A,S,j)}return V.end(),T.end(),ee}(be,_e,_e.clone(),null,null),g.map(Q=>Q&&Q.get()),O)return{ok:!1,conflict:O};M.map(Q=>!!Q);const Te=[];let Ae=null;(function Q(P,B,A,S,j){let J=!1;const X=l(B);if(_(X)){const V=X.p;V!=null?(A=g[V],S=re[V]=r.writeCursor(),J=!0,j=null):(A=null,j=B.clone())}else s(l(A))&&(A=null);const ee=P.getComponent();if(ee){const V=ee.p;V!=null?(j&&($[V]=j),Te[V]=j||D===1&&J?null:S.getComponent(),C[V]=P.clone(),A&&(I[V]=A.clone())):ee.r!==void 0&&(j||S.write("r",!0),(j||J)&&(Ae==null&&(Ae=new Set),Ae.add(ee)))}let he=0,fe=0;const ae=r.advancer(B,void 0,(V,T)=>{_(T)&&he++}),Oe=r.advancer(A,(V,T)=>s(T)?~(V-fe):V-fe,(V,T)=>{s(T)&&fe++});if(P)for(const V of P)if(typeof V=="string"){const T=ae(V),G=Oe(V);S.descend(V),Q(P,T,G,S,j),S.ascend()}else{const T=ae(V),G=V-he,ge=_(l(T))?null:Oe(G),we=G+fe;o(we>=0),S.descend(we),Q(P,T,ge,S,j),S.ascend()}ae.end(),Oe.end()})(be,_e,_e.clone(),oe,null),oe.reset();let Ke=[];if(function Q(P,B,A,S,j,J){o(B);const X=B.getComponent();let ee=l(S),he=!1;const fe=(k,ie,ve)=>k?a.moveOp(k.getPath(),ie.getPath()):a.insertOp(ie.getPath(),ve.i);if(s(X)){const k=X.d;k!=null&&(R[k]=B.clone());const ie=k!=null?Te[k]:null;let ve=!1;if(X.i!==void 0||k!=null&&ie){let ue;ee&&(ee.i!==void 0||(ue=ee.d)!=null&&!p[ue])&&(ve=ue!=null?k!=null&&k===K[ue]:n.default(ee.i,X.i),ve||ue!=null&&D!==1&&K[ue]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:fe(k!=null?C[k]:null,B,X),op2:fe(ue!=null?N[ue]:null,S,ee)})),ve||(J?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:fe(k!=null?C[k]:null,B,X),op2:a.removeOp(J.getPath())}):(k!=null?(Ke[Re]=k,j.write("d",ie.p=Re++)):j.write("i",t.default(X.i)),he=!0))}else if(k!=null&&!ie){const ue=$[k];ue&&(J=ue.clone())}k!=null?(P=C[k],A=b[k],S=I[k]):X.i!==void 0&&(P=A=null,ve||(S=null))}else _(l(P))&&(P=A=S=null);const ae=l(P),Oe=l(A);if(_(Oe)){const k=Oe.p;Oe.r!==void 0&&(!ae||ae.r===void 0)||p[k]?(S=null,J=A.clone()):k!=null&&(S=g[k],D!==1&&K[k]!=null||((j=te[k])||(j=te[k]=r.writeCursor()),j.reset(),J=null))}else!s(X)&&s(ee)&&(S=null);ee=S!=null?S.getComponent():null;const V=me(X);if(V){const k=f(X);if(J)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.editOp(B.getPath(),V,k,!0),op2:a.removeOp(J.getPath())});else{const ie=me(ee);let ve;if(ie){if(V!==ie)throw Error("Transforming incompatible types");const ue=f(ee);ve=V.transform(k,ue,m)}else ve=t.default(k);y(j,V,ve)}}let T=0,G=0,ge=0,we=0,xe=0,He=0,Me=P!=null&&P.descendFirst(),Ze=Me;const Je=r.advancer(A,void 0,(k,ie)=>{_(ie)&&ge++});let Ne=S!=null&&S.descendFirst(),$e=Ne;for(const k of B)if(typeof k=="number"){let ie;const ve=s(B.getComponent()),ue=k-G;{let Ge;for(;Me&&typeof(Ge=P.getKey())=="number";){Ge+=T;const Ue=P.getComponent(),Ye=_(Ue);if(Ge>ue||Ge===ue&&(!Ye||D===0&&ve))break;if(Ye){T--;const Fe=Ue.p;K.includes(Fe),Ue.d,l(te[Ue.d]),_(l(te[Ue.d])),(Ue.r===void 0||Ae&&Ae.has(Ue))&&(Fe==null||!Te[Fe]||D!==1&&K.includes(Fe))||xe--}Me=P.nextSibling()}ie=Me&&Ge===ue?P:null}const je=ue-T;let Be=Je(je);const ot=je-ge;let et=null;{let Ge,Ue;for(;Ne&&typeof(Ge=S.getKey())=="number";){Ue=Ge-we;const Ye=S.getComponent(),Fe=s(Ye);if(Ue>ot)break;if(Ue===ot){if(!Fe){et=S;break}{if(D===0&&ve){et=S;break}const Le=Be&&_(Be.getComponent());if(D===0&&Le)break}}if(Fe){const Le=Ye.d;p[Le],K[Le],Ye.i===void 0&&(p[Le]||K[Le]!=null&&D!==1)?(p[Le]||K[Le]!=null&&D===0)&&(we++,He--):we++}Ne=S.nextSibling()}}const _t=ot+we+xe+He;o(_t>=0,"trying to descend to a negative index"),j.descend(_t),ve&&(ie=Be=et=null,G++),Q(ie,B,Be,et,j,J)&&He++,j.ascend()}else{let ie;for(;Me&&(ie=P.getKey(),typeof ie!="string"||!(ie>k||ie===k));)Me=P.nextSibling();const ve=Me&&ie===k?P:null,ue=Je(k);let je;for(;Ne&&(je=S.getKey(),typeof je!="string"||!(je>k||je===k));)Ne=S.nextSibling();const Be=Ne&&je===k?S:null;j.descend(k),Q(ve,B,ue,Be,j,J),j.ascend()}return Je.end(),Ze&&P.ascend(),$e&&S.ascend(),he}(be,be.clone(),_e,_e.clone(),oe,null),O)return{ok:!1,conflict:O};oe.reset();const Pe=(Q,P,B)=>Q.traverse(P,(A,S)=>{A.d!=null&&B(A.d,Q,S)});(p.length||re.length)&&(Pe(_e,oe,(Q,P,B)=>{p[Q]&&!M[Q]&&B.write("r",!0),re[Q]&&B.mergeTree(re[Q].get())}),oe.reset());const Ee=[],We=[];if((te.length||p.length)&&!O){const Q=r.readCursor(it(oe.get()));if(Pe(Q,null,(P,B)=>{Ee[P]=B.clone()}),te.forEach(P=>{P&&Pe(r.readCursor(P.get()),null,(B,A)=>{Ee[B]=A.clone()})}),function P(B,A,S,j,J,X){const ee=l(A);if(ee&&_(ee))if(ee.p!=null){const T=ee.p;Ee[T].getPath(),S=Ee[T],j=We[T]=r.writeCursor()}else ee.r!==void 0&&(S=null);else s(l(S))&&(S=null);const he=B.getComponent();if(he){let T;if((T=he.d)!=null){const G=te[T];G&&(G.get(),j.mergeTree(G.get()),S=r.readCursor(G.get()))}}let fe=0,ae=0;const Oe=r.advancer(A,void 0,(T,G)=>{_(G)&&fe--}),V=r.advancer(S,(T,G)=>s(G)?-(T-ae)-1:T-ae,(T,G)=>{s(G)&&ae++});for(const T of B)if(typeof T=="number"){const G=Oe(T),ge=T+fe,we=V(ge),xe=ge+ae;j.descend(xe),P(B,G,we,j),j.ascend()}else j.descend(T),P(B,Oe(T),V(T),j),j.ascend();Oe.end(),V.end()}(_e,Q,Q.clone(),oe),oe.reset(),O)return{ok:!1,conflict:O};if(oe.get(),We.length){const P=We.map(A=>A?A.get():null),B=r.readCursor(it(oe.get()));if(Pe(B,oe,(A,S,j)=>{const J=P[A];J&&(j.mergeTree(J),P[A]=null)}),P.find(A=>A)){const A=r.writeCursor(),S=r.writeCursor();let j=0,J=0;P.forEach(X=>{X!=null&&Pe(r.readCursor(X),null,ee=>{const he=Ke[ee];A.writeMove(C[he].getPath(),R[he].getPath(),j++);const fe=se[he];fe&&fe.forEach(ae=>{p[ae]||D!==1&&K[ae]!=null||S.writeMove(N[ae].getPath(),g[ae].getPath(),J++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:S.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:oe.get()}}const pt=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function Wt(i,d,m){const D=st(i,d,m);if(D.ok)return D.result;pt(D.conflict)}const Xe=i=>{const d=r.writeCursor();return r.readCursor(i).traverse(d,(m,D)=>{(s(m)||me(m))&&D.write("r",!0)}),d.get()},xt=(i,d)=>{const{type:m,op1:D,op2:O}=i;switch(m){case u.ConflictType.DROP_COLLISION:return d==="left"?[null,Xe(O)]:[Xe(D),null];case u.ConflictType.RM_UNEXPECTED_CONTENT:let C=!1;return r.readCursor(D).traverse(null,R=>{R.r!==void 0&&(C=!0)}),C?[null,Xe(O)]:[Xe(D),null];case u.ConflictType.BLACKHOLE:return[Xe(D),Xe(O)];default:throw Error("Unrecognised conflict: "+m)}};function yt(i,d,m,D){let O=null;for(;;){const C=st(d,m,D);if(C.ok)return ne(O,C.result);{const{conflict:R}=C;i(R)||pt(R);const[N,g]=xt(R,D);d=ne(q(d),N),m=ne(q(m),g),O=ne(O,g)}}}}(Qe)),Qe}var St;function Jt(){return St||(St=1,function(a){var e=Ve&&Ve.__createBinding||(Object.create?function(u,o,l,E){E===void 0&&(E=l),Object.defineProperty(u,E,{enumerable:!0,get:function(){return o[l]}})}:function(u,o,l,E){E===void 0&&(E=l),u[E]=o[l]}),n=Ve&&Ve.__exportStar||function(u,o){for(var l in u)l!=="default"&&!o.hasOwnProperty(l)&&e(o,u,l)};Object.defineProperty(a,"__esModule",{value:!0}),n(Xt(),a);var t=Mt();Object.defineProperty(a,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(a,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var r=jt();Object.defineProperty(a,"ConflictType",{enumerable:!0,get:function(){return r.ConflictType}})}(Ve)),Ve}var F=Jt();class Ut{constructor(){H(this,"drawingManagerData",{});H(this,"_oldDrawingManagerData",{});H(this,"_focusDrawings",[]);H(this,"_remove$",new Ie.Subject);H(this,"remove$",this._remove$.asObservable());H(this,"_add$",new Ie.Subject);H(this,"add$",this._add$.asObservable());H(this,"_update$",new Ie.Subject);H(this,"update$",this._update$.asObservable());H(this,"_order$",new Ie.Subject);H(this,"order$",this._order$.asObservable());H(this,"_group$",new Ie.Subject);H(this,"group$",this._group$.asObservable());H(this,"_ungroup$",new Ie.Subject);H(this,"ungroup$",this._ungroup$.asObservable());H(this,"_refreshTransform$",new Ie.Subject);H(this,"refreshTransform$",this._refreshTransform$.asObservable());H(this,"_visible$",new Ie.Subject);H(this,"visible$",this._visible$.asObservable());H(this,"_focus$",new Ie.Subject);H(this,"focus$",this._focus$.asObservable());H(this,"_featurePluginUpdate$",new Ie.Subject);H(this,"featurePluginUpdate$",this._featurePluginUpdate$.asObservable());H(this,"_featurePluginAdd$",new Ie.Subject);H(this,"featurePluginAdd$",this._featurePluginAdd$.asObservable());H(this,"_featurePluginRemove$",new Ie.Subject);H(this,"featurePluginRemove$",this._featurePluginRemove$.asObservable());H(this,"_featurePluginOrderUpdate$",new Ie.Subject);H(this,"featurePluginOrderUpdate$",this._featurePluginOrderUpdate$.asObservable());H(this,"_featurePluginGroupUpdate$",new Ie.Subject);H(this,"featurePluginGroupUpdate$",this._featurePluginGroupUpdate$.asObservable());H(this,"_featurePluginUngroupUpdate$",new Ie.Subject);H(this,"featurePluginUngroupUpdate$",this._featurePluginUngroupUpdate$.asObservable());H(this,"_visible",!0);H(this,"_editable",!0)}dispose(){this._remove$.complete(),this._add$.complete(),this._update$.complete(),this._order$.complete(),this._focus$.complete(),this._featurePluginUpdate$.complete(),this._featurePluginAdd$.complete(),this._featurePluginRemove$.complete(),this._featurePluginOrderUpdate$.complete(),this.drawingManagerData={},this._oldDrawingManagerData={}}visibleNotification(e){this._visible$.next(e)}refreshTransform(e){e.forEach(n=>{const t=this._getCurrentBySearch(n);t!=null&&(t.transform=n.transform,t.transforms=n.transforms,t.isMultiTransform=n.isMultiTransform)}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return this.drawingManagerData[e]||{}}removeDrawingDataForUnit(e){const n=this.drawingManagerData[e];if(n==null)return;delete this.drawingManagerData[e];const t=[];Object.keys(n).forEach(r=>{const u=n[r];(u==null?void 0:u.data)!=null&&Object.keys(u.data).forEach(o=>{t.push({unitId:e,subUnitId:r,drawingId:o})})}),t.length>0&&this.removeNotification(t)}registerDrawingData(e,n){this.drawingManagerData[e]=n}initializeNotification(e){const n=[],t=this.drawingManagerData[e];t!=null&&(Object.keys(t).forEach(r=>{this._establishDrawingMap(e,r);const u=t[r];Object.keys(u.data).forEach(o=>{const l=u.data[o];l.unitId=e,l.subUnitId=r,n.push(l)})}),n.length>0&&this.addNotification(n))}getDrawingData(e,n){return this._getDrawingData(e,n)}setDrawingData(e,n,t){this.drawingManagerData[e][n].data=t}getBatchAddOp(e){const n=[],t=[],r=[];e.forEach(W=>{const{op:_,invertOp:s}=this._addByParam(W);n.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),r.push(s)});const u=t.reduce(F.type.compose,null),o=r.reduce(F.type.compose,null),{unitId:l,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:l,subUnitId:E,objects:n}}getBatchRemoveOp(e){const n=[],t=[];e.forEach(E=>{const{op:W,invertOp:_}=this._removeByParam(E);n.unshift(W),t.push(_)});const r=n.reduce(F.type.compose,null),u=t.reduce(F.type.compose,null),{unitId:o,subUnitId:l}=e[0];return{undo:u,redo:r,unitId:o,subUnitId:l,objects:e}}getBatchUpdateOp(e){const n=[],t=[],r=[];e.forEach(W=>{const{op:_,invertOp:s}=this._updateByParam(W);n.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),r.push(s)});const u=t.reduce(F.type.compose,null),o=r.reduce(F.type.compose,null),{unitId:l,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:l,subUnitId:E,objects:n}}removeNotification(e){this._remove$.next(e)}addNotification(e){this._add$.next(e)}updateNotification(e){this._update$.next(e)}orderNotification(e){this._order$.next(e)}groupUpdateNotification(e){this._group$.next(e)}ungroupUpdateNotification(e){this._ungroup$.next(e)}refreshTransformNotification(e){this._refreshTransform$.next(e)}getGroupDrawingOp(e){const n=[],{unitId:t,subUnitId:r}=e[0].parent;e.forEach(l=>{n.push(this._getGroupDrawingOp(l))});const u=n.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:r,objects:e}}getUngroupDrawingOp(e){const n=[],{unitId:t,subUnitId:r}=e[0].parent;e.forEach(l=>{n.push(this._getUngroupDrawingOp(l))});const u=n.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:r,objects:e}}getDrawingsByGroup(e){const{unitId:n,subUnitId:t,drawingId:r}=e;if(this.getDrawingByParam({unitId:n,subUnitId:t,drawingId:r})==null)return[];const o=this._getDrawingData(n,t),l=[];return Object.keys(o).forEach(E=>{const W=o[E];W.groupId===r&&l.push(W)}),l}_getGroupDrawingOp(e){const{parent:n,children:t}=e,{unitId:r,subUnitId:u,drawingId:o}=n,l=[];l.push(F.insertOp([r,u,"data",o],n));let E=Number.NEGATIVE_INFINITY;return t.forEach(W=>{const{unitId:_,subUnitId:s,drawingId:c}=W,h=this._hasDrawingOrder({unitId:_,subUnitId:s,drawingId:c});E=Math.max(E,h),l.push(...this._getUpdateParamCompareOp(W,this.getDrawingByParam({unitId:_,subUnitId:s,drawingId:c})))}),E===Number.NEGATIVE_INFINITY&&(E=this._getDrawingOrder(r,u).length),l.push(F.insertOp([r,u,"order",E],o)),l.reduce(F.type.compose,null)}_getUngroupDrawingOp(e){const{parent:n,children:t}=e,{unitId:r,subUnitId:u,drawingId:o}=n,l=[];return t.forEach(E=>{const{unitId:W,subUnitId:_,drawingId:s}=E;l.push(...this._getUpdateParamCompareOp(E,this.getDrawingByParam({unitId:W,subUnitId:_,drawingId:s})))}),l.push(F.removeOp([r,u,"data",o],!0)),l.push(F.removeOp([r,u,"order",this._getDrawingOrder(r,u).indexOf(o)],!0)),l.reduce(F.type.compose,null)}applyJson1(e,n,t){this._establishDrawingMap(e,n),this._oldDrawingManagerData={...this.drawingManagerData},this.drawingManagerData=F.type.apply(this.drawingManagerData,t)}featurePluginUpdateNotification(e){this._featurePluginUpdate$.next(e)}featurePluginOrderUpdateNotification(e){this._featurePluginOrderUpdate$.next(e)}featurePluginAddNotification(e){this._featurePluginAdd$.next(e)}featurePluginRemoveNotification(e){this._featurePluginRemove$.next(e)}featurePluginGroupUpdateNotification(e){this._featurePluginGroupUpdate$.next(e)}featurePluginUngroupUpdateNotification(e){this._featurePluginUngroupUpdate$.next(e)}getDrawingByParam(e){return this._getCurrentBySearch(e)}getOldDrawingByParam(e){return this._getOldBySearch(e)}getDrawingOKey(e){const[n,t,r]=e.split("#-#");return this._getCurrentBySearch({unitId:n,subUnitId:t,drawingId:r})}focusDrawing(e){if(e==null||e.length===0){this._focusDrawings=[],this._focus$.next([]);return}const n=[];e.forEach(t=>{var E;const{unitId:r,subUnitId:u,drawingId:o}=t,l=(E=this._getDrawingData(r,u))==null?void 0:E[o];l!=null&&n.push(l)}),n.length>0&&(this._focusDrawings=n,this._focus$.next(n))}getFocusDrawings(){const e=[];return this._focusDrawings.forEach(n=>{var l;const{unitId:t,subUnitId:r,drawingId:u}=n,o=(l=this._getDrawingData(t,r))==null?void 0:l[u];o!=null&&e.push(o)}),e}getDrawingOrder(e,n){return this._getDrawingOrder(e,n)}setDrawingOrder(e,n,t){this.drawingManagerData[e][n].order=t}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=[],o=this.getDrawingOrder(n,t),l=[...r];r.forEach(_=>{const s=this._hasDrawingOrder({unitId:n,subUnitId:t,drawingId:_});if(s===-1||s===o.length-1)return;const c=F.moveOp([n,t,"order",s],[n,t,"order",s+1]);u.push(c),l.includes(o[s+1])||l.push(o[s+1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:n,subUnitId:t,objects:{...e,drawingIds:l}}}getBackwardDrawingOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=[],o=this.getDrawingOrder(n,t),l=[...r];r.forEach(_=>{const s=this._hasDrawingOrder({unitId:n,subUnitId:t,drawingId:_});if(s===-1||s===0)return;const c=F.moveOp([n,t,"order",s],[n,t,"order",s-1]);u.push(c),l.includes(o[s-1])||l.push(o[s-1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:n,subUnitId:t,objects:{...e,drawingIds:l}}}getFrontDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=this._getOrderFromSearchParams(n,t,r),o=[...r],l=this.getDrawingOrder(n,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=this._getDrawingCount(n,t)-1,U=F.moveOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(c)],[n,t,"order",h]);E.push(U),o.includes(l[h])||o.push(l[h])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:n,subUnitId:t,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=this._getOrderFromSearchParams(n,t,r,!0),o=[...r],l=this.getDrawingOrder(n,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=F.moveOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(c)],[n,t,"order",0]);E.push(h),o.includes(l[0])||o.push(l[0])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:n,subUnitId:t,objects:{...e,drawingIds:o}}}_getDrawingCount(e,n){return this.getDrawingOrder(e,n).length||0}_getOrderFromSearchParams(e,n,t,r=!1){return t.map(u=>{const o=this._hasDrawingOrder({unitId:e,subUnitId:n,drawingId:u});return{drawingId:u,zIndex:o}}).sort(r===!1?ce.sortRules:ce.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;const{unitId:n,subUnitId:t,drawingId:r}=e;return this._establishDrawingMap(n,t),this._getDrawingOrder(n,t).indexOf(r)}_getCurrentBySearch(e){var u,o,l;if(e==null)return;const{unitId:n,subUnitId:t,drawingId:r}=e;return(l=(o=(u=this.drawingManagerData[n])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:l[r]}_getOldBySearch(e){var u,o,l;if(e==null)return;const{unitId:n,subUnitId:t,drawingId:r}=e;return(l=(o=(u=this._oldDrawingManagerData[n])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:l[r]}_establishDrawingMap(e,n,t){var r;return this.drawingManagerData[e]||(this.drawingManagerData[e]={}),this.drawingManagerData[e][n]||(this.drawingManagerData[e][n]={data:{},order:[]}),t==null?null:(r=this.drawingManagerData[e][n].data)==null?void 0:r[t]}_addByParam(e){const{unitId:n,subUnitId:t,drawingId:r}=e;this._establishDrawingMap(n,t,r);const u=F.insertOp([n,t,"data",r],e),o=F.insertOp([n,t,"order",this._getDrawingOrder(n,t).length],r),l=[u,o].reduce(F.type.compose,null),E=F.type.invertWithDoc(l,this.drawingManagerData);return{op:l,invertOp:E}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};const{unitId:n,subUnitId:t,drawingId:r}=e;if(this._establishDrawingMap(n,t,r)==null)return{op:[],invertOp:[]};const o=F.removeOp([n,t,"data",r],!0),l=F.removeOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(r)],!0),E=[o,l].reduce(F.type.compose,null),W=F.type.invertWithDoc(E,this.drawingManagerData);return{op:E,invertOp:W}}_updateByParam(e){const{unitId:n,subUnitId:t,drawingId:r}=e,u=this._establishDrawingMap(n,t,r);if(u==null)return{op:[],invertOp:[]};const l=this._getUpdateParamCompareOp(e,u).reduce(F.type.compose,null),E=F.type.invertWithDoc(l,this.drawingManagerData);return{op:l,invertOp:E}}_getUpdateParamCompareOp(e,n){const{unitId:t,subUnitId:r,drawingId:u}=e,o=[];return Object.keys(e).forEach(l=>{const E=e[l],W=n[l];W!==E&&o.push(F.replaceOp([t,r,"data",u,l],W,E))}),o}_getDrawingData(e,n){var t,r;return((r=(t=this.drawingManagerData[e])==null?void 0:t[n])==null?void 0:r.data)||{}}_getDrawingOrder(e,n){var t,r;return((r=(t=this.drawingManagerData[e])==null?void 0:t[n])==null?void 0:r.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}}class kt extends Ut{}function Yt({unitId:a,subUnitId:e,drawingId:n},t){return typeof t=="number"?`${a}#-#${e}#-#${n}#-#${t}`:`${a}#-#${e}#-#${n}`}const Zt=async a=>new Promise((e,n)=>{const t=new Image;t.src=a,t.onload=()=>{e({width:t.width,height:t.height,image:t})},t.onerror=r=>{n(r)}}),gt=ce.createIdentifier("univer.drawing-manager.service"),Nt={id:"drawing.operation.set-drawing-selected",type:ce.CommandType.OPERATION,handler:(a,e)=>{const n=a.get(gt);return e==null?!1:(n.focusDrawing(e),!0)}},Qt="drawing.config",Tt={};class $t{constructor(){H(this,"_waitCount",0);H(this,"_change$",new Ie.Subject);H(this,"change$",this._change$);H(this,"_imageSourceCache",new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,n){if(n===ce.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,n,t){n===ce.ImageSourceType.BASE64||t==null||this._imageSourceCache.set(e,t)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((n,t)=>{if(!At.includes(e.type)){t(new Error(ce.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>Pt){t(new Error(ce.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}const r=new FileReader;r.readAsDataURL(e),r.onload=u=>{var E;const o=(E=u.target)==null?void 0:E.result;if(o==null){t(new Error(ce.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const l=ce.Tools.generateRandomId(6);n({imageId:l,imageSourceType:ce.ImageSourceType.BASE64,source:o,base64Cache:o,status:ce.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var en=Object.getOwnPropertyDescriptor,tn=(a,e,n,t)=>{for(var r=t>1?void 0:t?en(e,n):e,u=a.length-1,o;u>=0;u--)(o=a[u])&&(r=o(r)||r);return r},ct=(a,e)=>(n,t)=>e(n,t,a);const nn="UNIVER_DRAWING_PLUGIN";var dt;exports.UniverDrawingPlugin=(dt=class extends ce.Plugin{constructor(e=Tt,n,t,r){super(),this._config=e,this._injector=n,this._configService=t,this._commandService=r;const{...u}=ce.merge({},Tt,this._config);this._configService.setConfig(Qt,u)}onStarting(){this._initCommands(),this._initDependencies()}_initDependencies(){var t;const e=[[ce.IImageIoService,{useClass:$t}],[gt,{useClass:kt}]];ce.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(r=>this._injector.add(r))}_initCommands(){[Nt].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}},H(dt,"pluginName",nn),dt);exports.UniverDrawingPlugin=tn([ct(1,ce.Inject(ce.Injector)),ct(2,ce.IConfigService),ct(3,ce.ICommandService)],exports.UniverDrawingPlugin);Object.defineProperty(exports,"IImageIoService",{enumerable:!0,get:()=>ce.IImageIoService});Object.defineProperty(exports,"ImageSourceType",{enumerable:!0,get:()=>ce.ImageSourceType});Object.defineProperty(exports,"ImageUploadStatusType",{enumerable:!0,get:()=>ce.ImageUploadStatusType});exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST=At;exports.DRAWING_IMAGE_ALLOW_SIZE=Pt;exports.DRAWING_IMAGE_COUNT_LIMIT=Kt;exports.DRAWING_IMAGE_HEIGHT_LIMIT=qt;exports.DRAWING_IMAGE_WIDTH_LIMIT=Lt;exports.DrawingManagerService=kt;exports.IDrawingManagerService=gt;exports.ImageIoService=$t;exports.SetDrawingSelectedOperation=Nt;exports.UnitDrawingService=Ut;exports.getDrawingShapeKeyByDrawingSearch=Yt;exports.getImageSize=Zt;
1
+ "use strict";var Bt=Object.defineProperty;var Gt=(a,e,n)=>e in a?Bt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n;var H=(a,e,n)=>Gt(a,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ce=require("@univerjs/core"),Ie=require("rxjs"),Lt=500,qt=500,Kt=10,Pt=5*1024*1024,At=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"],ht=ce.createIdentifier("univer.drawing-manager.service"),Mt={id:"drawing.operation.set-drawing-selected",type:ce.CommandType.OPERATION,handler:(a,e)=>{const n=a.get(ht);return e==null?!1:(n.focusDrawing(e),!0)}},Ht="drawing.config",vt={};var Ve={},Qe={},tt={},mt;function Ft(){if(mt)return tt;mt=1,Object.defineProperty(tt,"__esModule",{value:!0});function a(t,r){if(Array.isArray(r))return!1;for(let u in t)if(!n(t[u],r[u]))return!1;for(let u in r)if(t[u]===void 0)return!1;return!0}function e(t,r){if(!Array.isArray(r)||t.length!==r.length)return!1;for(let u=0;u<t.length;u++)if(!n(t[u],r[u]))return!1;return!0}function n(t,r){return t===r?!0:t===null||r===null||typeof t!="object"||typeof r!="object"?!1:Array.isArray(t)?e(t,r):a(t,r)}return tt.default=n,tt}var nt={},Ot;function Vt(){if(Ot)return nt;Ot=1,Object.defineProperty(nt,"__esModule",{value:!0});function a(e){if(e===null)return null;if(Array.isArray(e))return e.map(a);if(typeof e=="object"){const n={};for(let t in e)n[t]=a(e[t]);return n}else return e}return nt.default=a,nt}var at={},bt;function jt(){return bt||(bt=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.eachChildOf=a.advancer=a.readCursor=a.writeCursor=a.WriteCursor=a.ReadCursor=a.isValidPathItem=void 0;function e(_,s){if(!_)throw new Error(s)}const n=_=>_!=null&&typeof _=="object"&&!Array.isArray(_),t=(_,s)=>typeof _==typeof s?_>s:typeof _=="string"&&typeof s=="number";function r(_,s){for(let c in _){const h=c;s.write(h,_[h])}}a.isValidPathItem=_=>typeof _=="number"||typeof _=="string"&&_!=="__proto__";class u{constructor(s=null){this.parents=[],this.indexes=[],this.lcIdx=-1,this.idx=-1,this.container=s}ascend(){e(this.parents.length===this.indexes.length/2),this.idx===0?this.parents.length?(this.lcIdx=this.indexes.pop(),this.container=this.parents.pop(),this.idx=this.indexes.pop()):(this.lcIdx=0,this.idx=-1):(e(this.idx>0),this.idx--,n(this.container[this.idx])&&this.idx--)}getPath(){const s=[];let c=this.container,h=this.parents.length-1,U=this.idx;for(;U>=0;)s.unshift(c[U]),U===0?(U=this.indexes[h*2],c=this.parents[h--]):U-=n(c[U-1])?2:1;return s}}class o extends u{get(){return this.container?this.container.slice(this.idx+1):null}getKey(){return e(this.container!=null,"Invalid call to getKey before cursor descended"),this.container[this.idx]}getComponent(){let s;return this.container&&this.container.length>this.idx+1&&n(s=this.container[this.idx+1])?s:null}descendFirst(){let s=this.idx+1;if(!this.container||s>=this.container.length||n(this.container[s])&&s+1>=this.container.length)return!1;n(this.container[s])&&s++;const c=this.container[s];return Array.isArray(c)?(this.indexes.push(this.idx),this.parents.push(this.container),this.indexes.push(s),this.idx=0,this.container=c):this.idx=s,!0}nextSibling(){if(e(this.parents.length===this.indexes.length/2),this.idx>0||this.parents.length===0)return!1;const s=this.indexes[this.indexes.length-1]+1,c=this.parents[this.parents.length-1];return s>=c.length?!1:(e(!isNaN(s)),this.indexes[this.indexes.length-1]=s,this.container=c[s],!0)}_init(s,c,h,U){this.container=s,this.idx=c,this.parents=h.slice(),this.indexes=U.slice()}clone(){const s=new o;return s._init(this.container,this.idx,this.parents,this.indexes),s}*[Symbol.iterator](){if(this.descendFirst()){do yield this.getKey();while(this.nextSibling());this.ascend()}}traverse(s,c){const h=this.getComponent();h&&c(h,s);for(const U of this)s&&s.descend(U),this.traverse(s,c),s&&s.ascend()}eachPick(s,c){this.traverse(s,(h,U)=>{h.p!=null&&c(h.p,U)})}eachDrop(s,c){this.traverse(s,(h,U)=>{h.d!=null&&c(h.d,U)})}}a.ReadCursor=o;class l extends u{constructor(s=null){super(s),this.pendingDescent=[],this._op=s}flushDescent(){e(this.parents.length===this.indexes.length/2),this.container===null&&(this._op=this.container=[]);for(let s=0;s<this.pendingDescent.length;s++){const c=this.pendingDescent[s];let h=this.idx+1;if(h<this.container.length&&n(this.container[h])&&h++,e(h===this.container.length||!n(this.container[h])),h===this.container.length)this.container.push(c),this.idx=h;else if(this.container[h]===c)this.idx=h;else{if(!Array.isArray(this.container[h])){const U=this.container.splice(h,this.container.length-h);this.container.push(U),this.lcIdx>-1&&(this.lcIdx=h)}for(this.indexes.push(this.idx),this.parents.push(this.container),this.lcIdx!==-1&&(e(t(c,this.container[this.lcIdx][0])),h=this.lcIdx+1,this.lcIdx=-1);h<this.container.length&&t(c,this.container[h][0]);)h++;if(this.indexes.push(h),this.idx=0,h<this.container.length&&this.container[h][0]===c)this.container=this.container[h];else{const U=[c];this.container.splice(h,0,U),this.container=U}}}this.pendingDescent.length=0}reset(){this.lcIdx=-1}getComponent(){this.flushDescent();const s=this.idx+1;if(s<this.container.length&&n(this.container[s]))return this.container[s];{const c={};return this.container.splice(s,0,c),c}}write(s,c){const h=this.getComponent();e(h[s]==null||h[s]===c,"Internal consistency error: Overwritten component. File a bug"),h[s]=c}get(){return this._op}descend(s){if(!a.isValidPathItem(s))throw Error("Invalid JSON key");this.pendingDescent.push(s)}descendPath(s){return this.pendingDescent.push(...s),this}ascend(){this.pendingDescent.length?this.pendingDescent.pop():super.ascend()}mergeTree(s,c=r){if(s===null)return;if(e(Array.isArray(s)),s===this._op)throw Error("Cannot merge into my own tree");const h=this.lcIdx,U=this.parents.length;let Y=0;for(let pe=0;pe<s.length;pe++){const Z=s[pe];typeof Z=="string"||typeof Z=="number"?(Y++,this.descend(Z)):Array.isArray(Z)?this.mergeTree(Z,c):typeof Z=="object"&&c(Z,this)}for(;Y--;)this.ascend();this.lcIdx=this.parents.length===U?h:-1}at(s,c){this.descendPath(s),c(this);for(let h=0;h<s.length;h++)this.ascend();return this}writeAtPath(s,c,h){return this.at(s,()=>this.write(c,h)),this.reset(),this}writeMove(s,c,h=0){return this.writeAtPath(s,"p",h).writeAtPath(c,"d",h)}getPath(){const s=super.getPath();return s.push(...this.pendingDescent),s}}a.WriteCursor=l,a.writeCursor=()=>new l,a.readCursor=_=>new o(_);function E(_,s,c){let h,U;U=h=_?_.descendFirst():!1;function Y(pe){let Z;for(;U;){const Ce=Z=_.getKey();if(pe!=null){let qe=!1;if(s&&typeof Ce=="number"&&(Z=s(Ce,_.getComponent()),Z<0&&(Z=~Z,qe=!0)),t(Z,pe))return null;if(Z===pe&&!qe)return _}c&&typeof Z=="number"&&c(Z,_.getComponent()),U=_.nextSibling()}return null}return Y.end=()=>{h&&_.ascend()},Y}a.advancer=E;function W(_,s,c){let h,U,Y,pe;for(h=U=_&&_.descendFirst(),Y=pe=s&&s.descendFirst();h||Y;){let Z=h?_.getKey():null,Ce=Y?s.getKey():null;Z!==null&&Ce!==null&&(t(Ce,Z)?Ce=null:Z!==Ce&&(Z=null)),c(Z==null?Ce:Z,Z!=null?_:null,Ce!=null?s:null),Z!=null&&h&&(h=_.nextSibling()),Ce!=null&&Y&&(Y=s.nextSibling())}U&&_.ascend(),pe&&s.ascend()}a.eachChildOf=W}(at)),at}var lt={},wt;function Ut(){return wt||(wt=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.ConflictType=void 0,function(e){e[e.RM_UNEXPECTED_CONTENT=1]="RM_UNEXPECTED_CONTENT",e[e.DROP_COLLISION=2]="DROP_COLLISION",e[e.BLACKHOLE=3]="BLACKHOLE"}(a.ConflictType||(a.ConflictType={}))}(lt)),lt}var ke={},ze={},It;function gt(){return It||(It=1,Object.defineProperty(ze,"__esModule",{value:!0}),ze.uniToStrPos=ze.strPosToUni=void 0,ze.strPosToUni=(a,e=a.length)=>{let n=0,t=0;for(;t<e;t++){const r=a.charCodeAt(t);r>=55296&&r<=57343&&(n++,t++)}if(t!==e)throw Error("Invalid offset - splits unicode bytes");return t-n},ze.uniToStrPos=(a,e)=>{let n=0;for(;e>0;e--){const t=a.charCodeAt(n);n+=t>=55296&&t<=57343?2:1}return n}),ze}var ut={},Ct;function ft(){return Ct||(Ct=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.uniSlice=a.dlen=a.eachOp=void 0;const e=gt(),n=f=>{if(!Array.isArray(f))throw Error("Op must be an array of components");let y=null;for(let w=0;w<f.length;w++){const L=f[w];switch(typeof L){case"object":if(typeof L.d!="number"&&typeof L.d!="string")throw Error("Delete must be number or string");if(a.dlen(L.d)<=0)throw Error("Deletes must not be empty");break;case"string":if(!(L.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(L>0))throw Error("Skip components must be >0");if(typeof y=="number")throw Error("Adjacent skip components should be combined");break}y=L}if(typeof y=="number")throw Error("Op has a trailing skip")};function t(f,y){let w=0,L=0;for(let z=0;z<f.length;z++){const q=f[z];switch(y(q,w,L),typeof q){case"object":w+=a.dlen(q.d);break;case"string":L+=e.strPosToUni(q);break;case"number":w+=q,L+=q;break}}}a.eachOp=t;function r(f,y){const w=[],L=l(w);return t(f,(z,q,De)=>{L(y(z,q,De))}),s(w)}const u=f=>f,o=f=>r(f,u);a.dlen=f=>typeof f=="number"?f:e.strPosToUni(f);const l=f=>y=>{if(!(!y||y.d===0||y.d===""))if(f.length===0)f.push(y);else if(typeof y==typeof f[f.length-1])if(typeof y=="object"){const w=f[f.length-1];w.d=typeof w.d=="string"&&typeof y.d=="string"?w.d+y.d:a.dlen(w.d)+a.dlen(y.d)}else f[f.length-1]+=y;else f.push(y)},E=f=>typeof f=="number"?f:typeof f=="string"?e.strPosToUni(f):typeof f.d=="number"?f.d:e.strPosToUni(f.d);a.uniSlice=(f,y,w)=>{const L=e.uniToStrPos(f,y),z=w==null?1/0:e.uniToStrPos(f,w);return f.slice(L,z)};const W=(f,y,w)=>typeof f=="number"?w==null?f-y:Math.min(f,w)-y:a.uniSlice(f,y,w),_=f=>{let y=0,w=0;return{take:(q,De)=>{if(y===f.length)return q===-1?null:q;const de=f[y];let ne;if(typeof de=="number")return q===-1||de-w<=q?(ne=de-w,++y,w=0,ne):(w+=q,q);if(typeof de=="string"){if(q===-1||De==="i"||e.strPosToUni(de.slice(w))<=q)return ne=de.slice(w),++y,w=0,ne;{const le=w+e.uniToStrPos(de.slice(w),q);return ne=de.slice(w,le),w=le,ne}}else{if(q===-1||De==="d"||a.dlen(de.d)-w<=q)return ne={d:W(de.d,w)},++y,w=0,ne;{let le=W(de.d,w,w+q);return w+=q,{d:le}}}},peek:()=>f[y]}},s=f=>(f.length>0&&typeof f[f.length-1]=="number"&&f.pop(),f);function c(f,y,w){if(w!=="left"&&w!=="right")throw Error("side ("+w+") must be 'left' or 'right'");n(f),n(y);const L=[],z=l(L),{take:q,peek:De}=_(f);for(let ne=0;ne<y.length;ne++){const le=y[ne];let ye,Se;switch(typeof le){case"number":for(ye=le;ye>0;)Se=q(ye,"i"),z(Se),typeof Se!="string"&&(ye-=E(Se));break;case"string":w==="left"&&typeof De()=="string"&&z(q(-1)),z(e.strPosToUni(le));break;case"object":for(ye=a.dlen(le.d);ye>0;)switch(Se=q(ye,"i"),typeof Se){case"number":ye-=Se;break;case"string":z(Se);break;case"object":ye-=a.dlen(Se.d)}break}}let de;for(;de=q(-1);)z(de);return s(L)}function h(f,y){n(f),n(y);const w=[],L=l(w),{take:z}=_(f);for(let De=0;De<y.length;De++){const de=y[De];let ne,le;switch(typeof de){case"number":for(ne=de;ne>0;)le=z(ne,"d"),L(le),typeof le!="object"&&(ne-=E(le));break;case"string":L(de);break;case"object":ne=a.dlen(de.d);let ye=0;for(;ye<ne;)switch(le=z(ne-ye,"d"),typeof le){case"number":L({d:W(de.d,ye,ye+le)}),ye+=le;break;case"string":ye+=e.strPosToUni(le);break;case"object":L(le)}break}}let q;for(;q=z(-1);)L(q);return s(w)}const U=(f,y)=>{let w=0;for(let L=0;L<y.length&&f>w;L++){const z=y[L];switch(typeof z){case"number":{w+=z;break}case"string":const q=e.strPosToUni(z);w+=q,f+=q;break;case"object":f-=Math.min(a.dlen(z.d),f-w);break}}return f},Y=(f,y)=>typeof f=="number"?U(f,y):f.map(w=>U(w,y));function pe(f,y,w){return r(f,(L,z)=>typeof L=="object"&&typeof L.d=="number"?{d:w.slice(y,z,z+L.d)}:L)}function Z(f){return r(f,y=>{switch(typeof y){case"object":if(typeof y.d=="number")throw Error("Cannot invert text op: Deleted characters missing from operation. makeInvertible must be called first.");return y.d;case"string":return{d:y};case"number":return y}})}function Ce(f){return r(f,y=>typeof y=="object"&&typeof y.d=="string"?{d:e.strPosToUni(y.d)}:y)}function qe(f){let y=!0;return t(f,w=>{typeof w=="object"&&typeof w.d=="number"&&(y=!1)}),y}function me(f){return{name:"text-unicode",uri:"http://sharejs.org/types/text-unicode",trim:s,normalize:o,checkOp:n,create(y=""){if(typeof y!="string")throw Error("Initial data must be a string");return f.create(y)},apply(y,w){n(w);const L=f.builder(y);for(let z=0;z<w.length;z++){const q=w[z];switch(typeof q){case"number":L.skip(q);break;case"string":L.append(q);break;case"object":L.del(a.dlen(q.d));break}}return L.build()},transform:c,compose:h,transformPosition:U,transformSelection:Y,isInvertible:qe,makeInvertible(y,w){return pe(y,w,f)},stripInvertible:Ce,invert:Z,invertWithDoc(y,w){return Z(pe(y,w,f))},isNoop:y=>y.length===0}}a.default=me}(ut)),ut}var rt={},Et;function zt(){if(Et)return rt;Et=1,Object.defineProperty(rt,"__esModule",{value:!0});const a=ft(),e=gt();function n(t,r){return{get:t,getLength(){return t().length},insert(u,o,l){const E=e.strPosToUni(t(),u);return r([E,o],l)},remove(u,o,l){const E=e.strPosToUni(t(),u);return r([E,{d:o}],l)},_onOp(u){a.eachOp(u,(o,l,E)=>{switch(typeof o){case"string":this.onInsert&&this.onInsert(E,o);break;case"object":const W=a.dlen(o.d);this.onRemove&&this.onRemove(E,W)}})},onInsert:null,onRemove:null}}return rt.default=n,n.provides={text:!0},rt}var Dt;function Xt(){return Dt||(Dt=1,function(a){var e=ke&&ke.__createBinding||(Object.create?function(c,h,U,Y){Y===void 0&&(Y=U),Object.defineProperty(c,Y,{enumerable:!0,get:function(){return h[U]}})}:function(c,h,U,Y){Y===void 0&&(Y=U),c[Y]=h[U]}),n=ke&&ke.__setModuleDefault||(Object.create?function(c,h){Object.defineProperty(c,"default",{enumerable:!0,value:h})}:function(c,h){c.default=h}),t=ke&&ke.__importStar||function(c){if(c&&c.__esModule)return c;var h={};if(c!=null)for(var U in c)Object.hasOwnProperty.call(c,U)&&e(h,c,U);return n(h,c),h},r=ke&&ke.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(a,"__esModule",{value:!0}),a.type=a.remove=a.insert=void 0;const u=gt(),o=t(ft()),l=r(zt()),E={create(c){return c},toString(c){return c},builder(c){if(typeof c!="string")throw Error("Invalid document snapshot: "+c);const h=[];return{skip(U){let Y=u.uniToStrPos(c,U);if(Y>c.length)throw Error("The op is too long for this document");h.push(c.slice(0,Y)),c=c.slice(Y)},append(U){h.push(U)},del(U){c=c.slice(u.uniToStrPos(c,U))},build(){return h.join("")+c}}},slice:o.uniSlice},W=o.default(E),_=Object.assign(Object.assign({},W),{api:l.default});a.type=_,a.insert=(c,h)=>h.length===0?[]:c===0?[h]:[c,h],a.remove=(c,h)=>o.dlen(h)===0?[]:c===0?[{d:h}]:[c,{d:h}];var s=ft();Object.defineProperty(a,"makeType",{enumerable:!0,get:function(){return s.default}})}(ke)),ke}var St;function Jt(){return St||(St=1,function(a){var e=Qe&&Qe.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(a,"__esModule",{value:!0}),a.editOp=a.replaceOp=a.insertOp=a.moveOp=a.removeOp=a.type=void 0;const n=e(Ft()),t=e(Vt()),r=jt(),u=Ut();function o(i,d){if(!i)throw new Error(d)}a.type={name:"json1",uri:"http://sharejs.org/types/JSONv1",readCursor:r.readCursor,writeCursor:r.writeCursor,create:i=>i,isNoop:i=>i==null,setDebug(i){},registerSubtype:Z,checkValidOp:z,normalize:q,apply:De,transformPosition:de,compose:ne,tryTransform:st,transform:Wt,makeInvertible:Se,invert:le,invertWithDoc:Rt,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>yt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},a.type),{transform:(d,m,D)=>yt(i,d,m,D)})};const l=i=>i?i.getComponent():null;function E(i){return i&&typeof i=="object"&&!Array.isArray(i)}const W=i=>Array.isArray(i)?i.slice():i!==null&&typeof i=="object"?Object.assign({},i):i,_=i=>i&&(i.p!=null||i.r!==void 0),s=i=>i&&(i.d!=null||i.i!==void 0);function c(i,d){return o(i!=null),typeof d=="number"?(o(Array.isArray(i),"Invalid key - child is not an array"),(i=i.slice()).splice(d,1)):(o(E(i),"Invalid key - child is not an object"),delete(i=Object.assign({},i))[d]),i}function h(i,d,m){return typeof d=="number"?(o(i!=null,"Container is missing for key"),o(Array.isArray(i),"Cannot use numerical key for object container"),o(i.length>=d,"Cannot insert into out of bounds index"),i.splice(d,0,m)):(o(E(i),"Cannot insert into missing item"),o(i[d]===void 0,"Trying to overwrite value at key. Your op needs to remove it first"),i[d]=m),m}a.removeOp=(i,d=!0)=>r.writeCursor().writeAtPath(i,"r",d).get(),a.moveOp=(i,d)=>r.writeCursor().writeMove(i,d).get(),a.insertOp=(i,d)=>r.writeCursor().writeAtPath(i,"i",d).get(),a.replaceOp=(i,d,m)=>r.writeCursor().at(i,D=>{D.write("r",d),D.write("i",m)}).get(),a.editOp=(i,d,m,D=!1)=>r.writeCursor().at(i,O=>y(O,d,m,D)).get();const U=(i,d)=>i!=null&&(typeof d=="number"?Array.isArray(i):typeof i=="object"),Y=(i,d)=>U(i,d)?i[d]:void 0,pe={};function Z(i){let d=i.type?i.type:i;d.name&&(pe[d.name]=d),d.uri&&(pe[d.uri]=d)}const Ce=i=>{const d=pe[i];if(d)return d;throw Error("Missing type: "+i)};Z(Xt());const qe=(i,d)=>i+d;Z({name:"number",apply:qe,compose:qe,invert:i=>-i,transform:i=>i});const me=i=>i==null?null:i.et?Ce(i.et):i.es?pe["text-unicode"]:i.ena!=null?pe.number:null,f=i=>i.es?i.es:i.ena!=null?i.ena:i.e,y=(i,d,m,D=!1)=>{const[O,C]=typeof d=="string"?[Ce(d),d]:[d,d.name];!D&&O.isNoop&&O.isNoop(m)||(C==="number"?i.write("ena",m):C==="text-unicode"?i.write("es",m):(i.write("et",C),i.write("e",m)))};function w(i){o(typeof i=="number"),o(i>=0),o(i===(0|i))}function L(i){typeof i=="number"?w(i):o(typeof i=="string")}function z(i){if(i===null)return;const d=new Set,m=new Set,D=C=>{let R=!0,N=!1;for(let g in C){const v=C[g];if(R=!1,o(g==="p"||g==="r"||g==="d"||g==="i"||g==="e"||g==="es"||g==="ena"||g==="et","Invalid component item '"+g+"'"),g==="p")w(v),o(!d.has(v)),d.add(v),o(C.r===void 0);else if(g==="d")w(v),o(!m.has(v)),m.add(v),o(C.i===void 0);else if(g==="e"||g==="es"||g==="ena"){o(!N),N=!0;const b=me(C);o(b,"Missing type in edit"),b.checkValidOp&&b.checkValidOp(f(C))}}o(!R)},O=(C,R,N)=>{if(!Array.isArray(C))throw Error("Op must be null or a list");if(C.length===0)throw Error("Empty descent");R||L(C[0]);let g=1,v=0,b=0;for(let I=0;I<C.length;I++){const $=C[I];if(o($!=null),Array.isArray($)){const x=O($,!1);if(v){const p=typeof b,M=typeof x;p===M?o(b<x,"descent keys are not in order"):o(p==="number"&&M==="string")}b=x,v++,g=3}else typeof $=="object"?(o(g===1,`Prev not scalar - instead ${g}`),D($),g=2):(o(g!==3),L($),o(r.isValidPathItem($),"Invalid path key"),g=1)}return o(v!==1,"Operation makes multiple descents. Remove some []"),o(g===2||g===3),C[0]};O(i,!0),o(d.size===m.size,"Mismatched picks and drops in op");for(let C=0;C<d.size;C++)o(d.has(C)),o(m.has(C))}function q(i){let d=0,m=[];const D=r.writeCursor();return D.mergeTree(i,(O,C)=>{const R=me(O);if(R){const g=f(O);y(C,R,R.normalize?R.normalize(g):g)}for(const g of["r","p","i","d"])if(O[g]!==void 0){const v=g==="p"||g==="d"?(N=O[g],m[N]==null&&(m[N]=d++),m[N]):O[g];C.write(g,v)}var N}),D.get()}function De(i,d){if(z(d),d===null)return i;const m=[];return function D(O,C){let R=O,N=0,g={root:O},v=0,b=g,I="root";function $(){for(;v<N;v++){let x=C[v];typeof x!="object"&&(o(U(b,I)),b=b[I]=W(b[I]),I=x)}}for(;N<C.length;N++){const x=C[N];if(Array.isArray(x)){const p=D(R,x);p!==R&&p!==void 0&&($(),R=b[I]=p)}else if(typeof x=="object"){x.d!=null?($(),R=h(b,I,m[x.d])):x.i!==void 0&&($(),R=h(b,I,x.i));const p=me(x);if(p)$(),R=b[I]=p.apply(R,f(x));else if(x.e!==void 0)throw Error("Subtype "+x.et+" undefined")}else R=Y(R,x)}return g.root}(i=function D(O,C){const R=[];let N=0;for(;N<C.length;N++){const I=C[N];if(Array.isArray(I))break;typeof I!="object"&&(R.push(O),O=Y(O,I))}for(let I=C.length-1;I>=N;I--)O=D(O,C[I]);for(--N;N>=0;N--){const I=C[N];if(typeof I!="object"){const $=R.pop();O=O===Y($,I)?$:O===void 0?c($,I):(v=I,b=O,(g=W(g=$))[v]=b,g)}else _(I)&&(o(O!==void 0,"Cannot pick up or remove undefined"),I.p!=null&&(m[I.p]=O),O=void 0)}var g,v,b;return O}(i,d),d)}function de(i,d){i=i.slice(),z(d);const m=r.readCursor(d);let D,O,C=!1;const R=[];for(let g=0;;g++){const v=i[g],b=m.getComponent();if(b&&(b.r!==void 0?C=!0:b.p!=null&&(C=!1,D=b.p,O=g)),g>=i.length)break;let I=0;const $=r.advancer(m,void 0,(p,M)=>{_(M)&&I++});R.unshift($);const x=$(v);if(typeof v=="number"&&(i[g]-=I),!x)break}if(R.forEach(g=>g.end()),C)return null;const N=()=>{let g=0;if(D!=null){const v=m.getPath();g=v.length,i=v.concat(i.slice(O))}for(;g<i.length;g++){const v=i[g],b=l(m),I=me(b);if(I){const p=f(b);I.transformPosition&&(i[g]=I.transformPosition(i[g],p));break}let $=0;const x=r.advancer(m,(p,M)=>s(M)?~(p-$):p-$,(p,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[g]+=$),!x)break}};return D!=null?m.eachDrop(null,g=>{g===D&&N()}):N(),i}function ne(i,d){if(z(i),z(d),i==null)return d;if(d==null)return i;let m=0;const D=r.readCursor(i),O=r.readCursor(d),C=r.writeCursor(),R=[],N=[],g=[],v=[],b=[],I=[],$=new Set;D.traverse(null,p=>{p.p!=null&&(g[p.p]=D.clone())}),O.traverse(null,p=>{p.d!=null&&(v[p.d]=O.clone())});const x=r.writeCursor();return function p(M,re,te,K,se,Re,be,_e){o(re||te);const oe=l(re),Te=l(te),Ae=!!Te&&Te.r!==void 0,Ke=!!oe&&oe.i!==void 0,Pe=oe?oe.d:null,Ee=Te?Te.p:null,We=(Re||Ae)&&Ee==null;if(Ee!=null)K=v[Ee],be=N[Ee]=new r.WriteCursor;else if(Te&&Te.r!==void 0)K=null;else{const T=l(K);T&&T.d!=null&&(K=null)}const Q=l(K);if(Pe!=null)if(M=g[Pe],_e=R[Pe]=new r.WriteCursor,We)Re&&!Ae&&_e.write("r",!0);else{const T=b[Pe]=m++;be.write("d",T)}else if(oe&&oe.i!==void 0)M=null;else{const T=l(M);T&&T.p!=null&&(M=null)}let P;Ke?(o(se===void 0),P=oe.i):P=se;const B=(Ee==null?!Ke||Re||Ae:P===void 0)?null:be.getComponent();if(Ee!=null){if(!(se!==void 0||Ke)){const T=Pe!=null?b[Pe]:m++;I[Ee]=T,_e.write("p",T)}}else Ae&&(Ke||se!==void 0||(Te.r,_e.write("r",Te.r)));const A=We?null:me(oe),S=me(Q);if((A||S)&&(A&&A.name,S&&S.name),A&&S){o(A===S);const T=f(oe),G=f(Q),ge=A.compose(T,G);y(be,A,ge),$.add(Q)}else A?y(be,A,f(oe)):S&&(y(be,S,f(Q)),$.add(Q));const j=typeof P=="object"&&P!=null;let J=!1,X=0,ee=0,he=0,fe=0,ae=0;const Oe=r.advancer(K,(T,G)=>s(G)?fe-T-1:T-fe,(T,G)=>{s(G)&&fe++}),V=r.advancer(M,(T,G)=>_(G)?X-T-1:T-X,(T,G)=>{_(G)&&X++});if(r.eachChildOf(re,te,(T,G,ge)=>{let we,xe,He=T,Me=T,Ze=T;if(typeof T=="number"){let ve=T+he;xe=Oe(ve),Me=ve+fe;let ue=T+ee;we=V(ue),s(l(xe))&&(we=null),He=ue+X,Ze=T+ae,o(He>=0,"p1PickKey is negative"),o(Me>=0,"p2DropKey is negative");const je=s(l(G)),Be=_(l(ge));(je||Be&&!We)&&ae--,je&&ee--,Be&&he--}else we=V(T),xe=Oe(T);_e.descend(He),be.descend(Me);const Je=j&&!s(l(G))?P[Ze]:void 0,Ne=p(we,G,ge,xe,Je,We,be,_e);var $e,k,ie;j&&!We?Je!==Ne&&(J||(P=Array.isArray(P)?P.slice():Object.assign({},P),J=!0),$e=P,ie=Ne,typeof(k=Ze)=="number"?(o(Array.isArray($e)),o(k<$e.length)):(o(!Array.isArray($e)),o($e[k]!==void 0)),ie===void 0?typeof k=="number"?$e.splice(k,1):delete $e[k]:$e[k]=ie):o(Ne===void 0),be.ascend(),_e.ascend()}),V.end(),Oe.end(),B!=null)B.i=P;else if(!Re&&!Ae&&Ee==null)return P}(D,D.clone(),O,O.clone(),void 0,!1,C,x),C.reset(),C.mergeTree(x.get()),C.reset(),C.get(),R.map(p=>p.get()),N.map(p=>p.get()),D.traverse(C,(p,M)=>{const re=p.p;if(re!=null){const te=b[re];te!=null&&M.write("p",te);const K=R[re];K&&K.get(),K&&M.mergeTree(K.get())}else p.r!==void 0&&M.write("r",p.r)}),C.reset(),C.get(),O.traverse(C,(p,M)=>{const re=p.d;if(re!=null){const K=I[re];K!=null&&M.write("d",K);const se=N[re];se&&M.mergeTree(se.get())}else p.i!==void 0&&M.write("i",p.i);const te=me(p);te&&!$.has(p)&&y(M,te,f(p))}),C.get()}function le(i){if(i==null)return null;const d=new r.ReadCursor(i),m=new r.WriteCursor;let D;const O=[],C=[];return function R(N,g,v){const b=N.getComponent();let I,$=!1;if(b){b.p!=null&&(g.write("d",b.p),O[b.p]=N.clone()),b.r!==void 0&&g.write("i",b.r),b.d!=null&&(g.write("p",b.d),v=void 0),b.i!==void 0&&(v=I=b.i);const p=me(b);p&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=p.apply(v,f(b)),$=!0))}let x=0;for(const p of N){g.descend(p);const M=typeof p=="number"?p-x:p,re=Y(v,M);s(N.getComponent())&&x++;const te=R(N,g,re);if(v!==void 0&&te!==void 0){if($||($=!0,v=W(v)),!U(v,M))throw Error("Cannot modify child - invalid operation");v[M]=te}g.ascend()}if(I===void 0)return $?v:void 0;g.write("r",v)}(d,m,void 0),D&&(m.reset(),function R(N,g,v){const b=g.getComponent();if(b){const p=b.d;if(p!=null&&(N=O[p],v=C[p]=r.writeCursor()),D.has(b)){const M=me(b);if(!M.invert)throw Error(`Cannot invert subtype ${M.name}`);y(v,M,M.invert(f(b)))}}let I=0,$=0;const x=r.advancer(N,(p,M)=>_(M)?I-p-1:p-I,(p,M)=>{_(M)&&I++});for(const p of g)if(typeof p=="number"){const M=p-$,re=x(M),te=M+I;v.descend(te),R(re,g,v),s(g.getComponent())&&$++,v.ascend()}else v.descend(p),R(x(p),g,v),v.ascend();x.end()}(d.clone(),d,m),C.length&&(m.reset(),d.traverse(m,(R,N)=>{const g=R.p;if(g!=null){const v=C[g];v&&v.get(),v&&N.mergeTree(v.get())}}))),m.get()}const ye=(i,d)=>i.some(m=>typeof m=="object"&&(Array.isArray(m)?ye(m,d):d(m)));function Se(i,d){if(i==null||!ye(i,g=>{var v;return g.r!==void 0||((v=me(g))===null||v===void 0?void 0:v.makeInvertible)!=null}))return i;const m=new r.ReadCursor(i),D=new r.WriteCursor;let O=!1;const C=[],R=[],N=(g,v,b)=>{const I=g.getComponent();let $=!1;if(I){I.d!=null&&v.write("d",I.d),I.i!==void 0&&v.write("i",I.i);const p=I.p;if(p!=null&&(C[p]=g.clone(),o(b!==void 0,"Operation picks up at an invalid key"),R[p]=b,v.write("p",I.p)),I.r!==void 0&&b===void 0)throw Error("Invalid doc / op in makeInvertible: removed item missing from doc");const M=me(I);M&&(M.makeInvertible?O=!0:y(v,M,f(I),!0))}let x=0;for(const p of g){v.descend(p);const M=typeof p=="number"?p-x:p,re=Y(b,M),te=N(g,v,re);re!==te&&($||($=!0,b=W(b)),te===void 0?(b=c(b,M),typeof p=="number"&&x++):b[M]=te),v.ascend()}return I&&(I.r!==void 0?(v.write("r",t.default(b)),b=void 0):I.p!=null&&(b=void 0)),b};return N(m,D,d),D.get(),O&&(D.reset(),function g(v,b,I,$,x){const p=b.getComponent();if(p){p.i!==void 0?($=p.i,x=!0):p.d!=null&&($=R[p.d],v=C[p.d],x=!1,p.d);let K=me(p);if(K&&K.makeInvertible){const se=f(p);y(I,K,K.makeInvertible(se,$),!0)}}let M=0,re=0;const te=r.advancer(v,(K,se)=>_(se)?M-K-1:K-M,(K,se)=>{_(se)&&M++});for(const K of b)if(typeof K=="number"){const se=K-re,Re=te(se),be=se+M,_e=Y($,x?se:be);I.descend(K),g(Re,b,I,_e,x),s(b.getComponent())&&re++,I.ascend()}else{const se=Y($,K);I.descend(K),g(te(K),b,I,se,x),I.ascend()}te.end()}(m.clone(),m,D,d,!1)),D.get()}function Rt(i,d){return le(Se(i,d))}const it=i=>{if(i==null)return null;const d=i.slice();for(let m=0;m<i.length;m++){const D=d[m];Array.isArray(D)&&(d[m]=it(D))}return d};function st(i,d,m){o(m==="left"||m==="right","Direction must be left or right");const D=m==="left"?0:1;if(d==null)return{ok:!0,result:i};z(i),z(d);let O=null;const C=[],R=[],N=[],g=[],v=[],b=[],I=[],$=[],x=[],p=[],M=[],re=[],te=[],K=[],se=[];let Re=0;const be=r.readCursor(i),_e=r.readCursor(d),oe=r.writeCursor();if(function Q(P,B=null,A){const S=l(B);S&&(S.r!==void 0?A=B.clone():S.p!=null&&(A=null,b[S.p]=P.clone()));const j=P.getComponent();let J;j&&(J=j.p)!=null&&(v[J]=B?B.clone():null,N[J]=P.clone(),A&&(p[J]=!0,x[J]=A),S&&S.p!=null&&(K[J]=S.p));const X=r.advancer(B);for(const ee of P)Q(P,X(ee),A);X.end()}(_e,be,null),function Q(P,B,A,S,j){const J=A.getComponent();let X,ee=!1;J&&((X=J.d)!=null?(g[X]=A.clone(),S!=null&&(se[S]==null&&(se[S]=[]),se[S].push(X)),p[X],P=v[X]||null,B=N[X]||null,p[X]?(j&&(M[X]=!0),j=x[X]||null):!j||D!==1&&K[X]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.moveOp(B.getPath(),A.getPath())}),ee=!0):J.i!==void 0&&(P=B=null,ee=!0,j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.insertOp(A.getPath(),J.i)})));const he=l(P);he&&(he.r!==void 0?j=P.clone():he.p!=null&&(he.p,S=he.p,j=null));const fe=me(J);fe&&j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.editOp(A.getPath(),fe,f(J),!0)});let ae=0,Oe=0;const V=r.advancer(B,(G,ge)=>_(ge)?ae-G-1:G-ae,(G,ge)=>{_(ge)&&ae++}),T=r.advancer(P);for(const G of A)if(typeof G=="number"){const ge=G-Oe,we=V(ge);Oe+=+Q(T(ge+ae),we,A,S,j)}else{const ge=V(G);Q(T(G),ge,A,S,j)}return V.end(),T.end(),ee}(be,_e,_e.clone(),null,null),g.map(Q=>Q&&Q.get()),O)return{ok:!1,conflict:O};M.map(Q=>!!Q);const Te=[];let Ae=null;(function Q(P,B,A,S,j){let J=!1;const X=l(B);if(_(X)){const V=X.p;V!=null?(A=g[V],S=re[V]=r.writeCursor(),J=!0,j=null):(A=null,j=B.clone())}else s(l(A))&&(A=null);const ee=P.getComponent();if(ee){const V=ee.p;V!=null?(j&&($[V]=j),Te[V]=j||D===1&&J?null:S.getComponent(),C[V]=P.clone(),A&&(I[V]=A.clone())):ee.r!==void 0&&(j||S.write("r",!0),(j||J)&&(Ae==null&&(Ae=new Set),Ae.add(ee)))}let he=0,fe=0;const ae=r.advancer(B,void 0,(V,T)=>{_(T)&&he++}),Oe=r.advancer(A,(V,T)=>s(T)?~(V-fe):V-fe,(V,T)=>{s(T)&&fe++});if(P)for(const V of P)if(typeof V=="string"){const T=ae(V),G=Oe(V);S.descend(V),Q(P,T,G,S,j),S.ascend()}else{const T=ae(V),G=V-he,ge=_(l(T))?null:Oe(G),we=G+fe;o(we>=0),S.descend(we),Q(P,T,ge,S,j),S.ascend()}ae.end(),Oe.end()})(be,_e,_e.clone(),oe,null),oe.reset();let Ke=[];if(function Q(P,B,A,S,j,J){o(B);const X=B.getComponent();let ee=l(S),he=!1;const fe=(k,ie,ve)=>k?a.moveOp(k.getPath(),ie.getPath()):a.insertOp(ie.getPath(),ve.i);if(s(X)){const k=X.d;k!=null&&(R[k]=B.clone());const ie=k!=null?Te[k]:null;let ve=!1;if(X.i!==void 0||k!=null&&ie){let ue;ee&&(ee.i!==void 0||(ue=ee.d)!=null&&!p[ue])&&(ve=ue!=null?k!=null&&k===K[ue]:n.default(ee.i,X.i),ve||ue!=null&&D!==1&&K[ue]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:fe(k!=null?C[k]:null,B,X),op2:fe(ue!=null?N[ue]:null,S,ee)})),ve||(J?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:fe(k!=null?C[k]:null,B,X),op2:a.removeOp(J.getPath())}):(k!=null?(Ke[Re]=k,j.write("d",ie.p=Re++)):j.write("i",t.default(X.i)),he=!0))}else if(k!=null&&!ie){const ue=$[k];ue&&(J=ue.clone())}k!=null?(P=C[k],A=b[k],S=I[k]):X.i!==void 0&&(P=A=null,ve||(S=null))}else _(l(P))&&(P=A=S=null);const ae=l(P),Oe=l(A);if(_(Oe)){const k=Oe.p;Oe.r!==void 0&&(!ae||ae.r===void 0)||p[k]?(S=null,J=A.clone()):k!=null&&(S=g[k],D!==1&&K[k]!=null||((j=te[k])||(j=te[k]=r.writeCursor()),j.reset(),J=null))}else!s(X)&&s(ee)&&(S=null);ee=S!=null?S.getComponent():null;const V=me(X);if(V){const k=f(X);if(J)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.editOp(B.getPath(),V,k,!0),op2:a.removeOp(J.getPath())});else{const ie=me(ee);let ve;if(ie){if(V!==ie)throw Error("Transforming incompatible types");const ue=f(ee);ve=V.transform(k,ue,m)}else ve=t.default(k);y(j,V,ve)}}let T=0,G=0,ge=0,we=0,xe=0,He=0,Me=P!=null&&P.descendFirst(),Ze=Me;const Je=r.advancer(A,void 0,(k,ie)=>{_(ie)&&ge++});let Ne=S!=null&&S.descendFirst(),$e=Ne;for(const k of B)if(typeof k=="number"){let ie;const ve=s(B.getComponent()),ue=k-G;{let Ge;for(;Me&&typeof(Ge=P.getKey())=="number";){Ge+=T;const Ue=P.getComponent(),Ye=_(Ue);if(Ge>ue||Ge===ue&&(!Ye||D===0&&ve))break;if(Ye){T--;const Fe=Ue.p;K.includes(Fe),Ue.d,l(te[Ue.d]),_(l(te[Ue.d])),(Ue.r===void 0||Ae&&Ae.has(Ue))&&(Fe==null||!Te[Fe]||D!==1&&K.includes(Fe))||xe--}Me=P.nextSibling()}ie=Me&&Ge===ue?P:null}const je=ue-T;let Be=Je(je);const ot=je-ge;let et=null;{let Ge,Ue;for(;Ne&&typeof(Ge=S.getKey())=="number";){Ue=Ge-we;const Ye=S.getComponent(),Fe=s(Ye);if(Ue>ot)break;if(Ue===ot){if(!Fe){et=S;break}{if(D===0&&ve){et=S;break}const Le=Be&&_(Be.getComponent());if(D===0&&Le)break}}if(Fe){const Le=Ye.d;p[Le],K[Le],Ye.i===void 0&&(p[Le]||K[Le]!=null&&D!==1)?(p[Le]||K[Le]!=null&&D===0)&&(we++,He--):we++}Ne=S.nextSibling()}}const _t=ot+we+xe+He;o(_t>=0,"trying to descend to a negative index"),j.descend(_t),ve&&(ie=Be=et=null,G++),Q(ie,B,Be,et,j,J)&&He++,j.ascend()}else{let ie;for(;Me&&(ie=P.getKey(),typeof ie!="string"||!(ie>k||ie===k));)Me=P.nextSibling();const ve=Me&&ie===k?P:null,ue=Je(k);let je;for(;Ne&&(je=S.getKey(),typeof je!="string"||!(je>k||je===k));)Ne=S.nextSibling();const Be=Ne&&je===k?S:null;j.descend(k),Q(ve,B,ue,Be,j,J),j.ascend()}return Je.end(),Ze&&P.ascend(),$e&&S.ascend(),he}(be,be.clone(),_e,_e.clone(),oe,null),O)return{ok:!1,conflict:O};oe.reset();const Pe=(Q,P,B)=>Q.traverse(P,(A,S)=>{A.d!=null&&B(A.d,Q,S)});(p.length||re.length)&&(Pe(_e,oe,(Q,P,B)=>{p[Q]&&!M[Q]&&B.write("r",!0),re[Q]&&B.mergeTree(re[Q].get())}),oe.reset());const Ee=[],We=[];if((te.length||p.length)&&!O){const Q=r.readCursor(it(oe.get()));if(Pe(Q,null,(P,B)=>{Ee[P]=B.clone()}),te.forEach(P=>{P&&Pe(r.readCursor(P.get()),null,(B,A)=>{Ee[B]=A.clone()})}),function P(B,A,S,j,J,X){const ee=l(A);if(ee&&_(ee))if(ee.p!=null){const T=ee.p;Ee[T].getPath(),S=Ee[T],j=We[T]=r.writeCursor()}else ee.r!==void 0&&(S=null);else s(l(S))&&(S=null);const he=B.getComponent();if(he){let T;if((T=he.d)!=null){const G=te[T];G&&(G.get(),j.mergeTree(G.get()),S=r.readCursor(G.get()))}}let fe=0,ae=0;const Oe=r.advancer(A,void 0,(T,G)=>{_(G)&&fe--}),V=r.advancer(S,(T,G)=>s(G)?-(T-ae)-1:T-ae,(T,G)=>{s(G)&&ae++});for(const T of B)if(typeof T=="number"){const G=Oe(T),ge=T+fe,we=V(ge),xe=ge+ae;j.descend(xe),P(B,G,we,j),j.ascend()}else j.descend(T),P(B,Oe(T),V(T),j),j.ascend();Oe.end(),V.end()}(_e,Q,Q.clone(),oe),oe.reset(),O)return{ok:!1,conflict:O};if(oe.get(),We.length){const P=We.map(A=>A?A.get():null),B=r.readCursor(it(oe.get()));if(Pe(B,oe,(A,S,j)=>{const J=P[A];J&&(j.mergeTree(J),P[A]=null)}),P.find(A=>A)){const A=r.writeCursor(),S=r.writeCursor();let j=0,J=0;P.forEach(X=>{X!=null&&Pe(r.readCursor(X),null,ee=>{const he=Ke[ee];A.writeMove(C[he].getPath(),R[he].getPath(),j++);const fe=se[he];fe&&fe.forEach(ae=>{p[ae]||D!==1&&K[ae]!=null||S.writeMove(N[ae].getPath(),g[ae].getPath(),J++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:S.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:oe.get()}}const pt=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function Wt(i,d,m){const D=st(i,d,m);if(D.ok)return D.result;pt(D.conflict)}const Xe=i=>{const d=r.writeCursor();return r.readCursor(i).traverse(d,(m,D)=>{(s(m)||me(m))&&D.write("r",!0)}),d.get()},xt=(i,d)=>{const{type:m,op1:D,op2:O}=i;switch(m){case u.ConflictType.DROP_COLLISION:return d==="left"?[null,Xe(O)]:[Xe(D),null];case u.ConflictType.RM_UNEXPECTED_CONTENT:let C=!1;return r.readCursor(D).traverse(null,R=>{R.r!==void 0&&(C=!0)}),C?[null,Xe(O)]:[Xe(D),null];case u.ConflictType.BLACKHOLE:return[Xe(D),Xe(O)];default:throw Error("Unrecognised conflict: "+m)}};function yt(i,d,m,D){let O=null;for(;;){const C=st(d,m,D);if(C.ok)return ne(O,C.result);{const{conflict:R}=C;i(R)||pt(R);const[N,g]=xt(R,D);d=ne(q(d),N),m=ne(q(m),g),O=ne(O,g)}}}}(Qe)),Qe}var Tt;function Yt(){return Tt||(Tt=1,function(a){var e=Ve&&Ve.__createBinding||(Object.create?function(u,o,l,E){E===void 0&&(E=l),Object.defineProperty(u,E,{enumerable:!0,get:function(){return o[l]}})}:function(u,o,l,E){E===void 0&&(E=l),u[E]=o[l]}),n=Ve&&Ve.__exportStar||function(u,o){for(var l in u)l!=="default"&&!o.hasOwnProperty(l)&&e(o,u,l)};Object.defineProperty(a,"__esModule",{value:!0}),n(Jt(),a);var t=jt();Object.defineProperty(a,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(a,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var r=Ut();Object.defineProperty(a,"ConflictType",{enumerable:!0,get:function(){return r.ConflictType}})}(Ve)),Ve}var F=Yt();class kt{constructor(){H(this,"drawingManagerData",{});H(this,"_oldDrawingManagerData",{});H(this,"_focusDrawings",[]);H(this,"_remove$",new Ie.Subject);H(this,"remove$",this._remove$.asObservable());H(this,"_add$",new Ie.Subject);H(this,"add$",this._add$.asObservable());H(this,"_update$",new Ie.Subject);H(this,"update$",this._update$.asObservable());H(this,"_order$",new Ie.Subject);H(this,"order$",this._order$.asObservable());H(this,"_group$",new Ie.Subject);H(this,"group$",this._group$.asObservable());H(this,"_ungroup$",new Ie.Subject);H(this,"ungroup$",this._ungroup$.asObservable());H(this,"_refreshTransform$",new Ie.Subject);H(this,"refreshTransform$",this._refreshTransform$.asObservable());H(this,"_visible$",new Ie.Subject);H(this,"visible$",this._visible$.asObservable());H(this,"_focus$",new Ie.Subject);H(this,"focus$",this._focus$.asObservable());H(this,"_featurePluginUpdate$",new Ie.Subject);H(this,"featurePluginUpdate$",this._featurePluginUpdate$.asObservable());H(this,"_featurePluginAdd$",new Ie.Subject);H(this,"featurePluginAdd$",this._featurePluginAdd$.asObservable());H(this,"_featurePluginRemove$",new Ie.Subject);H(this,"featurePluginRemove$",this._featurePluginRemove$.asObservable());H(this,"_featurePluginOrderUpdate$",new Ie.Subject);H(this,"featurePluginOrderUpdate$",this._featurePluginOrderUpdate$.asObservable());H(this,"_featurePluginGroupUpdate$",new Ie.Subject);H(this,"featurePluginGroupUpdate$",this._featurePluginGroupUpdate$.asObservable());H(this,"_featurePluginUngroupUpdate$",new Ie.Subject);H(this,"featurePluginUngroupUpdate$",this._featurePluginUngroupUpdate$.asObservable());H(this,"_visible",!0);H(this,"_editable",!0)}dispose(){this._remove$.complete(),this._add$.complete(),this._update$.complete(),this._order$.complete(),this._focus$.complete(),this._featurePluginUpdate$.complete(),this._featurePluginAdd$.complete(),this._featurePluginRemove$.complete(),this._featurePluginOrderUpdate$.complete(),this.drawingManagerData={},this._oldDrawingManagerData={}}visibleNotification(e){this._visible$.next(e)}refreshTransform(e){e.forEach(n=>{const t=this._getCurrentBySearch(n);t!=null&&(t.transform=n.transform,t.transforms=n.transforms,t.isMultiTransform=n.isMultiTransform)}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return this.drawingManagerData[e]||{}}removeDrawingDataForUnit(e){const n=this.drawingManagerData[e];if(n==null)return;delete this.drawingManagerData[e];const t=[];Object.keys(n).forEach(r=>{const u=n[r];(u==null?void 0:u.data)!=null&&Object.keys(u.data).forEach(o=>{t.push({unitId:e,subUnitId:r,drawingId:o})})}),t.length>0&&this.removeNotification(t)}registerDrawingData(e,n){this.drawingManagerData[e]=n}initializeNotification(e){const n=[],t=this.drawingManagerData[e];t!=null&&(Object.keys(t).forEach(r=>{this._establishDrawingMap(e,r);const u=t[r];Object.keys(u.data).forEach(o=>{const l=u.data[o];l.unitId=e,l.subUnitId=r,n.push(l)})}),n.length>0&&this.addNotification(n))}getDrawingData(e,n){return this._getDrawingData(e,n)}setDrawingData(e,n,t){this.drawingManagerData[e][n].data=t}getBatchAddOp(e){const n=[],t=[],r=[];e.forEach(W=>{const{op:_,invertOp:s}=this._addByParam(W);n.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),r.push(s)});const u=t.reduce(F.type.compose,null),o=r.reduce(F.type.compose,null),{unitId:l,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:l,subUnitId:E,objects:n}}getBatchRemoveOp(e){const n=[],t=[];e.forEach(E=>{const{op:W,invertOp:_}=this._removeByParam(E);n.unshift(W),t.push(_)});const r=n.reduce(F.type.compose,null),u=t.reduce(F.type.compose,null),{unitId:o,subUnitId:l}=e[0];return{undo:u,redo:r,unitId:o,subUnitId:l,objects:e}}getBatchUpdateOp(e){const n=[],t=[],r=[];e.forEach(W=>{const{op:_,invertOp:s}=this._updateByParam(W);n.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),r.push(s)});const u=t.reduce(F.type.compose,null),o=r.reduce(F.type.compose,null),{unitId:l,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:l,subUnitId:E,objects:n}}removeNotification(e){this._remove$.next(e)}addNotification(e){this._add$.next(e)}updateNotification(e){this._update$.next(e)}orderNotification(e){this._order$.next(e)}groupUpdateNotification(e){this._group$.next(e)}ungroupUpdateNotification(e){this._ungroup$.next(e)}refreshTransformNotification(e){this._refreshTransform$.next(e)}getGroupDrawingOp(e){const n=[],{unitId:t,subUnitId:r}=e[0].parent;e.forEach(l=>{n.push(this._getGroupDrawingOp(l))});const u=n.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:r,objects:e}}getUngroupDrawingOp(e){const n=[],{unitId:t,subUnitId:r}=e[0].parent;e.forEach(l=>{n.push(this._getUngroupDrawingOp(l))});const u=n.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:r,objects:e}}getDrawingsByGroup(e){const{unitId:n,subUnitId:t,drawingId:r}=e;if(this.getDrawingByParam({unitId:n,subUnitId:t,drawingId:r})==null)return[];const o=this._getDrawingData(n,t),l=[];return Object.keys(o).forEach(E=>{const W=o[E];W.groupId===r&&l.push(W)}),l}_getGroupDrawingOp(e){const{parent:n,children:t}=e,{unitId:r,subUnitId:u,drawingId:o}=n,l=[];l.push(F.insertOp([r,u,"data",o],n));let E=Number.NEGATIVE_INFINITY;return t.forEach(W=>{const{unitId:_,subUnitId:s,drawingId:c}=W,h=this._hasDrawingOrder({unitId:_,subUnitId:s,drawingId:c});E=Math.max(E,h),l.push(...this._getUpdateParamCompareOp(W,this.getDrawingByParam({unitId:_,subUnitId:s,drawingId:c})))}),E===Number.NEGATIVE_INFINITY&&(E=this._getDrawingOrder(r,u).length),l.push(F.insertOp([r,u,"order",E],o)),l.reduce(F.type.compose,null)}_getUngroupDrawingOp(e){const{parent:n,children:t}=e,{unitId:r,subUnitId:u,drawingId:o}=n,l=[];return t.forEach(E=>{const{unitId:W,subUnitId:_,drawingId:s}=E;l.push(...this._getUpdateParamCompareOp(E,this.getDrawingByParam({unitId:W,subUnitId:_,drawingId:s})))}),l.push(F.removeOp([r,u,"data",o],!0)),l.push(F.removeOp([r,u,"order",this._getDrawingOrder(r,u).indexOf(o)],!0)),l.reduce(F.type.compose,null)}applyJson1(e,n,t){this._establishDrawingMap(e,n),this._oldDrawingManagerData={...this.drawingManagerData},this.drawingManagerData=F.type.apply(this.drawingManagerData,t)}featurePluginUpdateNotification(e){this._featurePluginUpdate$.next(e)}featurePluginOrderUpdateNotification(e){this._featurePluginOrderUpdate$.next(e)}featurePluginAddNotification(e){this._featurePluginAdd$.next(e)}featurePluginRemoveNotification(e){this._featurePluginRemove$.next(e)}featurePluginGroupUpdateNotification(e){this._featurePluginGroupUpdate$.next(e)}featurePluginUngroupUpdateNotification(e){this._featurePluginUngroupUpdate$.next(e)}getDrawingByParam(e){return this._getCurrentBySearch(e)}getOldDrawingByParam(e){return this._getOldBySearch(e)}getDrawingOKey(e){const[n,t,r]=e.split("#-#");return this._getCurrentBySearch({unitId:n,subUnitId:t,drawingId:r})}focusDrawing(e){if(e==null||e.length===0){this._focusDrawings=[],this._focus$.next([]);return}const n=[];e.forEach(t=>{var E;const{unitId:r,subUnitId:u,drawingId:o}=t,l=(E=this._getDrawingData(r,u))==null?void 0:E[o];l!=null&&n.push(l)}),n.length>0&&(this._focusDrawings=n,this._focus$.next(n))}getFocusDrawings(){const e=[];return this._focusDrawings.forEach(n=>{var l;const{unitId:t,subUnitId:r,drawingId:u}=n,o=(l=this._getDrawingData(t,r))==null?void 0:l[u];o!=null&&e.push(o)}),e}getDrawingOrder(e,n){return this._getDrawingOrder(e,n)}setDrawingOrder(e,n,t){this.drawingManagerData[e][n].order=t}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=[],o=this.getDrawingOrder(n,t),l=[...r];r.forEach(_=>{const s=this._hasDrawingOrder({unitId:n,subUnitId:t,drawingId:_});if(s===-1||s===o.length-1)return;const c=F.moveOp([n,t,"order",s],[n,t,"order",s+1]);u.push(c),l.includes(o[s+1])||l.push(o[s+1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:n,subUnitId:t,objects:{...e,drawingIds:l}}}getBackwardDrawingOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=[],o=this.getDrawingOrder(n,t),l=[...r];r.forEach(_=>{const s=this._hasDrawingOrder({unitId:n,subUnitId:t,drawingId:_});if(s===-1||s===0)return;const c=F.moveOp([n,t,"order",s],[n,t,"order",s-1]);u.push(c),l.includes(o[s-1])||l.push(o[s-1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:n,subUnitId:t,objects:{...e,drawingIds:l}}}getFrontDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=this._getOrderFromSearchParams(n,t,r),o=[...r],l=this.getDrawingOrder(n,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=this._getDrawingCount(n,t)-1,U=F.moveOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(c)],[n,t,"order",h]);E.push(U),o.includes(l[h])||o.push(l[h])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:n,subUnitId:t,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){const{unitId:n,subUnitId:t,drawingIds:r}=e,u=this._getOrderFromSearchParams(n,t,r,!0),o=[...r],l=this.getDrawingOrder(n,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=F.moveOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(c)],[n,t,"order",0]);E.push(h),o.includes(l[0])||o.push(l[0])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:n,subUnitId:t,objects:{...e,drawingIds:o}}}_getDrawingCount(e,n){return this.getDrawingOrder(e,n).length||0}_getOrderFromSearchParams(e,n,t,r=!1){return t.map(u=>{const o=this._hasDrawingOrder({unitId:e,subUnitId:n,drawingId:u});return{drawingId:u,zIndex:o}}).sort(r===!1?ce.sortRules:ce.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;const{unitId:n,subUnitId:t,drawingId:r}=e;return this._establishDrawingMap(n,t),this._getDrawingOrder(n,t).indexOf(r)}_getCurrentBySearch(e){var u,o,l;if(e==null)return;const{unitId:n,subUnitId:t,drawingId:r}=e;return(l=(o=(u=this.drawingManagerData[n])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:l[r]}_getOldBySearch(e){var u,o,l;if(e==null)return;const{unitId:n,subUnitId:t,drawingId:r}=e;return(l=(o=(u=this._oldDrawingManagerData[n])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:l[r]}_establishDrawingMap(e,n,t){var r;return this.drawingManagerData[e]||(this.drawingManagerData[e]={}),this.drawingManagerData[e][n]||(this.drawingManagerData[e][n]={data:{},order:[]}),t==null?null:(r=this.drawingManagerData[e][n].data)==null?void 0:r[t]}_addByParam(e){const{unitId:n,subUnitId:t,drawingId:r}=e;this._establishDrawingMap(n,t,r);const u=F.insertOp([n,t,"data",r],e),o=F.insertOp([n,t,"order",this._getDrawingOrder(n,t).length],r),l=[u,o].reduce(F.type.compose,null),E=F.type.invertWithDoc(l,this.drawingManagerData);return{op:l,invertOp:E}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};const{unitId:n,subUnitId:t,drawingId:r}=e;if(this._establishDrawingMap(n,t,r)==null)return{op:[],invertOp:[]};const o=F.removeOp([n,t,"data",r],!0),l=F.removeOp([n,t,"order",this._getDrawingOrder(n,t).indexOf(r)],!0),E=[o,l].reduce(F.type.compose,null),W=F.type.invertWithDoc(E,this.drawingManagerData);return{op:E,invertOp:W}}_updateByParam(e){const{unitId:n,subUnitId:t,drawingId:r}=e,u=this._establishDrawingMap(n,t,r);if(u==null)return{op:[],invertOp:[]};const l=this._getUpdateParamCompareOp(e,u).reduce(F.type.compose,null),E=F.type.invertWithDoc(l,this.drawingManagerData);return{op:l,invertOp:E}}_getUpdateParamCompareOp(e,n){const{unitId:t,subUnitId:r,drawingId:u}=e,o=[];return Object.keys(e).forEach(l=>{const E=e[l],W=n[l];W!==E&&o.push(F.replaceOp([t,r,"data",u,l],W,E))}),o}_getDrawingData(e,n){var t,r;return((r=(t=this.drawingManagerData[e])==null?void 0:t[n])==null?void 0:r.data)||{}}_getDrawingOrder(e,n){var t,r;return((r=(t=this.drawingManagerData[e])==null?void 0:t[n])==null?void 0:r.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}}class Nt extends kt{}class $t{constructor(){H(this,"_waitCount",0);H(this,"_change$",new Ie.Subject);H(this,"change$",this._change$);H(this,"_imageSourceCache",new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,n){if(n===ce.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,n,t){n===ce.ImageSourceType.BASE64||t==null||this._imageSourceCache.set(e,t)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((n,t)=>{if(!At.includes(e.type)){t(new Error(ce.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>Pt){t(new Error(ce.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}const r=new FileReader;r.readAsDataURL(e),r.onload=u=>{var E;const o=(E=u.target)==null?void 0:E.result;if(o==null){t(new Error(ce.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const l=ce.Tools.generateRandomId(6);n({imageId:l,imageSourceType:ce.ImageSourceType.BASE64,source:o,base64Cache:o,status:ce.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var Zt=Object.getOwnPropertyDescriptor,Qt=(a,e,n,t)=>{for(var r=t>1?void 0:t?Zt(e,n):e,u=a.length-1,o;u>=0;u--)(o=a[u])&&(r=o(r)||r);return r},ct=(a,e)=>(n,t)=>e(n,t,a);const en="UNIVER_DRAWING_PLUGIN";var dt;exports.UniverDrawingPlugin=(dt=class extends ce.Plugin{constructor(e=vt,n,t,r){super(),this._config=e,this._injector=n,this._configService=t,this._commandService=r;const{...u}=ce.merge({},vt,this._config);this._configService.setConfig(Ht,u)}onStarting(){this._initCommands(),this._initDependencies()}_initDependencies(){var t;const e=[[ce.IImageIoService,{useClass:$t}],[ht,{useClass:Nt}]];ce.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(r=>this._injector.add(r))}_initCommands(){[Mt].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}},H(dt,"pluginName",en),dt);exports.UniverDrawingPlugin=Qt([ct(1,ce.Inject(ce.Injector)),ct(2,ce.IConfigService),ct(3,ce.ICommandService)],exports.UniverDrawingPlugin);function tn({unitId:a,subUnitId:e,drawingId:n},t){return typeof t=="number"?`${a}#-#${e}#-#${n}#-#${t}`:`${a}#-#${e}#-#${n}`}const nn=async a=>new Promise((e,n)=>{const t=new Image;t.src=a,t.onload=()=>{e({width:t.width,height:t.height,image:t})},t.onerror=r=>{n(r)}});Object.defineProperty(exports,"IImageIoService",{enumerable:!0,get:()=>ce.IImageIoService});Object.defineProperty(exports,"ImageSourceType",{enumerable:!0,get:()=>ce.ImageSourceType});Object.defineProperty(exports,"ImageUploadStatusType",{enumerable:!0,get:()=>ce.ImageUploadStatusType});exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST=At;exports.DRAWING_IMAGE_ALLOW_SIZE=Pt;exports.DRAWING_IMAGE_COUNT_LIMIT=Kt;exports.DRAWING_IMAGE_HEIGHT_LIMIT=qt;exports.DRAWING_IMAGE_WIDTH_LIMIT=Lt;exports.DrawingManagerService=Nt;exports.IDrawingManagerService=ht;exports.ImageIoService=$t;exports.SetDrawingSelectedOperation=Mt;exports.UnitDrawingService=kt;exports.getDrawingShapeKeyByDrawingSearch=tn;exports.getImageSize=nn;
package/lib/es/index.js CHANGED
@@ -1,14 +1,21 @@
1
1
  var Nt = Object.defineProperty;
2
2
  var Rt = (a, e, n) => e in a ? Nt(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
3
3
  var F = (a, e, n) => Rt(a, typeof e != "symbol" ? e + "" : e, n);
4
- import { sortRules as xt, sortRulesByDesc as Bt, createIdentifier as Wt, CommandType as Gt, ImageSourceType as at, ImageUploadStatusType as et, Tools as Lt, Inject as qt, Injector as Kt, IConfigService as Ft, ICommandService as Vt, Plugin as Ht, merge as zt, mergeOverrideWithDependencies as Xt, IImageIoService as Jt } from "@univerjs/core";
4
+ import { createIdentifier as xt, CommandType as Bt, sortRules as Wt, sortRulesByDesc as Gt, ImageSourceType as at, ImageUploadStatusType as et, Tools as Lt, Inject as qt, Injector as Kt, IConfigService as Ft, ICommandService as Vt, Plugin as Ht, merge as zt, mergeOverrideWithDependencies as Xt, IImageIoService as Jt } from "@univerjs/core";
5
5
  import { IImageIoService as In, ImageSourceType as En, ImageUploadStatusType as Dn } from "@univerjs/core";
6
6
  import { Subject as be } from "rxjs";
7
- const _n = 500, vn = 500, mn = 10, Yt = 5 * 1024 * 1024, Zt = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
8
- var Ve = {}, Ze = {}, tt = {}, vt;
9
- function Qt() {
10
- if (vt) return tt;
11
- vt = 1, Object.defineProperty(tt, "__esModule", { value: !0 });
7
+ const _n = 500, vn = 500, mn = 10, Yt = 5 * 1024 * 1024, Zt = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"], Mt = xt("univer.drawing-manager.service"), Qt = {
8
+ id: "drawing.operation.set-drawing-selected",
9
+ type: Bt.OPERATION,
10
+ handler: (a, e) => {
11
+ const n = a.get(Mt);
12
+ return e == null ? !1 : (n.focusDrawing(e), !0);
13
+ }
14
+ }, en = "drawing.config", vt = {};
15
+ var Ve = {}, Ze = {}, tt = {}, mt;
16
+ function tn() {
17
+ if (mt) return tt;
18
+ mt = 1, Object.defineProperty(tt, "__esModule", { value: !0 });
12
19
  function a(t, r) {
13
20
  if (Array.isArray(r))
14
21
  return !1;
@@ -33,10 +40,10 @@ function Qt() {
33
40
  }
34
41
  return tt.default = n, tt;
35
42
  }
36
- var nt = {}, mt;
37
- function en() {
38
- if (mt) return nt;
39
- mt = 1, Object.defineProperty(nt, "__esModule", { value: !0 });
43
+ var nt = {}, Ot;
44
+ function nn() {
45
+ if (Ot) return nt;
46
+ Ot = 1, Object.defineProperty(nt, "__esModule", { value: !0 });
40
47
  function a(e) {
41
48
  if (e === null)
42
49
  return null;
@@ -52,9 +59,9 @@ function en() {
52
59
  }
53
60
  return nt.default = a, nt;
54
61
  }
55
- var lt = {}, Ot;
56
- function Mt() {
57
- return Ot || (Ot = 1, function(a) {
62
+ var lt = {}, wt;
63
+ function St() {
64
+ return wt || (wt = 1, function(a) {
58
65
  Object.defineProperty(a, "__esModule", { value: !0 }), a.eachChildOf = a.advancer = a.readCursor = a.writeCursor = a.WriteCursor = a.ReadCursor = a.isValidPathItem = void 0;
59
66
  function e(_, s) {
60
67
  if (!_)
@@ -281,17 +288,17 @@ function Mt() {
281
288
  a.eachChildOf = x;
282
289
  }(lt)), lt;
283
290
  }
284
- var ut = {}, wt;
285
- function St() {
286
- return wt || (wt = 1, function(a) {
291
+ var ut = {}, bt;
292
+ function kt() {
293
+ return bt || (bt = 1, function(a) {
287
294
  Object.defineProperty(a, "__esModule", { value: !0 }), a.ConflictType = void 0, function(e) {
288
295
  e[e.RM_UNEXPECTED_CONTENT = 1] = "RM_UNEXPECTED_CONTENT", e[e.DROP_COLLISION = 2] = "DROP_COLLISION", e[e.BLACKHOLE = 3] = "BLACKHOLE";
289
296
  }(a.ConflictType || (a.ConflictType = {}));
290
297
  }(ut)), ut;
291
298
  }
292
- var Ue = {}, He = {}, bt;
299
+ var Ue = {}, He = {}, Ct;
293
300
  function pt() {
294
- return bt || (bt = 1, Object.defineProperty(He, "__esModule", { value: !0 }), He.uniToStrPos = He.strPosToUni = void 0, He.strPosToUni = (a, e = a.length) => {
301
+ return Ct || (Ct = 1, Object.defineProperty(He, "__esModule", { value: !0 }), He.uniToStrPos = He.strPosToUni = void 0, He.strPosToUni = (a, e = a.length) => {
295
302
  let n = 0, t = 0;
296
303
  for (; t < e; t++) {
297
304
  const r = a.charCodeAt(t);
@@ -309,9 +316,9 @@ function pt() {
309
316
  return n;
310
317
  }), He;
311
318
  }
312
- var ct = {}, Ct;
319
+ var ct = {}, It;
313
320
  function ht() {
314
- return Ct || (Ct = 1, function(a) {
321
+ return It || (It = 1, function(a) {
315
322
  Object.defineProperty(a, "__esModule", { value: !0 }), a.uniSlice = a.dlen = a.eachOp = void 0;
316
323
  const e = pt(), n = (f) => {
317
324
  if (!Array.isArray(f))
@@ -587,10 +594,10 @@ function ht() {
587
594
  a.default = ve;
588
595
  }(ct)), ct;
589
596
  }
590
- var rt = {}, It;
591
- function tn() {
592
- if (It) return rt;
593
- It = 1, Object.defineProperty(rt, "__esModule", { value: !0 });
597
+ var rt = {}, Et;
598
+ function rn() {
599
+ if (Et) return rt;
600
+ Et = 1, Object.defineProperty(rt, "__esModule", { value: !0 });
594
601
  const a = ht(), e = pt();
595
602
  function n(t, r) {
596
603
  return {
@@ -631,9 +638,9 @@ function tn() {
631
638
  }
632
639
  return rt.default = n, n.provides = { text: !0 }, rt;
633
640
  }
634
- var Et;
635
- function nn() {
636
- return Et || (Et = 1, function(a) {
641
+ var Dt;
642
+ function sn() {
643
+ return Dt || (Dt = 1, function(a) {
637
644
  var e = Ue && Ue.__createBinding || (Object.create ? function(c, h, U, Y) {
638
645
  Y === void 0 && (Y = U), Object.defineProperty(c, Y, { enumerable: !0, get: function() {
639
646
  return h[U];
@@ -653,7 +660,7 @@ function nn() {
653
660
  return c && c.__esModule ? c : { default: c };
654
661
  };
655
662
  Object.defineProperty(a, "__esModule", { value: !0 }), a.type = a.remove = a.insert = void 0;
656
- const u = pt(), o = t(ht()), l = r(tn()), E = {
663
+ const u = pt(), o = t(ht()), l = r(rn()), E = {
657
664
  create(c) {
658
665
  return c;
659
666
  },
@@ -691,9 +698,9 @@ function nn() {
691
698
  } });
692
699
  }(Ue)), Ue;
693
700
  }
694
- var Dt;
695
- function rn() {
696
- return Dt || (Dt = 1, function(a) {
701
+ var Pt;
702
+ function on() {
703
+ return Pt || (Pt = 1, function(a) {
697
704
  var e = Ze && Ze.__importDefault || function(i) {
698
705
  return i && i.__esModule ? i : {
699
706
  default: i
@@ -702,7 +709,7 @@ function rn() {
702
709
  Object.defineProperty(a, "__esModule", {
703
710
  value: !0
704
711
  }), a.editOp = a.replaceOp = a.insertOp = a.moveOp = a.removeOp = a.type = void 0;
705
- const n = e(Qt()), t = e(en()), r = Mt(), u = St();
712
+ const n = e(tn()), t = e(nn()), r = St(), u = kt();
706
713
  function o(i, d) {
707
714
  if (!i) throw new Error(d);
708
715
  }
@@ -758,7 +765,7 @@ function rn() {
758
765
  if (d) return d;
759
766
  throw Error("Missing type: " + i);
760
767
  };
761
- Z(nn());
768
+ Z(sn());
762
769
  const Le = (i, d) => i + d;
763
770
  Z({
764
771
  name: "number",
@@ -1455,9 +1462,9 @@ function rn() {
1455
1462
  }
1456
1463
  }(Ze)), Ze;
1457
1464
  }
1458
- var Pt;
1459
- function sn() {
1460
- return Pt || (Pt = 1, function(a) {
1465
+ var Tt;
1466
+ function an() {
1467
+ return Tt || (Tt = 1, function(a) {
1461
1468
  var e = Ve && Ve.__createBinding || (Object.create ? function(u, o, l, E) {
1462
1469
  E === void 0 && (E = l), Object.defineProperty(u, E, { enumerable: !0, get: function() {
1463
1470
  return o[l];
@@ -1467,21 +1474,21 @@ function sn() {
1467
1474
  }), n = Ve && Ve.__exportStar || function(u, o) {
1468
1475
  for (var l in u) l !== "default" && !o.hasOwnProperty(l) && e(o, u, l);
1469
1476
  };
1470
- Object.defineProperty(a, "__esModule", { value: !0 }), n(rn(), a);
1471
- var t = Mt();
1477
+ Object.defineProperty(a, "__esModule", { value: !0 }), n(on(), a);
1478
+ var t = St();
1472
1479
  Object.defineProperty(a, "ReadCursor", { enumerable: !0, get: function() {
1473
1480
  return t.ReadCursor;
1474
1481
  } }), Object.defineProperty(a, "WriteCursor", { enumerable: !0, get: function() {
1475
1482
  return t.WriteCursor;
1476
1483
  } });
1477
- var r = St();
1484
+ var r = kt();
1478
1485
  Object.defineProperty(a, "ConflictType", { enumerable: !0, get: function() {
1479
1486
  return r.ConflictType;
1480
1487
  } });
1481
1488
  }(Ve)), Ve;
1482
1489
  }
1483
- var V = sn();
1484
- class on {
1490
+ var V = an();
1491
+ class ln {
1485
1492
  constructor() {
1486
1493
  F(this, "drawingManagerData", {});
1487
1494
  F(this, "_oldDrawingManagerData", {});
@@ -1802,7 +1809,7 @@ class on {
1802
1809
  return t.map((u) => {
1803
1810
  const o = this._hasDrawingOrder({ unitId: e, subUnitId: n, drawingId: u });
1804
1811
  return { drawingId: u, zIndex: o };
1805
- }).sort(r === !1 ? xt : Bt);
1812
+ }).sort(r === !1 ? Wt : Gt);
1806
1813
  }
1807
1814
  _hasDrawingOrder(e) {
1808
1815
  if (e == null)
@@ -1890,30 +1897,8 @@ class on {
1890
1897
  this._editable = e;
1891
1898
  }
1892
1899
  }
1893
- class an extends on {
1900
+ class un extends ln {
1894
1901
  }
1895
- function On({ unitId: a, subUnitId: e, drawingId: n }, t) {
1896
- return typeof t == "number" ? `${a}#-#${e}#-#${n}#-#${t}` : `${a}#-#${e}#-#${n}`;
1897
- }
1898
- const wn = async (a) => new Promise((e, n) => {
1899
- const t = new Image();
1900
- t.src = a, t.onload = () => {
1901
- e({
1902
- width: t.width,
1903
- height: t.height,
1904
- image: t
1905
- });
1906
- }, t.onerror = (r) => {
1907
- n(r);
1908
- };
1909
- }), kt = Wt("univer.drawing-manager.service"), ln = {
1910
- id: "drawing.operation.set-drawing-selected",
1911
- type: Gt.OPERATION,
1912
- handler: (a, e) => {
1913
- const n = a.get(kt);
1914
- return e == null ? !1 : (n.focusDrawing(e), !0);
1915
- }
1916
- }, un = "drawing.config", Tt = {};
1917
1902
  class cn {
1918
1903
  constructor() {
1919
1904
  F(this, "_waitCount", 0);
@@ -1978,14 +1963,14 @@ var dn = Object.getOwnPropertyDescriptor, fn = (a, e, n, t) => {
1978
1963
  const hn = "UNIVER_DRAWING_PLUGIN";
1979
1964
  var ft;
1980
1965
  let At = (ft = class extends Ht {
1981
- constructor(a = Tt, e, n, t) {
1966
+ constructor(a = vt, e, n, t) {
1982
1967
  super(), this._config = a, this._injector = e, this._configService = n, this._commandService = t;
1983
1968
  const { ...r } = zt(
1984
1969
  {},
1985
- Tt,
1970
+ vt,
1986
1971
  this._config
1987
1972
  );
1988
- this._configService.setConfig(un, r);
1973
+ this._configService.setConfig(en, r);
1989
1974
  }
1990
1975
  onStarting() {
1991
1976
  this._initCommands(), this._initDependencies();
@@ -1994,12 +1979,12 @@ let At = (ft = class extends Ht {
1994
1979
  var n;
1995
1980
  Xt([
1996
1981
  [Jt, { useClass: cn }],
1997
- [kt, { useClass: an }]
1982
+ [Mt, { useClass: un }]
1998
1983
  ], (n = this._config) == null ? void 0 : n.override).forEach((t) => this._injector.add(t));
1999
1984
  }
2000
1985
  _initCommands() {
2001
1986
  [
2002
- ln
1987
+ Qt
2003
1988
  ].forEach((a) => this.disposeWithMe(this._commandService.registerCommand(a)));
2004
1989
  }
2005
1990
  }, F(ft, "pluginName", hn), ft);
@@ -2008,20 +1993,35 @@ At = fn([
2008
1993
  dt(2, Ft),
2009
1994
  dt(3, Vt)
2010
1995
  ], At);
1996
+ function On({ unitId: a, subUnitId: e, drawingId: n }, t) {
1997
+ return typeof t == "number" ? `${a}#-#${e}#-#${n}#-#${t}` : `${a}#-#${e}#-#${n}`;
1998
+ }
1999
+ const wn = async (a) => new Promise((e, n) => {
2000
+ const t = new Image();
2001
+ t.src = a, t.onload = () => {
2002
+ e({
2003
+ width: t.width,
2004
+ height: t.height,
2005
+ image: t
2006
+ });
2007
+ }, t.onerror = (r) => {
2008
+ n(r);
2009
+ };
2010
+ });
2011
2011
  export {
2012
2012
  Zt as DRAWING_IMAGE_ALLOW_IMAGE_LIST,
2013
2013
  Yt as DRAWING_IMAGE_ALLOW_SIZE,
2014
2014
  mn as DRAWING_IMAGE_COUNT_LIMIT,
2015
2015
  vn as DRAWING_IMAGE_HEIGHT_LIMIT,
2016
2016
  _n as DRAWING_IMAGE_WIDTH_LIMIT,
2017
- an as DrawingManagerService,
2018
- kt as IDrawingManagerService,
2017
+ un as DrawingManagerService,
2018
+ Mt as IDrawingManagerService,
2019
2019
  In as IImageIoService,
2020
2020
  cn as ImageIoService,
2021
2021
  En as ImageSourceType,
2022
2022
  Dn as ImageUploadStatusType,
2023
- ln as SetDrawingSelectedOperation,
2024
- on as UnitDrawingService,
2023
+ Qt as SetDrawingSelectedOperation,
2024
+ ln as UnitDrawingService,
2025
2025
  At as UniverDrawingPlugin,
2026
2026
  On as getDrawingShapeKeyByDrawingSearch,
2027
2027
  wn as getImageSize