@univerjs/drawing 0.5.1 → 0.5.2-nightly.202412281605

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 Wt=Object.defineProperty;var xt=(a,e,n)=>e in a?Wt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n;var H=(a,e,n)=>xt(a,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const pe=require("@univerjs/core"),Ie=require("rxjs"),Bt=500,Gt=500,Lt=10,St=5*1024*1024,Pt=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"];var Ve={},Qe={},tt={},yt;function qt(){if(yt)return tt;yt=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={},_t;function Kt(){if(_t)return nt;_t=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={},vt;function Tt(){return vt||(vt=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 ge=0;ge<s.length;ge++){const Z=s[ge];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(ge){let Z;for(;U;){const Ce=Z=_.getKey();if(ge!=null){let Le=!1;if(s&&typeof Ce=="number"&&(Z=s(Ce,_.getComponent()),Z<0&&(Z=~Z,Le=!0)),t(Z,ge))return null;if(Z===ge&&!Le)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,ge;for(h=U=_&&_.descendFirst(),Y=ge=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(),ge&&s.ascend()}a.eachChildOf=W}(at)),at}var lt={},mt;function At(){return mt||(mt=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={},Ot;function ft(){return Ot||(Ot=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={},bt;function dt(){return bt||(bt=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.uniSlice=a.dlen=a.eachOp=void 0;const e=ft(),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 ce=f[y];let ne;if(typeof ce=="number")return q===-1||ce-w<=q?(ne=ce-w,++y,w=0,ne):(w+=q,q);if(typeof ce=="string"){if(q===-1||De==="i"||e.strPosToUni(ce.slice(w))<=q)return ne=ce.slice(w),++y,w=0,ne;{const le=w+e.uniToStrPos(ce.slice(w),q);return ne=ce.slice(w,le),w=le,ne}}else{if(q===-1||De==="d"||a.dlen(ce.d)-w<=q)return ne={d:W(ce.d,w)},++y,w=0,ne;{let le=W(ce.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 ce;for(;ce=q(-1);)z(ce);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 ce=y[De];let ne,le;switch(typeof ce){case"number":for(ne=ce;ne>0;)le=z(ne,"d"),L(le),typeof le!="object"&&(ne-=E(le));break;case"string":L(ce);break;case"object":ne=a.dlen(ce.d);let ye=0;for(;ye<ne;)switch(le=z(ne-ye,"d"),typeof le){case"number":L({d:W(ce.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 ge(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 Le(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:Le,makeInvertible(y,w){return ge(y,w,f)},stripInvertible:Ce,invert:Z,invertWithDoc(y,w){return Z(ge(y,w,f))},isNoop:y=>y.length===0}}a.default=me}(ut)),ut}var rt={},wt;function Ht(){if(wt)return rt;wt=1,Object.defineProperty(rt,"__esModule",{value:!0});const a=dt(),e=ft();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 It;function Ft(){return It||(It=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=ft(),o=t(dt()),l=r(Ht()),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=dt();Object.defineProperty(a,"makeType",{enumerable:!0,get:function(){return s.default}})}(ke)),ke}var Ct;function Vt(){return Ct||(Ct=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(qt()),t=e(Kt()),r=Tt(),u=At();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:ce,compose:ne,tryTransform:st,transform:$t,makeInvertible:Se,invert:le,invertWithDoc:Nt,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>pt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},a.type),{transform:(d,m,D)=>pt(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,ge={};function Z(i){let d=i.type?i.type:i;d.name&&(ge[d.name]=d),d.uri&&(ge[d.uri]=d)}const Ce=i=>{const d=ge[i];if(d)return d;throw Error("Missing type: "+i)};Z(Ft());const Le=(i,d)=>i+d;Z({name:"number",apply:Le,compose:Le,invert:i=>-i,transform:i=>i});const me=i=>i==null?null:i.et?Ce(i.et):i.es?ge["text-unicode"]:i.ena!=null?ge.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 p in C){const v=C[p];if(R=!1,o(p==="p"||p==="r"||p==="d"||p==="i"||p==="e"||p==="es"||p==="ena"||p==="et","Invalid component item '"+p+"'"),p==="p")w(v),o(!d.has(v)),d.add(v),o(C.r===void 0);else if(p==="d")w(v),o(!m.has(v)),m.add(v),o(C.i===void 0);else if(p==="e"||p==="es"||p==="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 p=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 g=typeof b,M=typeof x;g===M?o(b<x,"descent keys are not in order"):o(g==="number"&&M==="string")}b=x,v++,p=3}else typeof $=="object"?(o(p===1,`Prev not scalar - instead ${p}`),D($),p=2):(o(p!==3),L($),o(r.isValidPathItem($),"Invalid path key"),p=1)}return o(v!==1,"Operation makes multiple descents. Remove some []"),o(p===2||p===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 p=f(O);y(C,R,R.normalize?R.normalize(p):p)}for(const p of["r","p","i","d"])if(O[p]!==void 0){const v=p==="p"||p==="d"?(N=O[p],m[N]==null&&(m[N]=d++),m[N]):O[p];C.write(p,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,p={root:O},v=0,b=p,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 g=D(R,x);g!==R&&g!==void 0&&($(),R=b[I]=g)}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 g=me(x);if(g)$(),R=b[I]=g.apply(R,f(x));else if(x.e!==void 0)throw Error("Subtype "+x.et+" undefined")}else R=Y(R,x)}return p.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,(p=W(p=$))[v]=b,p)}else _(I)&&(o(O!==void 0,"Cannot pick up or remove undefined"),I.p!=null&&(m[I.p]=O),O=void 0)}var p,v,b;return O}(i,d),d)}function ce(i,d){i=i.slice(),z(d);const m=r.readCursor(d);let D,O,C=!1;const R=[];for(let p=0;;p++){const v=i[p],b=m.getComponent();if(b&&(b.r!==void 0?C=!0:b.p!=null&&(C=!1,D=b.p,O=p)),p>=i.length)break;let I=0;const $=r.advancer(m,void 0,(g,M)=>{_(M)&&I++});R.unshift($);const x=$(v);if(typeof v=="number"&&(i[p]-=I),!x)break}if(R.forEach(p=>p.end()),C)return null;const N=()=>{let p=0;if(D!=null){const v=m.getPath();p=v.length,i=v.concat(i.slice(O))}for(;p<i.length;p++){const v=i[p],b=l(m),I=me(b);if(I){const g=f(b);I.transformPosition&&(i[p]=I.transformPosition(i[p],g));break}let $=0;const x=r.advancer(m,(g,M)=>s(M)?~(g-$):g-$,(g,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[p]+=$),!x)break}};return D!=null?m.eachDrop(null,p=>{p===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=[],p=[],v=[],b=[],I=[],$=new Set;D.traverse(null,g=>{g.p!=null&&(p[g.p]=D.clone())}),O.traverse(null,g=>{g.d!=null&&(v[g.d]=O.clone())});const x=r.writeCursor();return function g(M,re,te,K,se,Re,be,_e){o(re||te);const oe=l(re),Pe=l(te),Ae=!!Pe&&Pe.r!==void 0,qe=!!oe&&oe.i!==void 0,Te=oe?oe.d:null,Ee=Pe?Pe.p:null,We=(Re||Ae)&&Ee==null;if(Ee!=null)K=v[Ee],be=N[Ee]=new r.WriteCursor;else if(Pe&&Pe.r!==void 0)K=null;else{const P=l(K);P&&P.d!=null&&(K=null)}const Q=l(K);if(Te!=null)if(M=p[Te],_e=R[Te]=new r.WriteCursor,We)Re&&!Ae&&_e.write("r",!0);else{const P=b[Te]=m++;be.write("d",P)}else if(oe&&oe.i!==void 0)M=null;else{const P=l(M);P&&P.p!=null&&(M=null)}let T;qe?(o(se===void 0),T=oe.i):T=se;const B=(Ee==null?!qe||Re||Ae:T===void 0)?null:be.getComponent();if(Ee!=null){if(!(se!==void 0||qe)){const P=Te!=null?b[Te]:m++;I[Ee]=P,_e.write("p",P)}}else Ae&&(qe||se!==void 0||(Pe.r,_e.write("r",Pe.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 P=f(oe),G=f(Q),he=A.compose(P,G);y(be,A,he),$.add(Q)}else A?y(be,A,f(oe)):S&&(y(be,S,f(Q)),$.add(Q));const j=typeof T=="object"&&T!=null;let X=!1,J=0,ee=0,fe=0,de=0,ae=0;const Oe=r.advancer(K,(P,G)=>s(G)?de-P-1:P-de,(P,G)=>{s(G)&&de++}),V=r.advancer(M,(P,G)=>_(G)?J-P-1:P-J,(P,G)=>{_(G)&&J++});if(r.eachChildOf(re,te,(P,G,he)=>{let we,xe,Ke=P,Me=P,Ze=P;if(typeof P=="number"){let ve=P+fe;xe=Oe(ve),Me=ve+de;let ue=P+ee;we=V(ue),s(l(xe))&&(we=null),Ke=ue+J,Ze=P+ae,o(Ke>=0,"p1PickKey is negative"),o(Me>=0,"p2DropKey is negative");const je=s(l(G)),Be=_(l(he));(je||Be&&!We)&&ae--,je&&ee--,Be&&fe--}else we=V(P),xe=Oe(P);_e.descend(Ke),be.descend(Me);const Je=j&&!s(l(G))?T[Ze]:void 0,Ne=g(we,G,he,xe,Je,We,be,_e);var $e,k,ie;j&&!We?Je!==Ne&&(X||(T=Array.isArray(T)?T.slice():Object.assign({},T),X=!0),$e=T,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=T;else if(!Re&&!Ae&&Ee==null)return T}(D,D.clone(),O,O.clone(),void 0,!1,C,x),C.reset(),C.mergeTree(x.get()),C.reset(),C.get(),R.map(g=>g.get()),N.map(g=>g.get()),D.traverse(C,(g,M)=>{const re=g.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 g.r!==void 0&&M.write("r",g.r)}),C.reset(),C.get(),O.traverse(C,(g,M)=>{const re=g.d;if(re!=null){const K=I[re];K!=null&&M.write("d",K);const se=N[re];se&&M.mergeTree(se.get())}else g.i!==void 0&&M.write("i",g.i);const te=me(g);te&&!$.has(g)&&y(M,te,f(g))}),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,p,v){const b=N.getComponent();let I,$=!1;if(b){b.p!=null&&(p.write("d",b.p),O[b.p]=N.clone()),b.r!==void 0&&p.write("i",b.r),b.d!=null&&(p.write("p",b.d),v=void 0),b.i!==void 0&&(v=I=b.i);const g=me(b);g&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=g.apply(v,f(b)),$=!0))}let x=0;for(const g of N){p.descend(g);const M=typeof g=="number"?g-x:g,re=Y(v,M);s(N.getComponent())&&x++;const te=R(N,p,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}p.ascend()}if(I===void 0)return $?v:void 0;p.write("r",v)}(d,m,void 0),D&&(m.reset(),function R(N,p,v){const b=p.getComponent();if(b){const g=b.d;if(g!=null&&(N=O[g],v=C[g]=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,(g,M)=>_(M)?I-g-1:g-I,(g,M)=>{_(M)&&I++});for(const g of p)if(typeof g=="number"){const M=g-$,re=x(M),te=M+I;v.descend(te),R(re,p,v),s(p.getComponent())&&$++,v.ascend()}else v.descend(g),R(x(g),p,v),v.ascend();x.end()}(d.clone(),d,m),C.length&&(m.reset(),d.traverse(m,(R,N)=>{const p=R.p;if(p!=null){const v=C[p];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,p=>{var v;return p.r!==void 0||((v=me(p))===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=(p,v,b)=>{const I=p.getComponent();let $=!1;if(I){I.d!=null&&v.write("d",I.d),I.i!==void 0&&v.write("i",I.i);const g=I.p;if(g!=null&&(C[g]=p.clone(),o(b!==void 0,"Operation picks up at an invalid key"),R[g]=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 g of p){v.descend(g);const M=typeof g=="number"?g-x:g,re=Y(b,M),te=N(p,v,re);re!==te&&($||($=!0,b=W(b)),te===void 0?(b=c(b,M),typeof g=="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 p(v,b,I,$,x){const g=b.getComponent();if(g){g.i!==void 0?($=g.i,x=!0):g.d!=null&&($=R[g.d],v=C[g.d],x=!1,g.d);let K=me(g);if(K&&K.makeInvertible){const se=f(g);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),p(Re,b,I,_e,x),s(b.getComponent())&&re++,I.ascend()}else{const se=Y($,K);I.descend(K),p(te(K),b,I,se,x),I.ascend()}te.end()}(m.clone(),m,D,d,!1)),D.get()}function Nt(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=[],p=[],v=[],b=[],I=[],$=[],x=[],g=[],M=[],re=[],te=[],K=[],se=[];let Re=0;const be=r.readCursor(i),_e=r.readCursor(d),oe=r.writeCursor();if(function Q(T,B=null,A){const S=l(B);S&&(S.r!==void 0?A=B.clone():S.p!=null&&(A=null,b[S.p]=T.clone()));const j=T.getComponent();let X;j&&(X=j.p)!=null&&(v[X]=B?B.clone():null,N[X]=T.clone(),A&&(g[X]=!0,x[X]=A),S&&S.p!=null&&(K[X]=S.p));const J=r.advancer(B);for(const ee of T)Q(T,J(ee),A);J.end()}(_e,be,null),function Q(T,B,A,S,j){const X=A.getComponent();let J,ee=!1;X&&((J=X.d)!=null?(p[J]=A.clone(),S!=null&&(se[S]==null&&(se[S]=[]),se[S].push(J)),T=v[J]||null,B=N[J]||null,g[J]?(j&&(M[J]=!0),j=x[J]||null):!j||D!==1&&K[J]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.moveOp(B.getPath(),A.getPath())}),ee=!0):X.i!==void 0&&(T=B=null,ee=!0,j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.insertOp(A.getPath(),X.i)})));const fe=l(T);fe&&(fe.r!==void 0?j=T.clone():fe.p!=null&&(fe.p,S=fe.p,j=null));const de=me(X);de&&j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.editOp(A.getPath(),de,f(X),!0)});let ae=0,Oe=0;const V=r.advancer(B,(G,he)=>_(he)?ae-G-1:G-ae,(G,he)=>{_(he)&&ae++}),P=r.advancer(T);for(const G of A)if(typeof G=="number"){const he=G-Oe,we=V(he);Oe+=+Q(P(he+ae),we,A,S,j)}else{const he=V(G);Q(P(G),he,A,S,j)}return V.end(),P.end(),ee}(be,_e,_e.clone(),null,null),p.map(Q=>Q&&Q.get()),O)return{ok:!1,conflict:O};M.map(Q=>!!Q);const Pe=[];let Ae=null;(function Q(T,B,A,S,j){let X=!1;const J=l(B);if(_(J)){const V=J.p;V!=null?(A=p[V],S=re[V]=r.writeCursor(),X=!0,j=null):(A=null,j=B.clone())}else s(l(A))&&(A=null);const ee=T.getComponent();if(ee){const V=ee.p;V!=null?(j&&($[V]=j),Pe[V]=j||D===1&&X?null:S.getComponent(),C[V]=T.clone(),A&&(I[V]=A.clone())):ee.r!==void 0&&(j||S.write("r",!0),(j||X)&&(Ae==null&&(Ae=new Set),Ae.add(ee)))}let fe=0,de=0;const ae=r.advancer(B,void 0,(V,P)=>{_(P)&&fe++}),Oe=r.advancer(A,(V,P)=>s(P)?~(V-de):V-de,(V,P)=>{s(P)&&de++});if(T)for(const V of T)if(typeof V=="string"){const P=ae(V),G=Oe(V);S.descend(V),Q(T,P,G,S,j),S.ascend()}else{const P=ae(V),G=V-fe,he=_(l(P))?null:Oe(G),we=G+de;o(we>=0),S.descend(we),Q(T,P,he,S,j),S.ascend()}ae.end(),Oe.end()})(be,_e,_e.clone(),oe,null),oe.reset();let qe=[];if(function Q(T,B,A,S,j,X){o(B);const J=B.getComponent();let ee=l(S),fe=!1;const de=(k,ie,ve)=>k?a.moveOp(k.getPath(),ie.getPath()):a.insertOp(ie.getPath(),ve.i);if(s(J)){const k=J.d;k!=null&&(R[k]=B.clone());const ie=k!=null?Pe[k]:null;let ve=!1;if(J.i!==void 0||k!=null&&ie){let ue;ee&&(ee.i!==void 0||(ue=ee.d)!=null&&!g[ue])&&(ve=ue!=null?k!=null&&k===K[ue]:n.default(ee.i,J.i),ve||ue!=null&&D!==1&&K[ue]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:de(k!=null?C[k]:null,B,J),op2:de(ue!=null?N[ue]:null,S,ee)})),ve||(X?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:de(k!=null?C[k]:null,B,J),op2:a.removeOp(X.getPath())}):(k!=null?(qe[Re]=k,j.write("d",ie.p=Re++)):j.write("i",t.default(J.i)),fe=!0))}else if(k!=null&&!ie){const ue=$[k];ue&&(X=ue.clone())}k!=null?(T=C[k],A=b[k],S=I[k]):J.i!==void 0&&(T=A=null,ve||(S=null))}else _(l(T))&&(T=A=S=null);const ae=l(T),Oe=l(A);if(_(Oe)){const k=Oe.p;Oe.r!==void 0&&(!ae||ae.r===void 0)||g[k]?(S=null,X=A.clone()):k!=null&&(S=p[k],D!==1&&K[k]!=null||((j=te[k])||(j=te[k]=r.writeCursor()),j.reset(),X=null))}else!s(J)&&s(ee)&&(S=null);ee=S!=null?S.getComponent():null;const V=me(J);if(V){const k=f(J);if(X)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.editOp(B.getPath(),V,k,!0),op2:a.removeOp(X.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 P=0,G=0,he=0,we=0,xe=0,Ke=0,Me=T!=null&&T.descendFirst(),Ze=Me;const Je=r.advancer(A,void 0,(k,ie)=>{_(ie)&&he++});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=T.getKey())=="number";){Ge+=P;const Ue=T.getComponent(),Ye=_(Ue);if(Ge>ue||Ge===ue&&(!Ye||D===0&&ve))break;if(Ye){P--;const He=Ue.p;K.includes(He),Ue.d,l(te[Ue.d]),_(l(te[Ue.d])),(Ue.r===void 0||Ae&&Ae.has(Ue))&&(He==null||!Pe[He]||D!==1&&K.includes(He))||xe--}Me=T.nextSibling()}ie=Me&&Ge===ue?T:null}const je=ue-P;let Be=Je(je);const ot=je-he;let et=null;{let Ge,Ue;for(;Ne&&typeof(Ge=S.getKey())=="number";){Ue=Ge-we;const Ye=S.getComponent(),He=s(Ye);if(Ue>ot)break;if(Ue===ot){if(!He){et=S;break}{if(D===0&&ve){et=S;break}const Fe=Be&&_(Be.getComponent());if(D===0&&Fe)break}}if(He){const Fe=Ye.d;K[Fe],Ye.i===void 0&&(g[Fe]||K[Fe]!=null&&D!==1)?(g[Fe]||K[Fe]!=null&&D===0)&&(we++,Ke--):we++}Ne=S.nextSibling()}}const gt=ot+we+xe+Ke;o(gt>=0,"trying to descend to a negative index"),j.descend(gt),ve&&(ie=Be=et=null,G++),Q(ie,B,Be,et,j,X)&&Ke++,j.ascend()}else{let ie;for(;Me&&(ie=T.getKey(),typeof ie!="string"||!(ie>k||ie===k));)Me=T.nextSibling();const ve=Me&&ie===k?T: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,X),j.ascend()}return Je.end(),Ze&&T.ascend(),$e&&S.ascend(),fe}(be,be.clone(),_e,_e.clone(),oe,null),O)return{ok:!1,conflict:O};oe.reset();const Te=(Q,T,B)=>Q.traverse(T,(A,S)=>{A.d!=null&&B(A.d,Q,S)});(g.length||re.length)&&(Te(_e,oe,(Q,T,B)=>{g[Q]&&!M[Q]&&B.write("r",!0),re[Q]&&B.mergeTree(re[Q].get())}),oe.reset());const Ee=[],We=[];if((te.length||g.length)&&!O){const Q=r.readCursor(it(oe.get()));if(Te(Q,null,(T,B)=>{Ee[T]=B.clone()}),te.forEach(T=>{T&&Te(r.readCursor(T.get()),null,(B,A)=>{Ee[B]=A.clone()})}),function T(B,A,S,j,X,J){const ee=l(A);if(ee&&_(ee))if(ee.p!=null){const P=ee.p;Ee[P].getPath(),S=Ee[P],j=We[P]=r.writeCursor()}else ee.r!==void 0&&(S=null);else s(l(S))&&(S=null);const fe=B.getComponent();if(fe){let P;if((P=fe.d)!=null){const G=te[P];G&&(G.get(),j.mergeTree(G.get()),S=r.readCursor(G.get()))}}let de=0,ae=0;const Oe=r.advancer(A,void 0,(P,G)=>{_(G)&&de--}),V=r.advancer(S,(P,G)=>s(G)?-(P-ae)-1:P-ae,(P,G)=>{s(G)&&ae++});for(const P of B)if(typeof P=="number"){const G=Oe(P),he=P+de,we=V(he),xe=he+ae;j.descend(xe),T(B,G,we,j),j.ascend()}else j.descend(P),T(B,Oe(P),V(P),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 T=We.map(A=>A?A.get():null),B=r.readCursor(it(oe.get()));if(Te(B,oe,(A,S,j)=>{const X=T[A];X&&(j.mergeTree(X),T[A]=null)}),T.find(A=>A)){const A=r.writeCursor(),S=r.writeCursor();let j=0,X=0;T.forEach(J=>{J!=null&&Te(r.readCursor(J),null,ee=>{const fe=qe[ee];A.writeMove(C[fe].getPath(),R[fe].getPath(),j++);const de=se[fe];de&&de.forEach(ae=>{g[ae]||D!==1&&K[ae]!=null||S.writeMove(N[ae].getPath(),p[ae].getPath(),X++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:S.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:oe.get()}}const ht=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function $t(i,d,m){const D=st(i,d,m);if(D.ok)return D.result;ht(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()},Rt=(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 pt(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)||ht(R);const[N,p]=Rt(R,D);d=ne(q(d),N),m=ne(q(m),p),O=ne(O,p)}}}}(Qe)),Qe}var Et;function zt(){return Et||(Et=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(Vt(),a);var t=Tt();Object.defineProperty(a,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(a,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var r=At();Object.defineProperty(a,"ConflictType",{enumerable:!0,get:function(){return r.ConflictType}})}(Ve)),Ve}var F=zt();class Mt{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){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?pe.sortRules:pe.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 jt extends Mt{}function Xt({unitId:a,subUnitId:e,drawingId:n},t){return typeof t=="number"?`${a}#-#${e}#-#${n}#-#${t}`:`${a}#-#${e}#-#${n}`}const Jt=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)}}),Yt="drawing.config",Zt={},Ut=pe.createIdentifier("univer.drawing-manager.service");class kt{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===pe.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,n,t){n===pe.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(!Pt.includes(e.type)){t(new Error(pe.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>St){t(new Error(pe.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(pe.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const l=pe.Tools.generateRandomId(6);n({imageId:l,imageSourceType:pe.ImageSourceType.BASE64,source:o,base64Cache:o,status:pe.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var Qt=Object.defineProperty,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=(t?o(e,n,r):o(r))||r);return t&&r&&Qt(e,n,r),r},Dt=(a,e)=>(n,t)=>e(n,t,a);const nn="UNIVER_DRAWING_PLUGIN";var ct;exports.UniverDrawingPlugin=(ct=class extends pe.Plugin{constructor(e=Zt,n,t){super(),this._config=e,this._injector=n,this._configService=t;const{...r}=this._config;this._configService.setConfig(Yt,r)}onStarting(){this._initDependencies()}_initDependencies(){var t;const e=[[pe.IImageIoService,{useClass:kt}],[Ut,{useClass:jt}]];pe.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(r=>this._injector.add(r))}},H(ct,"pluginName",nn),ct);exports.UniverDrawingPlugin=tn([Dt(1,pe.Inject(pe.Injector)),Dt(2,pe.IConfigService)],exports.UniverDrawingPlugin);Object.defineProperty(exports,"IImageIoService",{enumerable:!0,get:()=>pe.IImageIoService});Object.defineProperty(exports,"ImageSourceType",{enumerable:!0,get:()=>pe.ImageSourceType});Object.defineProperty(exports,"ImageUploadStatusType",{enumerable:!0,get:()=>pe.ImageUploadStatusType});exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST=Pt;exports.DRAWING_IMAGE_ALLOW_SIZE=St;exports.DRAWING_IMAGE_COUNT_LIMIT=Lt;exports.DRAWING_IMAGE_HEIGHT_LIMIT=Gt;exports.DRAWING_IMAGE_WIDTH_LIMIT=Bt;exports.DrawingManagerService=jt;exports.IDrawingManagerService=Ut;exports.ImageIoService=kt;exports.UnitDrawingService=Mt;exports.getDrawingShapeKeyByDrawingSearch=Xt;exports.getImageSize=Jt;
1
+ "use strict";var xt=Object.defineProperty;var Bt=(a,e,n)=>e in a?xt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n;var H=(a,e,n)=>Bt(a,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const pe=require("@univerjs/core"),Ie=require("rxjs"),Gt=500,Lt=500,qt=10,Pt=5*1024*1024,Tt=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"];var Ve={},Qe={},tt={},yt;function Kt(){if(yt)return tt;yt=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={},_t;function Ht(){if(_t)return nt;_t=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={},vt;function At(){return vt||(vt=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 ge=0;ge<s.length;ge++){const Z=s[ge];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(ge){let Z;for(;U;){const Ce=Z=_.getKey();if(ge!=null){let Le=!1;if(s&&typeof Ce=="number"&&(Z=s(Ce,_.getComponent()),Z<0&&(Z=~Z,Le=!0)),t(Z,ge))return null;if(Z===ge&&!Le)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,ge;for(h=U=_&&_.descendFirst(),Y=ge=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(),ge&&s.ascend()}a.eachChildOf=W}(at)),at}var lt={},mt;function Mt(){return mt||(mt=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={},Ot;function ft(){return Ot||(Ot=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={},bt;function dt(){return bt||(bt=1,function(a){Object.defineProperty(a,"__esModule",{value:!0}),a.uniSlice=a.dlen=a.eachOp=void 0;const e=ft(),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 ce=f[y];let ne;if(typeof ce=="number")return q===-1||ce-w<=q?(ne=ce-w,++y,w=0,ne):(w+=q,q);if(typeof ce=="string"){if(q===-1||De==="i"||e.strPosToUni(ce.slice(w))<=q)return ne=ce.slice(w),++y,w=0,ne;{const le=w+e.uniToStrPos(ce.slice(w),q);return ne=ce.slice(w,le),w=le,ne}}else{if(q===-1||De==="d"||a.dlen(ce.d)-w<=q)return ne={d:W(ce.d,w)},++y,w=0,ne;{let le=W(ce.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 ce;for(;ce=q(-1);)z(ce);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 ce=y[De];let ne,le;switch(typeof ce){case"number":for(ne=ce;ne>0;)le=z(ne,"d"),L(le),typeof le!="object"&&(ne-=E(le));break;case"string":L(ce);break;case"object":ne=a.dlen(ce.d);let ye=0;for(;ye<ne;)switch(le=z(ne-ye,"d"),typeof le){case"number":L({d:W(ce.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 ge(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 Le(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:Le,makeInvertible(y,w){return ge(y,w,f)},stripInvertible:Ce,invert:Z,invertWithDoc(y,w){return Z(ge(y,w,f))},isNoop:y=>y.length===0}}a.default=me}(ut)),ut}var rt={},wt;function Ft(){if(wt)return rt;wt=1,Object.defineProperty(rt,"__esModule",{value:!0});const a=dt(),e=ft();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 It;function Vt(){return It||(It=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=ft(),o=t(dt()),l=r(Ft()),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=dt();Object.defineProperty(a,"makeType",{enumerable:!0,get:function(){return s.default}})}(ke)),ke}var Ct;function zt(){return Ct||(Ct=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(Kt()),t=e(Ht()),r=At(),u=Mt();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:ce,compose:ne,tryTransform:st,transform:Rt,makeInvertible:Se,invert:le,invertWithDoc:$t,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>pt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},a.type),{transform:(d,m,D)=>pt(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,ge={};function Z(i){let d=i.type?i.type:i;d.name&&(ge[d.name]=d),d.uri&&(ge[d.uri]=d)}const Ce=i=>{const d=ge[i];if(d)return d;throw Error("Missing type: "+i)};Z(Vt());const Le=(i,d)=>i+d;Z({name:"number",apply:Le,compose:Le,invert:i=>-i,transform:i=>i});const me=i=>i==null?null:i.et?Ce(i.et):i.es?ge["text-unicode"]:i.ena!=null?ge.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 p in C){const v=C[p];if(R=!1,o(p==="p"||p==="r"||p==="d"||p==="i"||p==="e"||p==="es"||p==="ena"||p==="et","Invalid component item '"+p+"'"),p==="p")w(v),o(!d.has(v)),d.add(v),o(C.r===void 0);else if(p==="d")w(v),o(!m.has(v)),m.add(v),o(C.i===void 0);else if(p==="e"||p==="es"||p==="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 p=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 g=typeof b,M=typeof x;g===M?o(b<x,"descent keys are not in order"):o(g==="number"&&M==="string")}b=x,v++,p=3}else typeof $=="object"?(o(p===1,`Prev not scalar - instead ${p}`),D($),p=2):(o(p!==3),L($),o(r.isValidPathItem($),"Invalid path key"),p=1)}return o(v!==1,"Operation makes multiple descents. Remove some []"),o(p===2||p===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 p=f(O);y(C,R,R.normalize?R.normalize(p):p)}for(const p of["r","p","i","d"])if(O[p]!==void 0){const v=p==="p"||p==="d"?(N=O[p],m[N]==null&&(m[N]=d++),m[N]):O[p];C.write(p,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,p={root:O},v=0,b=p,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 g=D(R,x);g!==R&&g!==void 0&&($(),R=b[I]=g)}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 g=me(x);if(g)$(),R=b[I]=g.apply(R,f(x));else if(x.e!==void 0)throw Error("Subtype "+x.et+" undefined")}else R=Y(R,x)}return p.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,(p=W(p=$))[v]=b,p)}else _(I)&&(o(O!==void 0,"Cannot pick up or remove undefined"),I.p!=null&&(m[I.p]=O),O=void 0)}var p,v,b;return O}(i,d),d)}function ce(i,d){i=i.slice(),z(d);const m=r.readCursor(d);let D,O,C=!1;const R=[];for(let p=0;;p++){const v=i[p],b=m.getComponent();if(b&&(b.r!==void 0?C=!0:b.p!=null&&(C=!1,D=b.p,O=p)),p>=i.length)break;let I=0;const $=r.advancer(m,void 0,(g,M)=>{_(M)&&I++});R.unshift($);const x=$(v);if(typeof v=="number"&&(i[p]-=I),!x)break}if(R.forEach(p=>p.end()),C)return null;const N=()=>{let p=0;if(D!=null){const v=m.getPath();p=v.length,i=v.concat(i.slice(O))}for(;p<i.length;p++){const v=i[p],b=l(m),I=me(b);if(I){const g=f(b);I.transformPosition&&(i[p]=I.transformPosition(i[p],g));break}let $=0;const x=r.advancer(m,(g,M)=>s(M)?~(g-$):g-$,(g,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[p]+=$),!x)break}};return D!=null?m.eachDrop(null,p=>{p===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=[],p=[],v=[],b=[],I=[],$=new Set;D.traverse(null,g=>{g.p!=null&&(p[g.p]=D.clone())}),O.traverse(null,g=>{g.d!=null&&(v[g.d]=O.clone())});const x=r.writeCursor();return function g(M,re,te,K,se,Re,be,_e){o(re||te);const oe=l(re),Pe=l(te),Ae=!!Pe&&Pe.r!==void 0,qe=!!oe&&oe.i!==void 0,Te=oe?oe.d:null,Ee=Pe?Pe.p:null,We=(Re||Ae)&&Ee==null;if(Ee!=null)K=v[Ee],be=N[Ee]=new r.WriteCursor;else if(Pe&&Pe.r!==void 0)K=null;else{const P=l(K);P&&P.d!=null&&(K=null)}const Q=l(K);if(Te!=null)if(M=p[Te],_e=R[Te]=new r.WriteCursor,We)Re&&!Ae&&_e.write("r",!0);else{const P=b[Te]=m++;be.write("d",P)}else if(oe&&oe.i!==void 0)M=null;else{const P=l(M);P&&P.p!=null&&(M=null)}let T;qe?(o(se===void 0),T=oe.i):T=se;const B=(Ee==null?!qe||Re||Ae:T===void 0)?null:be.getComponent();if(Ee!=null){if(!(se!==void 0||qe)){const P=Te!=null?b[Te]:m++;I[Ee]=P,_e.write("p",P)}}else Ae&&(qe||se!==void 0||(Pe.r,_e.write("r",Pe.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 P=f(oe),G=f(Q),he=A.compose(P,G);y(be,A,he),$.add(Q)}else A?y(be,A,f(oe)):S&&(y(be,S,f(Q)),$.add(Q));const j=typeof T=="object"&&T!=null;let X=!1,J=0,ee=0,fe=0,de=0,ae=0;const Oe=r.advancer(K,(P,G)=>s(G)?de-P-1:P-de,(P,G)=>{s(G)&&de++}),V=r.advancer(M,(P,G)=>_(G)?J-P-1:P-J,(P,G)=>{_(G)&&J++});if(r.eachChildOf(re,te,(P,G,he)=>{let we,xe,Ke=P,Me=P,Ze=P;if(typeof P=="number"){let ve=P+fe;xe=Oe(ve),Me=ve+de;let ue=P+ee;we=V(ue),s(l(xe))&&(we=null),Ke=ue+J,Ze=P+ae,o(Ke>=0,"p1PickKey is negative"),o(Me>=0,"p2DropKey is negative");const je=s(l(G)),Be=_(l(he));(je||Be&&!We)&&ae--,je&&ee--,Be&&fe--}else we=V(P),xe=Oe(P);_e.descend(Ke),be.descend(Me);const Je=j&&!s(l(G))?T[Ze]:void 0,Ne=g(we,G,he,xe,Je,We,be,_e);var $e,k,ie;j&&!We?Je!==Ne&&(X||(T=Array.isArray(T)?T.slice():Object.assign({},T),X=!0),$e=T,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=T;else if(!Re&&!Ae&&Ee==null)return T}(D,D.clone(),O,O.clone(),void 0,!1,C,x),C.reset(),C.mergeTree(x.get()),C.reset(),C.get(),R.map(g=>g.get()),N.map(g=>g.get()),D.traverse(C,(g,M)=>{const re=g.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 g.r!==void 0&&M.write("r",g.r)}),C.reset(),C.get(),O.traverse(C,(g,M)=>{const re=g.d;if(re!=null){const K=I[re];K!=null&&M.write("d",K);const se=N[re];se&&M.mergeTree(se.get())}else g.i!==void 0&&M.write("i",g.i);const te=me(g);te&&!$.has(g)&&y(M,te,f(g))}),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,p,v){const b=N.getComponent();let I,$=!1;if(b){b.p!=null&&(p.write("d",b.p),O[b.p]=N.clone()),b.r!==void 0&&p.write("i",b.r),b.d!=null&&(p.write("p",b.d),v=void 0),b.i!==void 0&&(v=I=b.i);const g=me(b);g&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=g.apply(v,f(b)),$=!0))}let x=0;for(const g of N){p.descend(g);const M=typeof g=="number"?g-x:g,re=Y(v,M);s(N.getComponent())&&x++;const te=R(N,p,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}p.ascend()}if(I===void 0)return $?v:void 0;p.write("r",v)}(d,m,void 0),D&&(m.reset(),function R(N,p,v){const b=p.getComponent();if(b){const g=b.d;if(g!=null&&(N=O[g],v=C[g]=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,(g,M)=>_(M)?I-g-1:g-I,(g,M)=>{_(M)&&I++});for(const g of p)if(typeof g=="number"){const M=g-$,re=x(M),te=M+I;v.descend(te),R(re,p,v),s(p.getComponent())&&$++,v.ascend()}else v.descend(g),R(x(g),p,v),v.ascend();x.end()}(d.clone(),d,m),C.length&&(m.reset(),d.traverse(m,(R,N)=>{const p=R.p;if(p!=null){const v=C[p];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,p=>{var v;return p.r!==void 0||((v=me(p))===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=(p,v,b)=>{const I=p.getComponent();let $=!1;if(I){I.d!=null&&v.write("d",I.d),I.i!==void 0&&v.write("i",I.i);const g=I.p;if(g!=null&&(C[g]=p.clone(),o(b!==void 0,"Operation picks up at an invalid key"),R[g]=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 g of p){v.descend(g);const M=typeof g=="number"?g-x:g,re=Y(b,M),te=N(p,v,re);re!==te&&($||($=!0,b=W(b)),te===void 0?(b=c(b,M),typeof g=="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 p(v,b,I,$,x){const g=b.getComponent();if(g){g.i!==void 0?($=g.i,x=!0):g.d!=null&&($=R[g.d],v=C[g.d],x=!1,g.d);let K=me(g);if(K&&K.makeInvertible){const se=f(g);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),p(Re,b,I,_e,x),s(b.getComponent())&&re++,I.ascend()}else{const se=Y($,K);I.descend(K),p(te(K),b,I,se,x),I.ascend()}te.end()}(m.clone(),m,D,d,!1)),D.get()}function $t(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=[],p=[],v=[],b=[],I=[],$=[],x=[],g=[],M=[],re=[],te=[],K=[],se=[];let Re=0;const be=r.readCursor(i),_e=r.readCursor(d),oe=r.writeCursor();if(function Q(T,B=null,A){const S=l(B);S&&(S.r!==void 0?A=B.clone():S.p!=null&&(A=null,b[S.p]=T.clone()));const j=T.getComponent();let X;j&&(X=j.p)!=null&&(v[X]=B?B.clone():null,N[X]=T.clone(),A&&(g[X]=!0,x[X]=A),S&&S.p!=null&&(K[X]=S.p));const J=r.advancer(B);for(const ee of T)Q(T,J(ee),A);J.end()}(_e,be,null),function Q(T,B,A,S,j){const X=A.getComponent();let J,ee=!1;X&&((J=X.d)!=null?(p[J]=A.clone(),S!=null&&(se[S]==null&&(se[S]=[]),se[S].push(J)),T=v[J]||null,B=N[J]||null,g[J]?(j&&(M[J]=!0),j=x[J]||null):!j||D!==1&&K[J]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.moveOp(B.getPath(),A.getPath())}),ee=!0):X.i!==void 0&&(T=B=null,ee=!0,j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.insertOp(A.getPath(),X.i)})));const fe=l(T);fe&&(fe.r!==void 0?j=T.clone():fe.p!=null&&(fe.p,S=fe.p,j=null));const de=me(X);de&&j&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.removeOp(j.getPath()),op2:a.editOp(A.getPath(),de,f(X),!0)});let ae=0,Oe=0;const V=r.advancer(B,(G,he)=>_(he)?ae-G-1:G-ae,(G,he)=>{_(he)&&ae++}),P=r.advancer(T);for(const G of A)if(typeof G=="number"){const he=G-Oe,we=V(he);Oe+=+Q(P(he+ae),we,A,S,j)}else{const he=V(G);Q(P(G),he,A,S,j)}return V.end(),P.end(),ee}(be,_e,_e.clone(),null,null),p.map(Q=>Q&&Q.get()),O)return{ok:!1,conflict:O};M.map(Q=>!!Q);const Pe=[];let Ae=null;(function Q(T,B,A,S,j){let X=!1;const J=l(B);if(_(J)){const V=J.p;V!=null?(A=p[V],S=re[V]=r.writeCursor(),X=!0,j=null):(A=null,j=B.clone())}else s(l(A))&&(A=null);const ee=T.getComponent();if(ee){const V=ee.p;V!=null?(j&&($[V]=j),Pe[V]=j||D===1&&X?null:S.getComponent(),C[V]=T.clone(),A&&(I[V]=A.clone())):ee.r!==void 0&&(j||S.write("r",!0),(j||X)&&(Ae==null&&(Ae=new Set),Ae.add(ee)))}let fe=0,de=0;const ae=r.advancer(B,void 0,(V,P)=>{_(P)&&fe++}),Oe=r.advancer(A,(V,P)=>s(P)?~(V-de):V-de,(V,P)=>{s(P)&&de++});if(T)for(const V of T)if(typeof V=="string"){const P=ae(V),G=Oe(V);S.descend(V),Q(T,P,G,S,j),S.ascend()}else{const P=ae(V),G=V-fe,he=_(l(P))?null:Oe(G),we=G+de;o(we>=0),S.descend(we),Q(T,P,he,S,j),S.ascend()}ae.end(),Oe.end()})(be,_e,_e.clone(),oe,null),oe.reset();let qe=[];if(function Q(T,B,A,S,j,X){o(B);const J=B.getComponent();let ee=l(S),fe=!1;const de=(k,ie,ve)=>k?a.moveOp(k.getPath(),ie.getPath()):a.insertOp(ie.getPath(),ve.i);if(s(J)){const k=J.d;k!=null&&(R[k]=B.clone());const ie=k!=null?Pe[k]:null;let ve=!1;if(J.i!==void 0||k!=null&&ie){let ue;ee&&(ee.i!==void 0||(ue=ee.d)!=null&&!g[ue])&&(ve=ue!=null?k!=null&&k===K[ue]:n.default(ee.i,J.i),ve||ue!=null&&D!==1&&K[ue]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:de(k!=null?C[k]:null,B,J),op2:de(ue!=null?N[ue]:null,S,ee)})),ve||(X?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:de(k!=null?C[k]:null,B,J),op2:a.removeOp(X.getPath())}):(k!=null?(qe[Re]=k,j.write("d",ie.p=Re++)):j.write("i",t.default(J.i)),fe=!0))}else if(k!=null&&!ie){const ue=$[k];ue&&(X=ue.clone())}k!=null?(T=C[k],A=b[k],S=I[k]):J.i!==void 0&&(T=A=null,ve||(S=null))}else _(l(T))&&(T=A=S=null);const ae=l(T),Oe=l(A);if(_(Oe)){const k=Oe.p;Oe.r!==void 0&&(!ae||ae.r===void 0)||g[k]?(S=null,X=A.clone()):k!=null&&(S=p[k],D!==1&&K[k]!=null||((j=te[k])||(j=te[k]=r.writeCursor()),j.reset(),X=null))}else!s(J)&&s(ee)&&(S=null);ee=S!=null?S.getComponent():null;const V=me(J);if(V){const k=f(J);if(X)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:a.editOp(B.getPath(),V,k,!0),op2:a.removeOp(X.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 P=0,G=0,he=0,we=0,xe=0,Ke=0,Me=T!=null&&T.descendFirst(),Ze=Me;const Je=r.advancer(A,void 0,(k,ie)=>{_(ie)&&he++});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=T.getKey())=="number";){Ge+=P;const Ue=T.getComponent(),Ye=_(Ue);if(Ge>ue||Ge===ue&&(!Ye||D===0&&ve))break;if(Ye){P--;const He=Ue.p;K.includes(He),Ue.d,l(te[Ue.d]),_(l(te[Ue.d])),(Ue.r===void 0||Ae&&Ae.has(Ue))&&(He==null||!Pe[He]||D!==1&&K.includes(He))||xe--}Me=T.nextSibling()}ie=Me&&Ge===ue?T:null}const je=ue-P;let Be=Je(je);const ot=je-he;let et=null;{let Ge,Ue;for(;Ne&&typeof(Ge=S.getKey())=="number";){Ue=Ge-we;const Ye=S.getComponent(),He=s(Ye);if(Ue>ot)break;if(Ue===ot){if(!He){et=S;break}{if(D===0&&ve){et=S;break}const Fe=Be&&_(Be.getComponent());if(D===0&&Fe)break}}if(He){const Fe=Ye.d;K[Fe],Ye.i===void 0&&(g[Fe]||K[Fe]!=null&&D!==1)?(g[Fe]||K[Fe]!=null&&D===0)&&(we++,Ke--):we++}Ne=S.nextSibling()}}const gt=ot+we+xe+Ke;o(gt>=0,"trying to descend to a negative index"),j.descend(gt),ve&&(ie=Be=et=null,G++),Q(ie,B,Be,et,j,X)&&Ke++,j.ascend()}else{let ie;for(;Me&&(ie=T.getKey(),typeof ie!="string"||!(ie>k||ie===k));)Me=T.nextSibling();const ve=Me&&ie===k?T: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,X),j.ascend()}return Je.end(),Ze&&T.ascend(),$e&&S.ascend(),fe}(be,be.clone(),_e,_e.clone(),oe,null),O)return{ok:!1,conflict:O};oe.reset();const Te=(Q,T,B)=>Q.traverse(T,(A,S)=>{A.d!=null&&B(A.d,Q,S)});(g.length||re.length)&&(Te(_e,oe,(Q,T,B)=>{g[Q]&&!M[Q]&&B.write("r",!0),re[Q]&&B.mergeTree(re[Q].get())}),oe.reset());const Ee=[],We=[];if((te.length||g.length)&&!O){const Q=r.readCursor(it(oe.get()));if(Te(Q,null,(T,B)=>{Ee[T]=B.clone()}),te.forEach(T=>{T&&Te(r.readCursor(T.get()),null,(B,A)=>{Ee[B]=A.clone()})}),function T(B,A,S,j,X,J){const ee=l(A);if(ee&&_(ee))if(ee.p!=null){const P=ee.p;Ee[P].getPath(),S=Ee[P],j=We[P]=r.writeCursor()}else ee.r!==void 0&&(S=null);else s(l(S))&&(S=null);const fe=B.getComponent();if(fe){let P;if((P=fe.d)!=null){const G=te[P];G&&(G.get(),j.mergeTree(G.get()),S=r.readCursor(G.get()))}}let de=0,ae=0;const Oe=r.advancer(A,void 0,(P,G)=>{_(G)&&de--}),V=r.advancer(S,(P,G)=>s(G)?-(P-ae)-1:P-ae,(P,G)=>{s(G)&&ae++});for(const P of B)if(typeof P=="number"){const G=Oe(P),he=P+de,we=V(he),xe=he+ae;j.descend(xe),T(B,G,we,j),j.ascend()}else j.descend(P),T(B,Oe(P),V(P),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 T=We.map(A=>A?A.get():null),B=r.readCursor(it(oe.get()));if(Te(B,oe,(A,S,j)=>{const X=T[A];X&&(j.mergeTree(X),T[A]=null)}),T.find(A=>A)){const A=r.writeCursor(),S=r.writeCursor();let j=0,X=0;T.forEach(J=>{J!=null&&Te(r.readCursor(J),null,ee=>{const fe=qe[ee];A.writeMove(C[fe].getPath(),R[fe].getPath(),j++);const de=se[fe];de&&de.forEach(ae=>{g[ae]||D!==1&&K[ae]!=null||S.writeMove(N[ae].getPath(),p[ae].getPath(),X++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:S.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:oe.get()}}const ht=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function Rt(i,d,m){const D=st(i,d,m);if(D.ok)return D.result;ht(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()},Wt=(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 pt(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)||ht(R);const[N,p]=Wt(R,D);d=ne(q(d),N),m=ne(q(m),p),O=ne(O,p)}}}}(Qe)),Qe}var Et;function Xt(){return Et||(Et=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(zt(),a);var t=At();Object.defineProperty(a,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(a,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var r=Mt();Object.defineProperty(a,"ConflictType",{enumerable:!0,get:function(){return r.ConflictType}})}(Ve)),Ve}var F=Xt();class jt{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){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?pe.sortRules:pe.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 Ut extends jt{}function Jt({unitId:a,subUnitId:e,drawingId:n},t){return typeof t=="number"?`${a}#-#${e}#-#${n}#-#${t}`:`${a}#-#${e}#-#${n}`}const Yt=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)}}),Zt="drawing.config",Dt={},kt=pe.createIdentifier("univer.drawing-manager.service");class Nt{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===pe.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,n,t){n===pe.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(!Tt.includes(e.type)){t(new Error(pe.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>Pt){t(new Error(pe.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(pe.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const l=pe.Tools.generateRandomId(6);n({imageId:l,imageSourceType:pe.ImageSourceType.BASE64,source:o,base64Cache:o,status:pe.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var Qt=Object.defineProperty,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=(t?o(e,n,r):o(r))||r);return t&&r&&Qt(e,n,r),r},St=(a,e)=>(n,t)=>e(n,t,a);const nn="UNIVER_DRAWING_PLUGIN";var ct;exports.UniverDrawingPlugin=(ct=class extends pe.Plugin{constructor(e=Dt,n,t){super(),this._config=e,this._injector=n,this._configService=t;const{...r}=pe.merge({},Dt,this._config);this._configService.setConfig(Zt,r)}onStarting(){this._initDependencies()}_initDependencies(){var t;const e=[[pe.IImageIoService,{useClass:Nt}],[kt,{useClass:Ut}]];pe.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(r=>this._injector.add(r))}},H(ct,"pluginName",nn),ct);exports.UniverDrawingPlugin=tn([St(1,pe.Inject(pe.Injector)),St(2,pe.IConfigService)],exports.UniverDrawingPlugin);Object.defineProperty(exports,"IImageIoService",{enumerable:!0,get:()=>pe.IImageIoService});Object.defineProperty(exports,"ImageSourceType",{enumerable:!0,get:()=>pe.ImageSourceType});Object.defineProperty(exports,"ImageUploadStatusType",{enumerable:!0,get:()=>pe.ImageUploadStatusType});exports.DRAWING_IMAGE_ALLOW_IMAGE_LIST=Tt;exports.DRAWING_IMAGE_ALLOW_SIZE=Pt;exports.DRAWING_IMAGE_COUNT_LIMIT=qt;exports.DRAWING_IMAGE_HEIGHT_LIMIT=Lt;exports.DRAWING_IMAGE_WIDTH_LIMIT=Gt;exports.DrawingManagerService=Ut;exports.IDrawingManagerService=kt;exports.ImageIoService=Nt;exports.UnitDrawingService=jt;exports.getDrawingShapeKeyByDrawingSearch=Jt;exports.getImageSize=Yt;
package/lib/es/index.js CHANGED
@@ -1,12 +1,12 @@
1
- var jt = Object.defineProperty;
2
- var $t = (a, e, n) => e in a ? jt(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
3
- var F = (a, e, n) => $t(a, typeof e != "symbol" ? e + "" : e, n);
4
- import { sortRules as Nt, sortRulesByDesc as Rt, createIdentifier as xt, ImageSourceType as at, ImageUploadStatusType as et, Tools as Bt, Inject as Wt, Injector as Gt, Plugin as Lt, mergeOverrideWithDependencies as qt, IConfigService as Kt, IImageIoService as Ft } from "@univerjs/core";
5
- import { IImageIoService as wn, ImageSourceType as bn, ImageUploadStatusType as Cn } from "@univerjs/core";
1
+ var $t = Object.defineProperty;
2
+ var Nt = (a, e, n) => e in a ? $t(a, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : a[e] = n;
3
+ var F = (a, e, n) => Nt(a, typeof e != "symbol" ? e + "" : e, n);
4
+ import { sortRules as Rt, sortRulesByDesc as xt, createIdentifier as Bt, ImageSourceType as at, ImageUploadStatusType as et, Tools as Wt, Inject as Gt, Injector as Lt, Plugin as qt, merge as Kt, mergeOverrideWithDependencies as Ft, IConfigService as Vt, IImageIoService as Ht } from "@univerjs/core";
5
+ import { IImageIoService as bn, ImageSourceType as Cn, ImageUploadStatusType as In } from "@univerjs/core";
6
6
  import { Subject as be } from "rxjs";
7
- const pn = 500, gn = 500, yn = 10, Vt = 5 * 1024 * 1024, Ht = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
7
+ const gn = 500, yn = 500, _n = 10, zt = 5 * 1024 * 1024, Xt = ["image/png", "image/jpeg", "image/jpg", "image/gif", "image/bmp"];
8
8
  var Ve = {}, Ze = {}, tt = {}, _t;
9
- function zt() {
9
+ function Jt() {
10
10
  if (_t) return tt;
11
11
  _t = 1, Object.defineProperty(tt, "__esModule", { value: !0 });
12
12
  function a(t, r) {
@@ -34,7 +34,7 @@ function zt() {
34
34
  return tt.default = n, tt;
35
35
  }
36
36
  var nt = {}, vt;
37
- function Xt() {
37
+ function Yt() {
38
38
  if (vt) return nt;
39
39
  vt = 1, Object.defineProperty(nt, "__esModule", { value: !0 });
40
40
  function a(e) {
@@ -53,7 +53,7 @@ function Xt() {
53
53
  return nt.default = a, nt;
54
54
  }
55
55
  var lt = {}, mt;
56
- function At() {
56
+ function Mt() {
57
57
  return mt || (mt = 1, function(a) {
58
58
  Object.defineProperty(a, "__esModule", { value: !0 }), a.eachChildOf = a.advancer = a.readCursor = a.writeCursor = a.WriteCursor = a.ReadCursor = a.isValidPathItem = void 0;
59
59
  function e(_, s) {
@@ -282,7 +282,7 @@ function At() {
282
282
  }(lt)), lt;
283
283
  }
284
284
  var ut = {}, Ot;
285
- function Mt() {
285
+ function Ut() {
286
286
  return Ot || (Ot = 1, function(a) {
287
287
  Object.defineProperty(a, "__esModule", { value: !0 }), a.ConflictType = void 0, function(e) {
288
288
  e[e.RM_UNEXPECTED_CONTENT = 1] = "RM_UNEXPECTED_CONTENT", e[e.DROP_COLLISION = 2] = "DROP_COLLISION", e[e.BLACKHOLE = 3] = "BLACKHOLE";
@@ -588,7 +588,7 @@ function ft() {
588
588
  }(ct)), ct;
589
589
  }
590
590
  var rt = {}, Ct;
591
- function Jt() {
591
+ function Zt() {
592
592
  if (Ct) return rt;
593
593
  Ct = 1, Object.defineProperty(rt, "__esModule", { value: !0 });
594
594
  const a = ft(), e = ht();
@@ -632,7 +632,7 @@ function Jt() {
632
632
  return rt.default = n, n.provides = { text: !0 }, rt;
633
633
  }
634
634
  var It;
635
- function Yt() {
635
+ function Qt() {
636
636
  return It || (It = 1, function(a) {
637
637
  var e = Se && Se.__createBinding || (Object.create ? function(c, h, S, Y) {
638
638
  Y === void 0 && (Y = S), Object.defineProperty(c, Y, { enumerable: !0, get: function() {
@@ -653,7 +653,7 @@ function Yt() {
653
653
  return c && c.__esModule ? c : { default: c };
654
654
  };
655
655
  Object.defineProperty(a, "__esModule", { value: !0 }), a.type = a.remove = a.insert = void 0;
656
- const u = ht(), o = t(ft()), l = r(Jt()), E = {
656
+ const u = ht(), o = t(ft()), l = r(Zt()), E = {
657
657
  create(c) {
658
658
  return c;
659
659
  },
@@ -692,7 +692,7 @@ function Yt() {
692
692
  }(Se)), Se;
693
693
  }
694
694
  var Et;
695
- function Zt() {
695
+ function en() {
696
696
  return Et || (Et = 1, function(a) {
697
697
  var e = Ze && Ze.__importDefault || function(i) {
698
698
  return i && i.__esModule ? i : {
@@ -702,7 +702,7 @@ function Zt() {
702
702
  Object.defineProperty(a, "__esModule", {
703
703
  value: !0
704
704
  }), a.editOp = a.replaceOp = a.insertOp = a.moveOp = a.removeOp = a.type = void 0;
705
- const n = e(zt()), t = e(Xt()), r = At(), u = Mt();
705
+ const n = e(Jt()), t = e(Yt()), r = Mt(), u = Ut();
706
706
  function o(i, d) {
707
707
  if (!i) throw new Error(d);
708
708
  }
@@ -722,10 +722,10 @@ function Zt() {
722
722
  transformPosition: ce,
723
723
  compose: ne,
724
724
  tryTransform: st,
725
- transform: kt,
725
+ transform: St,
726
726
  makeInvertible: De,
727
727
  invert: le,
728
- invertWithDoc: Ut,
728
+ invertWithDoc: kt,
729
729
  RM_UNEXPECTED_CONTENT: u.ConflictType.RM_UNEXPECTED_CONTENT,
730
730
  DROP_COLLISION: u.ConflictType.DROP_COLLISION,
731
731
  BLACKHOLE: u.ConflictType.BLACKHOLE,
@@ -758,7 +758,7 @@ function Zt() {
758
758
  if (d) return d;
759
759
  throw Error("Missing type: " + i);
760
760
  };
761
- Z(Yt());
761
+ Z(Qt());
762
762
  const Ge = (i, d) => i + d;
763
763
  Z({
764
764
  name: "number",
@@ -1109,7 +1109,7 @@ function Zt() {
1109
1109
  te.end();
1110
1110
  }(m.clone(), m, D, d, !1)), D.get();
1111
1111
  }
1112
- function Ut(i, d) {
1112
+ function kt(i, d) {
1113
1113
  return le(De(i, d));
1114
1114
  }
1115
1115
  const it = (i) => {
@@ -1414,7 +1414,7 @@ function Zt() {
1414
1414
  const d = new Error("Transform detected write conflict");
1415
1415
  throw d.conflict = i, d.type = d.name = "writeConflict", d;
1416
1416
  };
1417
- function kt(i, d, m) {
1417
+ function St(i, d, m) {
1418
1418
  const D = st(i, d, m);
1419
1419
  if (D.ok) return D.result;
1420
1420
  pt(D.conflict);
@@ -1424,7 +1424,7 @@ function Zt() {
1424
1424
  return r.readCursor(i).traverse(d, (m, D) => {
1425
1425
  (s(m) || ve(m)) && D.write("r", !0);
1426
1426
  }), d.get();
1427
- }, St = (i, d) => {
1427
+ }, jt = (i, d) => {
1428
1428
  const { type: m, op1: D, op2: O } = i;
1429
1429
  switch (m) {
1430
1430
  case u.ConflictType.DROP_COLLISION:
@@ -1448,7 +1448,7 @@ function Zt() {
1448
1448
  {
1449
1449
  const { conflict: R } = I;
1450
1450
  i(R) || pt(R);
1451
- const [$, p] = St(R, D);
1451
+ const [$, p] = jt(R, D);
1452
1452
  d = ne(q(d), $), m = ne(q(m), p), O = ne(O, p);
1453
1453
  }
1454
1454
  }
@@ -1456,7 +1456,7 @@ function Zt() {
1456
1456
  }(Ze)), Ze;
1457
1457
  }
1458
1458
  var Dt;
1459
- function Qt() {
1459
+ function tn() {
1460
1460
  return Dt || (Dt = 1, function(a) {
1461
1461
  var e = Ve && Ve.__createBinding || (Object.create ? function(u, o, l, E) {
1462
1462
  E === void 0 && (E = l), Object.defineProperty(u, E, { enumerable: !0, get: function() {
@@ -1467,21 +1467,21 @@ function Qt() {
1467
1467
  }), n = Ve && Ve.__exportStar || function(u, o) {
1468
1468
  for (var l in u) l !== "default" && !o.hasOwnProperty(l) && e(o, u, l);
1469
1469
  };
1470
- Object.defineProperty(a, "__esModule", { value: !0 }), n(Zt(), a);
1471
- var t = At();
1470
+ Object.defineProperty(a, "__esModule", { value: !0 }), n(en(), a);
1471
+ var t = Mt();
1472
1472
  Object.defineProperty(a, "ReadCursor", { enumerable: !0, get: function() {
1473
1473
  return t.ReadCursor;
1474
1474
  } }), Object.defineProperty(a, "WriteCursor", { enumerable: !0, get: function() {
1475
1475
  return t.WriteCursor;
1476
1476
  } });
1477
- var r = Mt();
1477
+ var r = Ut();
1478
1478
  Object.defineProperty(a, "ConflictType", { enumerable: !0, get: function() {
1479
1479
  return r.ConflictType;
1480
1480
  } });
1481
1481
  }(Ve)), Ve;
1482
1482
  }
1483
- var V = Qt();
1484
- class en {
1483
+ var V = tn();
1484
+ class nn {
1485
1485
  constructor() {
1486
1486
  F(this, "drawingManagerData", {});
1487
1487
  F(this, "_oldDrawingManagerData", {});
@@ -1802,7 +1802,7 @@ class en {
1802
1802
  return t.map((u) => {
1803
1803
  const o = this._hasDrawingOrder({ unitId: e, subUnitId: n, drawingId: u });
1804
1804
  return { drawingId: u, zIndex: o };
1805
- }).sort(r === !1 ? Nt : Rt);
1805
+ }).sort(r === !1 ? Rt : xt);
1806
1806
  }
1807
1807
  _hasDrawingOrder(e) {
1808
1808
  if (e == null)
@@ -1890,12 +1890,12 @@ class en {
1890
1890
  this._editable = e;
1891
1891
  }
1892
1892
  }
1893
- class tn extends en {
1893
+ class rn extends nn {
1894
1894
  }
1895
- function _n({ unitId: a, subUnitId: e, drawingId: n }, t) {
1895
+ function vn({ unitId: a, subUnitId: e, drawingId: n }, t) {
1896
1896
  return typeof t == "number" ? `${a}#-#${e}#-#${n}#-#${t}` : `${a}#-#${e}#-#${n}`;
1897
1897
  }
1898
- const vn = async (a) => new Promise((e, n) => {
1898
+ const mn = async (a) => new Promise((e, n) => {
1899
1899
  const t = new Image();
1900
1900
  t.src = a, t.onload = () => {
1901
1901
  e({
@@ -1906,8 +1906,8 @@ const vn = async (a) => new Promise((e, n) => {
1906
1906
  }, t.onerror = (r) => {
1907
1907
  n(r);
1908
1908
  };
1909
- }), nn = "drawing.config", rn = {}, sn = xt("univer.drawing-manager.service");
1910
- class on {
1909
+ }), sn = "drawing.config", Pt = {}, on = Bt("univer.drawing-manager.service");
1910
+ class an {
1911
1911
  constructor() {
1912
1912
  F(this, "_waitCount", 0);
1913
1913
  F(this, "_change$", new be());
@@ -1932,11 +1932,11 @@ class on {
1932
1932
  }
1933
1933
  async saveImage(e) {
1934
1934
  return new Promise((n, t) => {
1935
- if (!Ht.includes(e.type)) {
1935
+ if (!Xt.includes(e.type)) {
1936
1936
  t(new Error(et.ERROR_IMAGE_TYPE)), this._decreaseWaiting();
1937
1937
  return;
1938
1938
  }
1939
- if (e.size > Vt) {
1939
+ if (e.size > zt) {
1940
1940
  t(new Error(et.ERROR_EXCEED_SIZE)), this._decreaseWaiting();
1941
1941
  return;
1942
1942
  }
@@ -1948,7 +1948,7 @@ class on {
1948
1948
  t(new Error(et.ERROR_IMAGE)), this._decreaseWaiting();
1949
1949
  return;
1950
1950
  }
1951
- const l = Bt.generateRandomId(6);
1951
+ const l = Wt.generateRandomId(6);
1952
1952
  n({
1953
1953
  imageId: l,
1954
1954
  imageSourceType: at.BASE64,
@@ -1963,48 +1963,52 @@ class on {
1963
1963
  this._waitCount -= 1, this._change$.next(this._waitCount);
1964
1964
  }
1965
1965
  }
1966
- var an = Object.defineProperty, ln = Object.getOwnPropertyDescriptor, un = (a, e, n, t) => {
1967
- for (var r = t > 1 ? void 0 : t ? ln(e, n) : e, u = a.length - 1, o; u >= 0; u--)
1966
+ var ln = Object.defineProperty, un = Object.getOwnPropertyDescriptor, cn = (a, e, n, t) => {
1967
+ for (var r = t > 1 ? void 0 : t ? un(e, n) : e, u = a.length - 1, o; u >= 0; u--)
1968
1968
  (o = a[u]) && (r = (t ? o(e, n, r) : o(r)) || r);
1969
- return t && r && an(e, n, r), r;
1970
- }, Pt = (a, e) => (n, t) => e(n, t, a);
1971
- const cn = "UNIVER_DRAWING_PLUGIN";
1969
+ return t && r && ln(e, n, r), r;
1970
+ }, Tt = (a, e) => (n, t) => e(n, t, a);
1971
+ const dn = "UNIVER_DRAWING_PLUGIN";
1972
1972
  var dt;
1973
- let Tt = (dt = class extends Lt {
1974
- constructor(a = rn, e, n) {
1973
+ let At = (dt = class extends qt {
1974
+ constructor(a = Pt, e, n) {
1975
1975
  super(), this._config = a, this._injector = e, this._configService = n;
1976
- const { ...t } = this._config;
1977
- this._configService.setConfig(nn, t);
1976
+ const { ...t } = Kt(
1977
+ {},
1978
+ Pt,
1979
+ this._config
1980
+ );
1981
+ this._configService.setConfig(sn, t);
1978
1982
  }
1979
1983
  onStarting() {
1980
1984
  this._initDependencies();
1981
1985
  }
1982
1986
  _initDependencies() {
1983
1987
  var n;
1984
- qt([
1985
- [Ft, { useClass: on }],
1986
- [sn, { useClass: tn }]
1988
+ Ft([
1989
+ [Ht, { useClass: an }],
1990
+ [on, { useClass: rn }]
1987
1991
  ], (n = this._config) == null ? void 0 : n.override).forEach((t) => this._injector.add(t));
1988
1992
  }
1989
- }, F(dt, "pluginName", cn), dt);
1990
- Tt = un([
1991
- Pt(1, Wt(Gt)),
1992
- Pt(2, Kt)
1993
- ], Tt);
1993
+ }, F(dt, "pluginName", dn), dt);
1994
+ At = cn([
1995
+ Tt(1, Gt(Lt)),
1996
+ Tt(2, Vt)
1997
+ ], At);
1994
1998
  export {
1995
- Ht as DRAWING_IMAGE_ALLOW_IMAGE_LIST,
1996
- Vt as DRAWING_IMAGE_ALLOW_SIZE,
1997
- yn as DRAWING_IMAGE_COUNT_LIMIT,
1998
- gn as DRAWING_IMAGE_HEIGHT_LIMIT,
1999
- pn as DRAWING_IMAGE_WIDTH_LIMIT,
2000
- tn as DrawingManagerService,
2001
- sn as IDrawingManagerService,
2002
- wn as IImageIoService,
2003
- on as ImageIoService,
2004
- bn as ImageSourceType,
2005
- Cn as ImageUploadStatusType,
2006
- en as UnitDrawingService,
2007
- Tt as UniverDrawingPlugin,
2008
- _n as getDrawingShapeKeyByDrawingSearch,
2009
- vn as getImageSize
1999
+ Xt as DRAWING_IMAGE_ALLOW_IMAGE_LIST,
2000
+ zt as DRAWING_IMAGE_ALLOW_SIZE,
2001
+ _n as DRAWING_IMAGE_COUNT_LIMIT,
2002
+ yn as DRAWING_IMAGE_HEIGHT_LIMIT,
2003
+ gn as DRAWING_IMAGE_WIDTH_LIMIT,
2004
+ rn as DrawingManagerService,
2005
+ on as IDrawingManagerService,
2006
+ bn as IImageIoService,
2007
+ an as ImageIoService,
2008
+ Cn as ImageSourceType,
2009
+ In as ImageUploadStatusType,
2010
+ nn as UnitDrawingService,
2011
+ At as UniverDrawingPlugin,
2012
+ vn as getDrawingShapeKeyByDrawingSearch,
2013
+ mn as getImageSize
2010
2014
  };
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(ne,ee){typeof exports=="object"&&typeof module<"u"?ee(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],ee):(ne=typeof globalThis<"u"?globalThis:ne||self,ee(ne.UniverDrawing={},ne.UniverCore,ne.rxjs))})(this,function(ne,ee,ge){"use strict";var Zt=Object.defineProperty;var Qt=(ne,ee,ge)=>ee in ne?Zt(ne,ee,{enumerable:!0,configurable:!0,writable:!0,value:ge}):ne[ee]=ge;var K=(ne,ee,ge)=>Qt(ne,typeof ee!="symbol"?ee+"":ee,ge);var ct;const gt=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"];var xe={},Qe={},tt={},pt;function Nt(){if(pt)return tt;pt=1,Object.defineProperty(tt,"__esModule",{value:!0});function l(t,n){if(Array.isArray(n))return!1;for(let u in t)if(!r(t[u],n[u]))return!1;for(let u in n)if(t[u]===void 0)return!1;return!0}function e(t,n){if(!Array.isArray(n)||t.length!==n.length)return!1;for(let u=0;u<t.length;u++)if(!r(t[u],n[u]))return!1;return!0}function r(t,n){return t===n?!0:t===null||n===null||typeof t!="object"||typeof n!="object"?!1:Array.isArray(t)?e(t,n):l(t,n)}return tt.default=r,tt}var nt={},yt;function $t(){if(yt)return nt;yt=1,Object.defineProperty(nt,"__esModule",{value:!0});function l(e){if(e===null)return null;if(Array.isArray(e))return e.map(l);if(typeof e=="object"){const r={};for(let t in e)r[t]=l(e[t]);return r}else return e}return nt.default=l,nt}var st={},_t;function vt(){return _t||(_t=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.eachChildOf=l.advancer=l.readCursor=l.writeCursor=l.WriteCursor=l.ReadCursor=l.isValidPathItem=void 0;function e(_,s){if(!_)throw new Error(s)}const r=_=>_!=null&&typeof _=="object"&&!Array.isArray(_),t=(_,s)=>typeof _==typeof s?_>s:typeof _=="string"&&typeof s=="number";function n(_,s){for(let c in _){const h=c;s.write(h,_[h])}}l.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--,r(this.container[this.idx])&&this.idx--)}getPath(){const s=[];let c=this.container,h=this.parents.length-1,j=this.idx;for(;j>=0;)s.unshift(c[j]),j===0?(j=this.indexes[h*2],c=this.parents[h--]):j-=r(c[j-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&&r(s=this.container[this.idx+1])?s:null}descendFirst(){let s=this.idx+1;if(!this.container||s>=this.container.length||r(this.container[s])&&s+1>=this.container.length)return!1;r(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,j){this.container=s,this.idx=c,this.parents=h.slice(),this.indexes=j.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 j of this)s&&s.descend(j),this.traverse(s,c),s&&s.ascend()}eachPick(s,c){this.traverse(s,(h,j)=>{h.p!=null&&c(h.p,j)})}eachDrop(s,c){this.traverse(s,(h,j)=>{h.d!=null&&c(h.d,j)})}}l.ReadCursor=o;class a 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&&r(this.container[h])&&h++,e(h===this.container.length||!r(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 j=this.container.splice(h,this.container.length-h);this.container.push(j),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 j=[c];this.container.splice(h,0,j),this.container=j}}}this.pendingDescent.length=0}reset(){this.lcIdx=-1}getComponent(){this.flushDescent();const s=this.idx+1;if(s<this.container.length&&r(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(!l.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=n){if(s===null)return;if(e(Array.isArray(s)),s===this._op)throw Error("Cannot merge into my own tree");const h=this.lcIdx,j=this.parents.length;let Y=0;for(let _e=0;_e<s.length;_e++){const Z=s[_e];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===j?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}}l.WriteCursor=a,l.writeCursor=()=>new a,l.readCursor=_=>new o(_);function E(_,s,c){let h,j;j=h=_?_.descendFirst():!1;function Y(_e){let Z;for(;j;){const Ee=Z=_.getKey();if(_e!=null){let Ke=!1;if(s&&typeof Ee=="number"&&(Z=s(Ee,_.getComponent()),Z<0&&(Z=~Z,Ke=!0)),t(Z,_e))return null;if(Z===_e&&!Ke)return _}c&&typeof Z=="number"&&c(Z,_.getComponent()),j=_.nextSibling()}return null}return Y.end=()=>{h&&_.ascend()},Y}l.advancer=E;function W(_,s,c){let h,j,Y,_e;for(h=j=_&&_.descendFirst(),Y=_e=s&&s.descendFirst();h||Y;){let Z=h?_.getKey():null,Ee=Y?s.getKey():null;Z!==null&&Ee!==null&&(t(Ee,Z)?Ee=null:Z!==Ee&&(Z=null)),c(Z==null?Ee:Z,Z!=null?_:null,Ee!=null?s:null),Z!=null&&h&&(h=_.nextSibling()),Ee!=null&&Y&&(Y=s.nextSibling())}j&&_.ascend(),_e&&s.ascend()}l.eachChildOf=W}(st)),st}var ot={},mt;function Ot(){return mt||(mt=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.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"}(l.ConflictType||(l.ConflictType={}))}(ot)),ot}var Me={},He={},bt;function at(){return bt||(bt=1,Object.defineProperty(He,"__esModule",{value:!0}),He.uniToStrPos=He.strPosToUni=void 0,He.strPosToUni=(l,e=l.length)=>{let r=0,t=0;for(;t<e;t++){const n=l.charCodeAt(t);n>=55296&&n<=57343&&(r++,t++)}if(t!==e)throw Error("Invalid offset - splits unicode bytes");return t-r},He.uniToStrPos=(l,e)=>{let r=0;for(;e>0;e--){const t=l.charCodeAt(r);r+=t>=55296&&t<=57343?2:1}return r}),He}var lt={},wt;function ut(){return wt||(wt=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.uniSlice=l.dlen=l.eachOp=void 0;const e=at(),r=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 q=f[w];switch(typeof q){case"object":if(typeof q.d!="number"&&typeof q.d!="string")throw Error("Delete must be number or string");if(l.dlen(q.d)<=0)throw Error("Deletes must not be empty");break;case"string":if(!(q.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(q>0))throw Error("Skip components must be >0");if(typeof y=="number")throw Error("Adjacent skip components should be combined");break}y=q}if(typeof y=="number")throw Error("Op has a trailing skip")};function t(f,y){let w=0,q=0;for(let z=0;z<f.length;z++){const x=f[z];switch(y(x,w,q),typeof x){case"object":w+=l.dlen(x.d);break;case"string":q+=e.strPosToUni(x);break;case"number":w+=x,q+=x;break}}}l.eachOp=t;function n(f,y){const w=[],q=a(w);return t(f,(z,x,Te)=>{q(y(z,x,Te))}),s(w)}const u=f=>f,o=f=>n(f,u);l.dlen=f=>typeof f=="number"?f:e.strPosToUni(f);const a=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:l.dlen(w.d)+l.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);l.uniSlice=(f,y,w)=>{const q=e.uniToStrPos(f,y),z=w==null?1/0:e.uniToStrPos(f,w);return f.slice(q,z)};const W=(f,y,w)=>typeof f=="number"?w==null?f-y:Math.min(f,w)-y:l.uniSlice(f,y,w),_=f=>{let y=0,w=0;return{take:(x,Te)=>{if(y===f.length)return x===-1?null:x;const fe=f[y];let ie;if(typeof fe=="number")return x===-1||fe-w<=x?(ie=fe-w,++y,w=0,ie):(w+=x,x);if(typeof fe=="string"){if(x===-1||Te==="i"||e.strPosToUni(fe.slice(w))<=x)return ie=fe.slice(w),++y,w=0,ie;{const ce=w+e.uniToStrPos(fe.slice(w),x);return ie=fe.slice(w,ce),w=ce,ie}}else{if(x===-1||Te==="d"||l.dlen(fe.d)-w<=x)return ie={d:W(fe.d,w)},++y,w=0,ie;{let ce=W(fe.d,w,w+x);return w+=x,{d:ce}}}},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'");r(f),r(y);const q=[],z=a(q),{take:x,peek:Te}=_(f);for(let ie=0;ie<y.length;ie++){const ce=y[ie];let ve,Se;switch(typeof ce){case"number":for(ve=ce;ve>0;)Se=x(ve,"i"),z(Se),typeof Se!="string"&&(ve-=E(Se));break;case"string":w==="left"&&typeof Te()=="string"&&z(x(-1)),z(e.strPosToUni(ce));break;case"object":for(ve=l.dlen(ce.d);ve>0;)switch(Se=x(ve,"i"),typeof Se){case"number":ve-=Se;break;case"string":z(Se);break;case"object":ve-=l.dlen(Se.d)}break}}let fe;for(;fe=x(-1);)z(fe);return s(q)}function h(f,y){r(f),r(y);const w=[],q=a(w),{take:z}=_(f);for(let Te=0;Te<y.length;Te++){const fe=y[Te];let ie,ce;switch(typeof fe){case"number":for(ie=fe;ie>0;)ce=z(ie,"d"),q(ce),typeof ce!="object"&&(ie-=E(ce));break;case"string":q(fe);break;case"object":ie=l.dlen(fe.d);let ve=0;for(;ve<ie;)switch(ce=z(ie-ve,"d"),typeof ce){case"number":q({d:W(fe.d,ve,ve+ce)}),ve+=ce;break;case"string":ve+=e.strPosToUni(ce);break;case"object":q(ce)}break}}let x;for(;x=z(-1);)q(x);return s(w)}const j=(f,y)=>{let w=0;for(let q=0;q<y.length&&f>w;q++){const z=y[q];switch(typeof z){case"number":{w+=z;break}case"string":const x=e.strPosToUni(z);w+=x,f+=x;break;case"object":f-=Math.min(l.dlen(z.d),f-w);break}}return f},Y=(f,y)=>typeof f=="number"?j(f,y):f.map(w=>j(w,y));function _e(f,y,w){return n(f,(q,z)=>typeof q=="object"&&typeof q.d=="number"?{d:w.slice(y,z,z+q.d)}:q)}function Z(f){return n(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 Ee(f){return n(f,y=>typeof y=="object"&&typeof y.d=="string"?{d:e.strPosToUni(y.d)}:y)}function Ke(f){let y=!0;return t(f,w=>{typeof w=="object"&&typeof w.d=="number"&&(y=!1)}),y}function be(f){return{name:"text-unicode",uri:"http://sharejs.org/types/text-unicode",trim:s,normalize:o,checkOp:r,create(y=""){if(typeof y!="string")throw Error("Initial data must be a string");return f.create(y)},apply(y,w){r(w);const q=f.builder(y);for(let z=0;z<w.length;z++){const x=w[z];switch(typeof x){case"number":q.skip(x);break;case"string":q.append(x);break;case"object":q.del(l.dlen(x.d));break}}return q.build()},transform:c,compose:h,transformPosition:j,transformSelection:Y,isInvertible:Ke,makeInvertible(y,w){return _e(y,w,f)},stripInvertible:Ee,invert:Z,invertWithDoc(y,w){return Z(_e(y,w,f))},isNoop:y=>y.length===0}}l.default=be}(lt)),lt}var rt={},It;function Rt(){if(It)return rt;It=1,Object.defineProperty(rt,"__esModule",{value:!0});const l=ut(),e=at();function r(t,n){return{get:t,getLength(){return t().length},insert(u,o,a){const E=e.strPosToUni(t(),u);return n([E,o],a)},remove(u,o,a){const E=e.strPosToUni(t(),u);return n([E,{d:o}],a)},_onOp(u){l.eachOp(u,(o,a,E)=>{switch(typeof o){case"string":this.onInsert&&this.onInsert(E,o);break;case"object":const W=l.dlen(o.d);this.onRemove&&this.onRemove(E,W)}})},onInsert:null,onRemove:null}}return rt.default=r,r.provides={text:!0},rt}var Ct;function Wt(){return Ct||(Ct=1,function(l){var e=Me&&Me.__createBinding||(Object.create?function(c,h,j,Y){Y===void 0&&(Y=j),Object.defineProperty(c,Y,{enumerable:!0,get:function(){return h[j]}})}:function(c,h,j,Y){Y===void 0&&(Y=j),c[Y]=h[j]}),r=Me&&Me.__setModuleDefault||(Object.create?function(c,h){Object.defineProperty(c,"default",{enumerable:!0,value:h})}:function(c,h){c.default=h}),t=Me&&Me.__importStar||function(c){if(c&&c.__esModule)return c;var h={};if(c!=null)for(var j in c)Object.hasOwnProperty.call(c,j)&&e(h,c,j);return r(h,c),h},n=Me&&Me.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(l,"__esModule",{value:!0}),l.type=l.remove=l.insert=void 0;const u=at(),o=t(ut()),a=n(Rt()),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(j){let Y=u.uniToStrPos(c,j);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(j){h.push(j)},del(j){c=c.slice(u.uniToStrPos(c,j))},build(){return h.join("")+c}}},slice:o.uniSlice},W=o.default(E),_=Object.assign(Object.assign({},W),{api:a.default});l.type=_,l.insert=(c,h)=>h.length===0?[]:c===0?[h]:[c,h],l.remove=(c,h)=>o.dlen(h)===0?[]:c===0?[{d:h}]:[c,{d:h}];var s=ut();Object.defineProperty(l,"makeType",{enumerable:!0,get:function(){return s.default}})}(Me)),Me}var Et;function Gt(){return Et||(Et=1,function(l){var e=Qe&&Qe.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(l,"__esModule",{value:!0}),l.editOp=l.replaceOp=l.insertOp=l.moveOp=l.removeOp=l.type=void 0;const r=e(Nt()),t=e($t()),n=vt(),u=Ot();function o(i,d){if(!i)throw new Error(d)}l.type={name:"json1",uri:"http://sharejs.org/types/JSONv1",readCursor:n.readCursor,writeCursor:n.writeCursor,create:i=>i,isNoop:i=>i==null,setDebug(i){},registerSubtype:Z,checkValidOp:z,normalize:x,apply:Te,transformPosition:fe,compose:ie,tryTransform:ft,transform:Jt,makeInvertible:Se,invert:ce,invertWithDoc:Xt,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>jt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},l.type),{transform:(d,m,D)=>jt(i,d,m,D)})};const a=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}l.removeOp=(i,d=!0)=>n.writeCursor().writeAtPath(i,"r",d).get(),l.moveOp=(i,d)=>n.writeCursor().writeMove(i,d).get(),l.insertOp=(i,d)=>n.writeCursor().writeAtPath(i,"i",d).get(),l.replaceOp=(i,d,m)=>n.writeCursor().at(i,D=>{D.write("r",d),D.write("i",m)}).get(),l.editOp=(i,d,m,D=!1)=>n.writeCursor().at(i,O=>y(O,d,m,D)).get();const j=(i,d)=>i!=null&&(typeof d=="number"?Array.isArray(i):typeof i=="object"),Y=(i,d)=>j(i,d)?i[d]:void 0,_e={};function Z(i){let d=i.type?i.type:i;d.name&&(_e[d.name]=d),d.uri&&(_e[d.uri]=d)}const Ee=i=>{const d=_e[i];if(d)return d;throw Error("Missing type: "+i)};Z(Wt());const Ke=(i,d)=>i+d;Z({name:"number",apply:Ke,compose:Ke,invert:i=>-i,transform:i=>i});const be=i=>i==null?null:i.et?Ee(i.et):i.es?_e["text-unicode"]:i.ena!=null?_e.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"?[Ee(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 q(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=be(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||q(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 G=O($,!1);if(v){const p=typeof b,M=typeof G;p===M?o(b<G,"descent keys are not in order"):o(p==="number"&&M==="string")}b=G,v++,g=3}else typeof $=="object"?(o(g===1,`Prev not scalar - instead ${g}`),D($),g=2):(o(g!==3),q($),o(n.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 x(i){let d=0,m=[];const D=n.writeCursor();return D.mergeTree(i,(O,C)=>{const R=be(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 Te(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 G=C[v];typeof G!="object"&&(o(j(b,I)),b=b[I]=W(b[I]),I=G)}}for(;N<C.length;N++){const G=C[N];if(Array.isArray(G)){const p=D(R,G);p!==R&&p!==void 0&&($(),R=b[I]=p)}else if(typeof G=="object"){G.d!=null?($(),R=h(b,I,m[G.d])):G.i!==void 0&&($(),R=h(b,I,G.i));const p=be(G);if(p)$(),R=b[I]=p.apply(R,f(G));else if(G.e!==void 0)throw Error("Subtype "+G.et+" undefined")}else R=Y(R,G)}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 fe(i,d){i=i.slice(),z(d);const m=n.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 $=n.advancer(m,void 0,(p,M)=>{_(M)&&I++});R.unshift($);const G=$(v);if(typeof v=="number"&&(i[g]-=I),!G)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=a(m),I=be(b);if(I){const p=f(b);I.transformPosition&&(i[g]=I.transformPosition(i[g],p));break}let $=0;const G=n.advancer(m,(p,M)=>s(M)?~(p-$):p-$,(p,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[g]+=$),!G)break}};return D!=null?m.eachDrop(null,g=>{g===D&&N()}):N(),i}function ie(i,d){if(z(i),z(d),i==null)return d;if(d==null)return i;let m=0;const D=n.readCursor(i),O=n.readCursor(d),C=n.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 G=n.writeCursor();return function p(M,se,re,H,ae,We,Ie,me){o(se||re);const le=a(se),Pe=a(re),Ue=!!Pe&&Pe.r!==void 0,Fe=!!le&&le.i!==void 0,Ae=le?le.d:null,De=Pe?Pe.p:null,Ge=(We||Ue)&&De==null;if(De!=null)H=v[De],Ie=N[De]=new n.WriteCursor;else if(Pe&&Pe.r!==void 0)H=null;else{const S=a(H);S&&S.d!=null&&(H=null)}const Q=a(H);if(Ae!=null)if(M=g[Ae],me=R[Ae]=new n.WriteCursor,Ge)We&&!Ue&&me.write("r",!0);else{const S=b[Ae]=m++;Ie.write("d",S)}else if(le&&le.i!==void 0)M=null;else{const S=a(M);S&&S.p!=null&&(M=null)}let P;Fe?(o(ae===void 0),P=le.i):P=ae;const L=(De==null?!Fe||We||Ue:P===void 0)?null:Ie.getComponent();if(De!=null){if(!(ae!==void 0||Fe)){const S=Ae!=null?b[Ae]:m++;I[De]=S,me.write("p",S)}}else Ue&&(Fe||ae!==void 0||(Pe.r,me.write("r",Pe.r)));const A=Ge?null:be(le),T=be(Q);if((A||T)&&(A&&A.name,T&&T.name),A&&T){o(A===T);const S=f(le),B=f(Q),ye=A.compose(S,B);y(Ie,A,ye),$.add(Q)}else A?y(Ie,A,f(le)):T&&(y(Ie,T,f(Q)),$.add(Q));const U=typeof P=="object"&&P!=null;let X=!1,J=0,te=0,pe=0,he=0,ue=0;const we=n.advancer(H,(S,B)=>s(B)?he-S-1:S-he,(S,B)=>{s(B)&&he++}),V=n.advancer(M,(S,B)=>_(B)?J-S-1:S-J,(S,B)=>{_(B)&&J++});if(n.eachChildOf(se,re,(S,B,ye)=>{let Ce,Le,Ve=S,je=S,et=S;if(typeof S=="number"){let Oe=S+pe;Le=we(Oe),je=Oe+he;let de=S+te;Ce=V(de),s(a(Le))&&(Ce=null),Ve=de+J,et=S+ue,o(Ve>=0,"p1PickKey is negative"),o(je>=0,"p2DropKey is negative");const ke=s(a(B)),Be=_(a(ye));(ke||Be&&!Ge)&&ue--,ke&&te--,Be&&pe--}else Ce=V(S),Le=we(S);me.descend(Ve),Ie.descend(je);const Ye=U&&!s(a(B))?P[et]:void 0,$e=p(Ce,B,ye,Le,Ye,Ge,Ie,me);var Re,k,oe;U&&!Ge?Ye!==$e&&(X||(P=Array.isArray(P)?P.slice():Object.assign({},P),X=!0),Re=P,oe=$e,typeof(k=et)=="number"?(o(Array.isArray(Re)),o(k<Re.length)):(o(!Array.isArray(Re)),o(Re[k]!==void 0)),oe===void 0?typeof k=="number"?Re.splice(k,1):delete Re[k]:Re[k]=oe):o($e===void 0),Ie.ascend(),me.ascend()}),V.end(),we.end(),L!=null)L.i=P;else if(!We&&!Ue&&De==null)return P}(D,D.clone(),O,O.clone(),void 0,!1,C,G),C.reset(),C.mergeTree(G.get()),C.reset(),C.get(),R.map(p=>p.get()),N.map(p=>p.get()),D.traverse(C,(p,M)=>{const se=p.p;if(se!=null){const re=b[se];re!=null&&M.write("p",re);const H=R[se];H&&H.get(),H&&M.mergeTree(H.get())}else p.r!==void 0&&M.write("r",p.r)}),C.reset(),C.get(),O.traverse(C,(p,M)=>{const se=p.d;if(se!=null){const H=I[se];H!=null&&M.write("d",H);const ae=N[se];ae&&M.mergeTree(ae.get())}else p.i!==void 0&&M.write("i",p.i);const re=be(p);re&&!$.has(p)&&y(M,re,f(p))}),C.get()}function ce(i){if(i==null)return null;const d=new n.ReadCursor(i),m=new n.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=be(b);p&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=p.apply(v,f(b)),$=!0))}let G=0;for(const p of N){g.descend(p);const M=typeof p=="number"?p-G:p,se=Y(v,M);s(N.getComponent())&&G++;const re=R(N,g,se);if(v!==void 0&&re!==void 0){if($||($=!0,v=W(v)),!j(v,M))throw Error("Cannot modify child - invalid operation");v[M]=re}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]=n.writeCursor()),D.has(b)){const M=be(b);if(!M.invert)throw Error(`Cannot invert subtype ${M.name}`);y(v,M,M.invert(f(b)))}}let I=0,$=0;const G=n.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-$,se=G(M),re=M+I;v.descend(re),R(se,g,v),s(g.getComponent())&&$++,v.ascend()}else v.descend(p),R(G(p),g,v),v.ascend();G.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 ve=(i,d)=>i.some(m=>typeof m=="object"&&(Array.isArray(m)?ve(m,d):d(m)));function Se(i,d){if(i==null||!ve(i,g=>{var v;return g.r!==void 0||((v=be(g))===null||v===void 0?void 0:v.makeInvertible)!=null}))return i;const m=new n.ReadCursor(i),D=new n.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=be(I);M&&(M.makeInvertible?O=!0:y(v,M,f(I),!0))}let G=0;for(const p of g){v.descend(p);const M=typeof p=="number"?p-G:p,se=Y(b,M),re=N(g,v,se);se!==re&&($||($=!0,b=W(b)),re===void 0?(b=c(b,M),typeof p=="number"&&G++):b[M]=re),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,$,G){const p=b.getComponent();if(p){p.i!==void 0?($=p.i,G=!0):p.d!=null&&($=R[p.d],v=C[p.d],G=!1,p.d);let H=be(p);if(H&&H.makeInvertible){const ae=f(p);y(I,H,H.makeInvertible(ae,$),!0)}}let M=0,se=0;const re=n.advancer(v,(H,ae)=>_(ae)?M-H-1:H-M,(H,ae)=>{_(ae)&&M++});for(const H of b)if(typeof H=="number"){const ae=H-se,We=re(ae),Ie=ae+M,me=Y($,G?ae:Ie);I.descend(H),g(We,b,I,me,G),s(b.getComponent())&&se++,I.ascend()}else{const ae=Y($,H);I.descend(H),g(re(H),b,I,ae,G),I.ascend()}re.end()}(m.clone(),m,D,d,!1)),D.get()}function Xt(i,d){return ce(Se(i,d))}const dt=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]=dt(D))}return d};function ft(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=[],$=[],G=[],p=[],M=[],se=[],re=[],H=[],ae=[];let We=0;const Ie=n.readCursor(i),me=n.readCursor(d),le=n.writeCursor();if(function Q(P,L=null,A){const T=a(L);T&&(T.r!==void 0?A=L.clone():T.p!=null&&(A=null,b[T.p]=P.clone()));const U=P.getComponent();let X;U&&(X=U.p)!=null&&(v[X]=L?L.clone():null,N[X]=P.clone(),A&&(p[X]=!0,G[X]=A),T&&T.p!=null&&(H[X]=T.p));const J=n.advancer(L);for(const te of P)Q(P,J(te),A);J.end()}(me,Ie,null),function Q(P,L,A,T,U){const X=A.getComponent();let J,te=!1;X&&((J=X.d)!=null?(g[J]=A.clone(),T!=null&&(ae[T]==null&&(ae[T]=[]),ae[T].push(J)),P=v[J]||null,L=N[J]||null,p[J]?(U&&(M[J]=!0),U=G[J]||null):!U||D!==1&&H[J]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.moveOp(L.getPath(),A.getPath())}),te=!0):X.i!==void 0&&(P=L=null,te=!0,U&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.insertOp(A.getPath(),X.i)})));const pe=a(P);pe&&(pe.r!==void 0?U=P.clone():pe.p!=null&&(pe.p,T=pe.p,U=null));const he=be(X);he&&U&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.editOp(A.getPath(),he,f(X),!0)});let ue=0,we=0;const V=n.advancer(L,(B,ye)=>_(ye)?ue-B-1:B-ue,(B,ye)=>{_(ye)&&ue++}),S=n.advancer(P);for(const B of A)if(typeof B=="number"){const ye=B-we,Ce=V(ye);we+=+Q(S(ye+ue),Ce,A,T,U)}else{const ye=V(B);Q(S(B),ye,A,T,U)}return V.end(),S.end(),te}(Ie,me,me.clone(),null,null),g.map(Q=>Q&&Q.get()),O)return{ok:!1,conflict:O};M.map(Q=>!!Q);const Pe=[];let Ue=null;(function Q(P,L,A,T,U){let X=!1;const J=a(L);if(_(J)){const V=J.p;V!=null?(A=g[V],T=se[V]=n.writeCursor(),X=!0,U=null):(A=null,U=L.clone())}else s(a(A))&&(A=null);const te=P.getComponent();if(te){const V=te.p;V!=null?(U&&($[V]=U),Pe[V]=U||D===1&&X?null:T.getComponent(),C[V]=P.clone(),A&&(I[V]=A.clone())):te.r!==void 0&&(U||T.write("r",!0),(U||X)&&(Ue==null&&(Ue=new Set),Ue.add(te)))}let pe=0,he=0;const ue=n.advancer(L,void 0,(V,S)=>{_(S)&&pe++}),we=n.advancer(A,(V,S)=>s(S)?~(V-he):V-he,(V,S)=>{s(S)&&he++});if(P)for(const V of P)if(typeof V=="string"){const S=ue(V),B=we(V);T.descend(V),Q(P,S,B,T,U),T.ascend()}else{const S=ue(V),B=V-pe,ye=_(a(S))?null:we(B),Ce=B+he;o(Ce>=0),T.descend(Ce),Q(P,S,ye,T,U),T.ascend()}ue.end(),we.end()})(Ie,me,me.clone(),le,null),le.reset();let Fe=[];if(function Q(P,L,A,T,U,X){o(L);const J=L.getComponent();let te=a(T),pe=!1;const he=(k,oe,Oe)=>k?l.moveOp(k.getPath(),oe.getPath()):l.insertOp(oe.getPath(),Oe.i);if(s(J)){const k=J.d;k!=null&&(R[k]=L.clone());const oe=k!=null?Pe[k]:null;let Oe=!1;if(J.i!==void 0||k!=null&&oe){let de;te&&(te.i!==void 0||(de=te.d)!=null&&!p[de])&&(Oe=de!=null?k!=null&&k===H[de]:r.default(te.i,J.i),Oe||de!=null&&D!==1&&H[de]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:he(k!=null?C[k]:null,L,J),op2:he(de!=null?N[de]:null,T,te)})),Oe||(X?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:he(k!=null?C[k]:null,L,J),op2:l.removeOp(X.getPath())}):(k!=null?(Fe[We]=k,U.write("d",oe.p=We++)):U.write("i",t.default(J.i)),pe=!0))}else if(k!=null&&!oe){const de=$[k];de&&(X=de.clone())}k!=null?(P=C[k],A=b[k],T=I[k]):J.i!==void 0&&(P=A=null,Oe||(T=null))}else _(a(P))&&(P=A=T=null);const ue=a(P),we=a(A);if(_(we)){const k=we.p;we.r!==void 0&&(!ue||ue.r===void 0)||p[k]?(T=null,X=A.clone()):k!=null&&(T=g[k],D!==1&&H[k]!=null||((U=re[k])||(U=re[k]=n.writeCursor()),U.reset(),X=null))}else!s(J)&&s(te)&&(T=null);te=T!=null?T.getComponent():null;const V=be(J);if(V){const k=f(J);if(X)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.editOp(L.getPath(),V,k,!0),op2:l.removeOp(X.getPath())});else{const oe=be(te);let Oe;if(oe){if(V!==oe)throw Error("Transforming incompatible types");const de=f(te);Oe=V.transform(k,de,m)}else Oe=t.default(k);y(U,V,Oe)}}let S=0,B=0,ye=0,Ce=0,Le=0,Ve=0,je=P!=null&&P.descendFirst(),et=je;const Ye=n.advancer(A,void 0,(k,oe)=>{_(oe)&&ye++});let $e=T!=null&&T.descendFirst(),Re=$e;for(const k of L)if(typeof k=="number"){let oe;const Oe=s(L.getComponent()),de=k-B;{let qe;for(;je&&typeof(qe=P.getKey())=="number";){qe+=S;const Ne=P.getComponent(),Ze=_(Ne);if(qe>de||qe===de&&(!Ze||D===0&&Oe))break;if(Ze){S--;const ze=Ne.p;H.includes(ze),Ne.d,a(re[Ne.d]),_(a(re[Ne.d])),(Ne.r===void 0||Ue&&Ue.has(Ne))&&(ze==null||!Pe[ze]||D!==1&&H.includes(ze))||Le--}je=P.nextSibling()}oe=je&&qe===de?P:null}const ke=de-S;let Be=Ye(ke);const ht=ke-ye;let it=null;{let qe,Ne;for(;$e&&typeof(qe=T.getKey())=="number";){Ne=qe-Ce;const Ze=T.getComponent(),ze=s(Ze);if(Ne>ht)break;if(Ne===ht){if(!ze){it=T;break}{if(D===0&&Oe){it=T;break}const Xe=Be&&_(Be.getComponent());if(D===0&&Xe)break}}if(ze){const Xe=Ze.d;H[Xe],Ze.i===void 0&&(p[Xe]||H[Xe]!=null&&D!==1)?(p[Xe]||H[Xe]!=null&&D===0)&&(Ce++,Ve--):Ce++}$e=T.nextSibling()}}const kt=ht+Ce+Le+Ve;o(kt>=0,"trying to descend to a negative index"),U.descend(kt),Oe&&(oe=Be=it=null,B++),Q(oe,L,Be,it,U,X)&&Ve++,U.ascend()}else{let oe;for(;je&&(oe=P.getKey(),typeof oe!="string"||!(oe>k||oe===k));)je=P.nextSibling();const Oe=je&&oe===k?P:null,de=Ye(k);let ke;for(;$e&&(ke=T.getKey(),typeof ke!="string"||!(ke>k||ke===k));)$e=T.nextSibling();const Be=$e&&ke===k?T:null;U.descend(k),Q(Oe,L,de,Be,U,X),U.ascend()}return Ye.end(),et&&P.ascend(),Re&&T.ascend(),pe}(Ie,Ie.clone(),me,me.clone(),le,null),O)return{ok:!1,conflict:O};le.reset();const Ae=(Q,P,L)=>Q.traverse(P,(A,T)=>{A.d!=null&&L(A.d,Q,T)});(p.length||se.length)&&(Ae(me,le,(Q,P,L)=>{p[Q]&&!M[Q]&&L.write("r",!0),se[Q]&&L.mergeTree(se[Q].get())}),le.reset());const De=[],Ge=[];if((re.length||p.length)&&!O){const Q=n.readCursor(dt(le.get()));if(Ae(Q,null,(P,L)=>{De[P]=L.clone()}),re.forEach(P=>{P&&Ae(n.readCursor(P.get()),null,(L,A)=>{De[L]=A.clone()})}),function P(L,A,T,U,X,J){const te=a(A);if(te&&_(te))if(te.p!=null){const S=te.p;De[S].getPath(),T=De[S],U=Ge[S]=n.writeCursor()}else te.r!==void 0&&(T=null);else s(a(T))&&(T=null);const pe=L.getComponent();if(pe){let S;if((S=pe.d)!=null){const B=re[S];B&&(B.get(),U.mergeTree(B.get()),T=n.readCursor(B.get()))}}let he=0,ue=0;const we=n.advancer(A,void 0,(S,B)=>{_(B)&&he--}),V=n.advancer(T,(S,B)=>s(B)?-(S-ue)-1:S-ue,(S,B)=>{s(B)&&ue++});for(const S of L)if(typeof S=="number"){const B=we(S),ye=S+he,Ce=V(ye),Le=ye+ue;U.descend(Le),P(L,B,Ce,U),U.ascend()}else U.descend(S),P(L,we(S),V(S),U),U.ascend();we.end(),V.end()}(me,Q,Q.clone(),le),le.reset(),O)return{ok:!1,conflict:O};if(le.get(),Ge.length){const P=Ge.map(A=>A?A.get():null),L=n.readCursor(dt(le.get()));if(Ae(L,le,(A,T,U)=>{const X=P[A];X&&(U.mergeTree(X),P[A]=null)}),P.find(A=>A)){const A=n.writeCursor(),T=n.writeCursor();let U=0,X=0;P.forEach(J=>{J!=null&&Ae(n.readCursor(J),null,te=>{const pe=Fe[te];A.writeMove(C[pe].getPath(),R[pe].getPath(),U++);const he=ae[pe];he&&he.forEach(ue=>{p[ue]||D!==1&&H[ue]!=null||T.writeMove(N[ue].getPath(),g[ue].getPath(),X++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:T.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:le.get()}}const Ut=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function Jt(i,d,m){const D=ft(i,d,m);if(D.ok)return D.result;Ut(D.conflict)}const Je=i=>{const d=n.writeCursor();return n.readCursor(i).traverse(d,(m,D)=>{(s(m)||be(m))&&D.write("r",!0)}),d.get()},Yt=(i,d)=>{const{type:m,op1:D,op2:O}=i;switch(m){case u.ConflictType.DROP_COLLISION:return d==="left"?[null,Je(O)]:[Je(D),null];case u.ConflictType.RM_UNEXPECTED_CONTENT:let C=!1;return n.readCursor(D).traverse(null,R=>{R.r!==void 0&&(C=!0)}),C?[null,Je(O)]:[Je(D),null];case u.ConflictType.BLACKHOLE:return[Je(D),Je(O)];default:throw Error("Unrecognised conflict: "+m)}};function jt(i,d,m,D){let O=null;for(;;){const C=ft(d,m,D);if(C.ok)return ie(O,C.result);{const{conflict:R}=C;i(R)||Ut(R);const[N,g]=Yt(R,D);d=ie(x(d),N),m=ie(x(m),g),O=ie(O,g)}}}}(Qe)),Qe}var Dt;function Lt(){return Dt||(Dt=1,function(l){var e=xe&&xe.__createBinding||(Object.create?function(u,o,a,E){E===void 0&&(E=a),Object.defineProperty(u,E,{enumerable:!0,get:function(){return o[a]}})}:function(u,o,a,E){E===void 0&&(E=a),u[E]=o[a]}),r=xe&&xe.__exportStar||function(u,o){for(var a in u)a!=="default"&&!o.hasOwnProperty(a)&&e(o,u,a)};Object.defineProperty(l,"__esModule",{value:!0}),r(Gt(),l);var t=vt();Object.defineProperty(l,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(l,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var n=Ot();Object.defineProperty(l,"ConflictType",{enumerable:!0,get:function(){return n.ConflictType}})}(xe)),xe}var F=Lt();class Tt{constructor(){K(this,"drawingManagerData",{});K(this,"_oldDrawingManagerData",{});K(this,"_focusDrawings",[]);K(this,"_remove$",new ge.Subject);K(this,"remove$",this._remove$.asObservable());K(this,"_add$",new ge.Subject);K(this,"add$",this._add$.asObservable());K(this,"_update$",new ge.Subject);K(this,"update$",this._update$.asObservable());K(this,"_order$",new ge.Subject);K(this,"order$",this._order$.asObservable());K(this,"_group$",new ge.Subject);K(this,"group$",this._group$.asObservable());K(this,"_ungroup$",new ge.Subject);K(this,"ungroup$",this._ungroup$.asObservable());K(this,"_refreshTransform$",new ge.Subject);K(this,"refreshTransform$",this._refreshTransform$.asObservable());K(this,"_visible$",new ge.Subject);K(this,"visible$",this._visible$.asObservable());K(this,"_focus$",new ge.Subject);K(this,"focus$",this._focus$.asObservable());K(this,"_featurePluginUpdate$",new ge.Subject);K(this,"featurePluginUpdate$",this._featurePluginUpdate$.asObservable());K(this,"_featurePluginAdd$",new ge.Subject);K(this,"featurePluginAdd$",this._featurePluginAdd$.asObservable());K(this,"_featurePluginRemove$",new ge.Subject);K(this,"featurePluginRemove$",this._featurePluginRemove$.asObservable());K(this,"_featurePluginOrderUpdate$",new ge.Subject);K(this,"featurePluginOrderUpdate$",this._featurePluginOrderUpdate$.asObservable());K(this,"_featurePluginGroupUpdate$",new ge.Subject);K(this,"featurePluginGroupUpdate$",this._featurePluginGroupUpdate$.asObservable());K(this,"_featurePluginUngroupUpdate$",new ge.Subject);K(this,"featurePluginUngroupUpdate$",this._featurePluginUngroupUpdate$.asObservable());K(this,"_visible",!0);K(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(r=>{const t=this._getCurrentBySearch(r);t!=null&&(t.transform=r.transform,t.transforms=r.transforms,t.isMultiTransform=r.isMultiTransform)}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return this.drawingManagerData[e]||{}}removeDrawingDataForUnit(e){const r=this.drawingManagerData[e];if(r==null)return;delete this.drawingManagerData[e];const t=[];Object.keys(r).forEach(n=>{const u=r[n];(u==null?void 0:u.data)!=null&&Object.keys(u.data).forEach(o=>{t.push({unitId:e,subUnitId:n,drawingId:o})})}),t.length>0&&this.removeNotification(t)}registerDrawingData(e,r){this.drawingManagerData[e]=r}initializeNotification(e){const r=[],t=this.drawingManagerData[e];t!=null&&(Object.keys(t).forEach(n=>{this._establishDrawingMap(e,n);const u=t[n];Object.keys(u.data).forEach(o=>{const a=u.data[o];a.unitId=e,a.subUnitId=n,r.push(a)})}),r.length>0&&this.addNotification(r))}getDrawingData(e,r){return this._getDrawingData(e,r)}setDrawingData(e,r,t){this.drawingManagerData[e][r].data=t}getBatchAddOp(e){const r=[],t=[],n=[];e.forEach(W=>{const{op:_,invertOp:s}=this._addByParam(W);r.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),n.push(s)});const u=t.reduce(F.type.compose,null),o=n.reduce(F.type.compose,null),{unitId:a,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:a,subUnitId:E,objects:r}}getBatchRemoveOp(e){const r=[],t=[];e.forEach(E=>{const{op:W,invertOp:_}=this._removeByParam(E);r.unshift(W),t.push(_)});const n=r.reduce(F.type.compose,null),u=t.reduce(F.type.compose,null),{unitId:o,subUnitId:a}=e[0];return{undo:u,redo:n,unitId:o,subUnitId:a,objects:e}}getBatchUpdateOp(e){const r=[],t=[],n=[];e.forEach(W=>{const{op:_,invertOp:s}=this._updateByParam(W);r.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),n.push(s)});const u=t.reduce(F.type.compose,null),o=n.reduce(F.type.compose,null),{unitId:a,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:a,subUnitId:E,objects:r}}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 r=[],{unitId:t,subUnitId:n}=e[0].parent;e.forEach(a=>{r.push(this._getGroupDrawingOp(a))});const u=r.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:n,objects:e}}getUngroupDrawingOp(e){const r=[],{unitId:t,subUnitId:n}=e[0].parent;e.forEach(a=>{r.push(this._getUngroupDrawingOp(a))});const u=r.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:n,objects:e}}getDrawingsByGroup(e){const{unitId:r,subUnitId:t,drawingId:n}=e;if(this.getDrawingByParam({unitId:r,subUnitId:t,drawingId:n})==null)return[];const o=this._getDrawingData(r,t),a=[];return Object.keys(o).forEach(E=>{const W=o[E];W.groupId===n&&a.push(W)}),a}_getGroupDrawingOp(e){const{parent:r,children:t}=e,{unitId:n,subUnitId:u,drawingId:o}=r,a=[];a.push(F.insertOp([n,u,"data",o],r));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),a.push(...this._getUpdateParamCompareOp(W,this.getDrawingByParam({unitId:_,subUnitId:s,drawingId:c})))}),E===Number.NEGATIVE_INFINITY&&(E=this._getDrawingOrder(n,u).length),a.push(F.insertOp([n,u,"order",E],o)),a.reduce(F.type.compose,null)}_getUngroupDrawingOp(e){const{parent:r,children:t}=e,{unitId:n,subUnitId:u,drawingId:o}=r,a=[];return t.forEach(E=>{const{unitId:W,subUnitId:_,drawingId:s}=E;a.push(...this._getUpdateParamCompareOp(E,this.getDrawingByParam({unitId:W,subUnitId:_,drawingId:s})))}),a.push(F.removeOp([n,u,"data",o],!0)),a.push(F.removeOp([n,u,"order",this._getDrawingOrder(n,u).indexOf(o)],!0)),a.reduce(F.type.compose,null)}applyJson1(e,r,t){this._establishDrawingMap(e,r),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[r,t,n]=e.split("#-#");return this._getCurrentBySearch({unitId:r,subUnitId:t,drawingId:n})}focusDrawing(e){if(e==null){this._focusDrawings=[],this._focus$.next([]);return}const r=[];e.forEach(t=>{var E;const{unitId:n,subUnitId:u,drawingId:o}=t,a=(E=this._getDrawingData(n,u))==null?void 0:E[o];a!=null&&r.push(a)}),r.length>0&&(this._focusDrawings=r,this._focus$.next(r))}getFocusDrawings(){const e=[];return this._focusDrawings.forEach(r=>{var a;const{unitId:t,subUnitId:n,drawingId:u}=r,o=(a=this._getDrawingData(t,n))==null?void 0:a[u];o!=null&&e.push(o)}),e}getDrawingOrder(e,r){return this._getDrawingOrder(e,r)}setDrawingOrder(e,r,t){this.drawingManagerData[e][r].order=t}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=[],o=this.getDrawingOrder(r,t),a=[...n];n.forEach(_=>{const s=this._hasDrawingOrder({unitId:r,subUnitId:t,drawingId:_});if(s===-1||s===o.length-1)return;const c=F.moveOp([r,t,"order",s],[r,t,"order",s+1]);u.push(c),a.includes(o[s+1])||a.push(o[s+1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:r,subUnitId:t,objects:{...e,drawingIds:a}}}getBackwardDrawingOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=[],o=this.getDrawingOrder(r,t),a=[...n];n.forEach(_=>{const s=this._hasDrawingOrder({unitId:r,subUnitId:t,drawingId:_});if(s===-1||s===0)return;const c=F.moveOp([r,t,"order",s],[r,t,"order",s-1]);u.push(c),a.includes(o[s-1])||a.push(o[s-1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:r,subUnitId:t,objects:{...e,drawingIds:a}}}getFrontDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=this._getOrderFromSearchParams(r,t,n),o=[...n],a=this.getDrawingOrder(r,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=this._getDrawingCount(r,t)-1,j=F.moveOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(c)],[r,t,"order",h]);E.push(j),o.includes(a[h])||o.push(a[h])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:r,subUnitId:t,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=this._getOrderFromSearchParams(r,t,n,!0),o=[...n],a=this.getDrawingOrder(r,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=F.moveOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(c)],[r,t,"order",0]);E.push(h),o.includes(a[0])||o.push(a[0])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:r,subUnitId:t,objects:{...e,drawingIds:o}}}_getDrawingCount(e,r){return this.getDrawingOrder(e,r).length||0}_getOrderFromSearchParams(e,r,t,n=!1){return t.map(u=>{const o=this._hasDrawingOrder({unitId:e,subUnitId:r,drawingId:u});return{drawingId:u,zIndex:o}}).sort(n===!1?ee.sortRules:ee.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;const{unitId:r,subUnitId:t,drawingId:n}=e;return this._establishDrawingMap(r,t),this._getDrawingOrder(r,t).indexOf(n)}_getCurrentBySearch(e){var u,o,a;if(e==null)return;const{unitId:r,subUnitId:t,drawingId:n}=e;return(a=(o=(u=this.drawingManagerData[r])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:a[n]}_getOldBySearch(e){var u,o,a;if(e==null)return;const{unitId:r,subUnitId:t,drawingId:n}=e;return(a=(o=(u=this._oldDrawingManagerData[r])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:a[n]}_establishDrawingMap(e,r,t){var n;return this.drawingManagerData[e]||(this.drawingManagerData[e]={}),this.drawingManagerData[e][r]||(this.drawingManagerData[e][r]={data:{},order:[]}),t==null?null:(n=this.drawingManagerData[e][r].data)==null?void 0:n[t]}_addByParam(e){const{unitId:r,subUnitId:t,drawingId:n}=e;this._establishDrawingMap(r,t,n);const u=F.insertOp([r,t,"data",n],e),o=F.insertOp([r,t,"order",this._getDrawingOrder(r,t).length],n),a=[u,o].reduce(F.type.compose,null),E=F.type.invertWithDoc(a,this.drawingManagerData);return{op:a,invertOp:E}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};const{unitId:r,subUnitId:t,drawingId:n}=e;if(this._establishDrawingMap(r,t,n)==null)return{op:[],invertOp:[]};const o=F.removeOp([r,t,"data",n],!0),a=F.removeOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(n)],!0),E=[o,a].reduce(F.type.compose,null),W=F.type.invertWithDoc(E,this.drawingManagerData);return{op:E,invertOp:W}}_updateByParam(e){const{unitId:r,subUnitId:t,drawingId:n}=e,u=this._establishDrawingMap(r,t,n);if(u==null)return{op:[],invertOp:[]};const a=this._getUpdateParamCompareOp(e,u).reduce(F.type.compose,null),E=F.type.invertWithDoc(a,this.drawingManagerData);return{op:a,invertOp:E}}_getUpdateParamCompareOp(e,r){const{unitId:t,subUnitId:n,drawingId:u}=e,o=[];return Object.keys(e).forEach(a=>{const E=e[a],W=r[a];W!==E&&o.push(F.replaceOp([t,n,"data",u,a],W,E))}),o}_getDrawingData(e,r){var t,n;return((n=(t=this.drawingManagerData[e])==null?void 0:t[r])==null?void 0:n.data)||{}}_getDrawingOrder(e,r){var t,n;return((n=(t=this.drawingManagerData[e])==null?void 0:t[r])==null?void 0:n.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}}class St extends Tt{}function Bt({unitId:l,subUnitId:e,drawingId:r},t){return typeof t=="number"?`${l}#-#${e}#-#${r}#-#${t}`:`${l}#-#${e}#-#${r}`}const qt=async l=>new Promise((e,r)=>{const t=new Image;t.src=l,t.onload=()=>{e({width:t.width,height:t.height,image:t})},t.onerror=n=>{r(n)}}),xt="drawing.config",Ht={},Pt=ee.createIdentifier("univer.drawing-manager.service");class At{constructor(){K(this,"_waitCount",0);K(this,"_change$",new ge.Subject);K(this,"change$",this._change$);K(this,"_imageSourceCache",new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,r){if(r===ee.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,r,t){r===ee.ImageSourceType.BASE64||t==null||this._imageSourceCache.set(e,t)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((r,t)=>{if(!gt.includes(e.type)){t(new Error(ee.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>5242880){t(new Error(ee.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}const n=new FileReader;n.readAsDataURL(e),n.onload=u=>{var E;const o=(E=u.target)==null?void 0:E.result;if(o==null){t(new Error(ee.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const a=ee.Tools.generateRandomId(6);r({imageId:a,imageSourceType:ee.ImageSourceType.BASE64,source:o,base64Cache:o,status:ee.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var Kt=Object.defineProperty,Ft=Object.getOwnPropertyDescriptor,Vt=(l,e,r,t)=>{for(var n=t>1?void 0:t?Ft(e,r):e,u=l.length-1,o;u>=0;u--)(o=l[u])&&(n=(t?o(e,r,n):o(n))||n);return t&&n&&Kt(e,r,n),n},Mt=(l,e)=>(r,t)=>e(r,t,l);const zt="UNIVER_DRAWING_PLUGIN";ne.UniverDrawingPlugin=(ct=class extends ee.Plugin{constructor(e=Ht,r,t){super(),this._config=e,this._injector=r,this._configService=t;const{...n}=this._config;this._configService.setConfig(xt,n)}onStarting(){this._initDependencies()}_initDependencies(){var t;const e=[[ee.IImageIoService,{useClass:At}],[Pt,{useClass:St}]];ee.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(n=>this._injector.add(n))}},K(ct,"pluginName",zt),ct),ne.UniverDrawingPlugin=Vt([Mt(1,ee.Inject(ee.Injector)),Mt(2,ee.IConfigService)],ne.UniverDrawingPlugin),Object.defineProperty(ne,"IImageIoService",{enumerable:!0,get:()=>ee.IImageIoService}),Object.defineProperty(ne,"ImageSourceType",{enumerable:!0,get:()=>ee.ImageSourceType}),Object.defineProperty(ne,"ImageUploadStatusType",{enumerable:!0,get:()=>ee.ImageUploadStatusType}),ne.DRAWING_IMAGE_ALLOW_IMAGE_LIST=gt,ne.DRAWING_IMAGE_ALLOW_SIZE=5242880,ne.DRAWING_IMAGE_COUNT_LIMIT=10,ne.DRAWING_IMAGE_HEIGHT_LIMIT=500,ne.DRAWING_IMAGE_WIDTH_LIMIT=500,ne.DrawingManagerService=St,ne.IDrawingManagerService=Pt,ne.ImageIoService=At,ne.UnitDrawingService=Tt,ne.getDrawingShapeKeyByDrawingSearch=Bt,ne.getImageSize=qt,Object.defineProperty(ne,Symbol.toStringTag,{value:"Module"})});
1
+ (function(ne,Y){typeof exports=="object"&&typeof module<"u"?Y(exports,require("@univerjs/core"),require("rxjs")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs"],Y):(ne=typeof globalThis<"u"?globalThis:ne||self,Y(ne.UniverDrawing={},ne.UniverCore,ne.rxjs))})(this,function(ne,Y,ge){"use strict";var Zt=Object.defineProperty;var Qt=(ne,Y,ge)=>Y in ne?Zt(ne,Y,{enumerable:!0,configurable:!0,writable:!0,value:ge}):ne[Y]=ge;var K=(ne,Y,ge)=>Qt(ne,typeof Y!="symbol"?Y+"":Y,ge);var ct;const gt=["image/png","image/jpeg","image/jpg","image/gif","image/bmp"];var xe={},Qe={},tt={},pt;function $t(){if(pt)return tt;pt=1,Object.defineProperty(tt,"__esModule",{value:!0});function l(t,n){if(Array.isArray(n))return!1;for(let u in t)if(!r(t[u],n[u]))return!1;for(let u in n)if(t[u]===void 0)return!1;return!0}function e(t,n){if(!Array.isArray(n)||t.length!==n.length)return!1;for(let u=0;u<t.length;u++)if(!r(t[u],n[u]))return!1;return!0}function r(t,n){return t===n?!0:t===null||n===null||typeof t!="object"||typeof n!="object"?!1:Array.isArray(t)?e(t,n):l(t,n)}return tt.default=r,tt}var nt={},yt;function Rt(){if(yt)return nt;yt=1,Object.defineProperty(nt,"__esModule",{value:!0});function l(e){if(e===null)return null;if(Array.isArray(e))return e.map(l);if(typeof e=="object"){const r={};for(let t in e)r[t]=l(e[t]);return r}else return e}return nt.default=l,nt}var st={},_t;function vt(){return _t||(_t=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.eachChildOf=l.advancer=l.readCursor=l.writeCursor=l.WriteCursor=l.ReadCursor=l.isValidPathItem=void 0;function e(_,s){if(!_)throw new Error(s)}const r=_=>_!=null&&typeof _=="object"&&!Array.isArray(_),t=(_,s)=>typeof _==typeof s?_>s:typeof _=="string"&&typeof s=="number";function n(_,s){for(let c in _){const h=c;s.write(h,_[h])}}l.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--,r(this.container[this.idx])&&this.idx--)}getPath(){const s=[];let c=this.container,h=this.parents.length-1,j=this.idx;for(;j>=0;)s.unshift(c[j]),j===0?(j=this.indexes[h*2],c=this.parents[h--]):j-=r(c[j-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&&r(s=this.container[this.idx+1])?s:null}descendFirst(){let s=this.idx+1;if(!this.container||s>=this.container.length||r(this.container[s])&&s+1>=this.container.length)return!1;r(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,j){this.container=s,this.idx=c,this.parents=h.slice(),this.indexes=j.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 j of this)s&&s.descend(j),this.traverse(s,c),s&&s.ascend()}eachPick(s,c){this.traverse(s,(h,j)=>{h.p!=null&&c(h.p,j)})}eachDrop(s,c){this.traverse(s,(h,j)=>{h.d!=null&&c(h.d,j)})}}l.ReadCursor=o;class a 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&&r(this.container[h])&&h++,e(h===this.container.length||!r(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 j=this.container.splice(h,this.container.length-h);this.container.push(j),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 j=[c];this.container.splice(h,0,j),this.container=j}}}this.pendingDescent.length=0}reset(){this.lcIdx=-1}getComponent(){this.flushDescent();const s=this.idx+1;if(s<this.container.length&&r(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(!l.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=n){if(s===null)return;if(e(Array.isArray(s)),s===this._op)throw Error("Cannot merge into my own tree");const h=this.lcIdx,j=this.parents.length;let Z=0;for(let _e=0;_e<s.length;_e++){const Q=s[_e];typeof Q=="string"||typeof Q=="number"?(Z++,this.descend(Q)):Array.isArray(Q)?this.mergeTree(Q,c):typeof Q=="object"&&c(Q,this)}for(;Z--;)this.ascend();this.lcIdx=this.parents.length===j?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}}l.WriteCursor=a,l.writeCursor=()=>new a,l.readCursor=_=>new o(_);function E(_,s,c){let h,j;j=h=_?_.descendFirst():!1;function Z(_e){let Q;for(;j;){const Ee=Q=_.getKey();if(_e!=null){let Ke=!1;if(s&&typeof Ee=="number"&&(Q=s(Ee,_.getComponent()),Q<0&&(Q=~Q,Ke=!0)),t(Q,_e))return null;if(Q===_e&&!Ke)return _}c&&typeof Q=="number"&&c(Q,_.getComponent()),j=_.nextSibling()}return null}return Z.end=()=>{h&&_.ascend()},Z}l.advancer=E;function W(_,s,c){let h,j,Z,_e;for(h=j=_&&_.descendFirst(),Z=_e=s&&s.descendFirst();h||Z;){let Q=h?_.getKey():null,Ee=Z?s.getKey():null;Q!==null&&Ee!==null&&(t(Ee,Q)?Ee=null:Q!==Ee&&(Q=null)),c(Q==null?Ee:Q,Q!=null?_:null,Ee!=null?s:null),Q!=null&&h&&(h=_.nextSibling()),Ee!=null&&Z&&(Z=s.nextSibling())}j&&_.ascend(),_e&&s.ascend()}l.eachChildOf=W}(st)),st}var ot={},mt;function Ot(){return mt||(mt=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.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"}(l.ConflictType||(l.ConflictType={}))}(ot)),ot}var Me={},He={},bt;function at(){return bt||(bt=1,Object.defineProperty(He,"__esModule",{value:!0}),He.uniToStrPos=He.strPosToUni=void 0,He.strPosToUni=(l,e=l.length)=>{let r=0,t=0;for(;t<e;t++){const n=l.charCodeAt(t);n>=55296&&n<=57343&&(r++,t++)}if(t!==e)throw Error("Invalid offset - splits unicode bytes");return t-r},He.uniToStrPos=(l,e)=>{let r=0;for(;e>0;e--){const t=l.charCodeAt(r);r+=t>=55296&&t<=57343?2:1}return r}),He}var lt={},wt;function ut(){return wt||(wt=1,function(l){Object.defineProperty(l,"__esModule",{value:!0}),l.uniSlice=l.dlen=l.eachOp=void 0;const e=at(),r=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 q=f[w];switch(typeof q){case"object":if(typeof q.d!="number"&&typeof q.d!="string")throw Error("Delete must be number or string");if(l.dlen(q.d)<=0)throw Error("Deletes must not be empty");break;case"string":if(!(q.length>0))throw Error("Inserts cannot be empty");break;case"number":if(!(q>0))throw Error("Skip components must be >0");if(typeof y=="number")throw Error("Adjacent skip components should be combined");break}y=q}if(typeof y=="number")throw Error("Op has a trailing skip")};function t(f,y){let w=0,q=0;for(let z=0;z<f.length;z++){const x=f[z];switch(y(x,w,q),typeof x){case"object":w+=l.dlen(x.d);break;case"string":q+=e.strPosToUni(x);break;case"number":w+=x,q+=x;break}}}l.eachOp=t;function n(f,y){const w=[],q=a(w);return t(f,(z,x,Te)=>{q(y(z,x,Te))}),s(w)}const u=f=>f,o=f=>n(f,u);l.dlen=f=>typeof f=="number"?f:e.strPosToUni(f);const a=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:l.dlen(w.d)+l.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);l.uniSlice=(f,y,w)=>{const q=e.uniToStrPos(f,y),z=w==null?1/0:e.uniToStrPos(f,w);return f.slice(q,z)};const W=(f,y,w)=>typeof f=="number"?w==null?f-y:Math.min(f,w)-y:l.uniSlice(f,y,w),_=f=>{let y=0,w=0;return{take:(x,Te)=>{if(y===f.length)return x===-1?null:x;const fe=f[y];let ie;if(typeof fe=="number")return x===-1||fe-w<=x?(ie=fe-w,++y,w=0,ie):(w+=x,x);if(typeof fe=="string"){if(x===-1||Te==="i"||e.strPosToUni(fe.slice(w))<=x)return ie=fe.slice(w),++y,w=0,ie;{const ce=w+e.uniToStrPos(fe.slice(w),x);return ie=fe.slice(w,ce),w=ce,ie}}else{if(x===-1||Te==="d"||l.dlen(fe.d)-w<=x)return ie={d:W(fe.d,w)},++y,w=0,ie;{let ce=W(fe.d,w,w+x);return w+=x,{d:ce}}}},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'");r(f),r(y);const q=[],z=a(q),{take:x,peek:Te}=_(f);for(let ie=0;ie<y.length;ie++){const ce=y[ie];let ve,Se;switch(typeof ce){case"number":for(ve=ce;ve>0;)Se=x(ve,"i"),z(Se),typeof Se!="string"&&(ve-=E(Se));break;case"string":w==="left"&&typeof Te()=="string"&&z(x(-1)),z(e.strPosToUni(ce));break;case"object":for(ve=l.dlen(ce.d);ve>0;)switch(Se=x(ve,"i"),typeof Se){case"number":ve-=Se;break;case"string":z(Se);break;case"object":ve-=l.dlen(Se.d)}break}}let fe;for(;fe=x(-1);)z(fe);return s(q)}function h(f,y){r(f),r(y);const w=[],q=a(w),{take:z}=_(f);for(let Te=0;Te<y.length;Te++){const fe=y[Te];let ie,ce;switch(typeof fe){case"number":for(ie=fe;ie>0;)ce=z(ie,"d"),q(ce),typeof ce!="object"&&(ie-=E(ce));break;case"string":q(fe);break;case"object":ie=l.dlen(fe.d);let ve=0;for(;ve<ie;)switch(ce=z(ie-ve,"d"),typeof ce){case"number":q({d:W(fe.d,ve,ve+ce)}),ve+=ce;break;case"string":ve+=e.strPosToUni(ce);break;case"object":q(ce)}break}}let x;for(;x=z(-1);)q(x);return s(w)}const j=(f,y)=>{let w=0;for(let q=0;q<y.length&&f>w;q++){const z=y[q];switch(typeof z){case"number":{w+=z;break}case"string":const x=e.strPosToUni(z);w+=x,f+=x;break;case"object":f-=Math.min(l.dlen(z.d),f-w);break}}return f},Z=(f,y)=>typeof f=="number"?j(f,y):f.map(w=>j(w,y));function _e(f,y,w){return n(f,(q,z)=>typeof q=="object"&&typeof q.d=="number"?{d:w.slice(y,z,z+q.d)}:q)}function Q(f){return n(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 Ee(f){return n(f,y=>typeof y=="object"&&typeof y.d=="string"?{d:e.strPosToUni(y.d)}:y)}function Ke(f){let y=!0;return t(f,w=>{typeof w=="object"&&typeof w.d=="number"&&(y=!1)}),y}function be(f){return{name:"text-unicode",uri:"http://sharejs.org/types/text-unicode",trim:s,normalize:o,checkOp:r,create(y=""){if(typeof y!="string")throw Error("Initial data must be a string");return f.create(y)},apply(y,w){r(w);const q=f.builder(y);for(let z=0;z<w.length;z++){const x=w[z];switch(typeof x){case"number":q.skip(x);break;case"string":q.append(x);break;case"object":q.del(l.dlen(x.d));break}}return q.build()},transform:c,compose:h,transformPosition:j,transformSelection:Z,isInvertible:Ke,makeInvertible(y,w){return _e(y,w,f)},stripInvertible:Ee,invert:Q,invertWithDoc(y,w){return Q(_e(y,w,f))},isNoop:y=>y.length===0}}l.default=be}(lt)),lt}var rt={},It;function Wt(){if(It)return rt;It=1,Object.defineProperty(rt,"__esModule",{value:!0});const l=ut(),e=at();function r(t,n){return{get:t,getLength(){return t().length},insert(u,o,a){const E=e.strPosToUni(t(),u);return n([E,o],a)},remove(u,o,a){const E=e.strPosToUni(t(),u);return n([E,{d:o}],a)},_onOp(u){l.eachOp(u,(o,a,E)=>{switch(typeof o){case"string":this.onInsert&&this.onInsert(E,o);break;case"object":const W=l.dlen(o.d);this.onRemove&&this.onRemove(E,W)}})},onInsert:null,onRemove:null}}return rt.default=r,r.provides={text:!0},rt}var Ct;function Gt(){return Ct||(Ct=1,function(l){var e=Me&&Me.__createBinding||(Object.create?function(c,h,j,Z){Z===void 0&&(Z=j),Object.defineProperty(c,Z,{enumerable:!0,get:function(){return h[j]}})}:function(c,h,j,Z){Z===void 0&&(Z=j),c[Z]=h[j]}),r=Me&&Me.__setModuleDefault||(Object.create?function(c,h){Object.defineProperty(c,"default",{enumerable:!0,value:h})}:function(c,h){c.default=h}),t=Me&&Me.__importStar||function(c){if(c&&c.__esModule)return c;var h={};if(c!=null)for(var j in c)Object.hasOwnProperty.call(c,j)&&e(h,c,j);return r(h,c),h},n=Me&&Me.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(l,"__esModule",{value:!0}),l.type=l.remove=l.insert=void 0;const u=at(),o=t(ut()),a=n(Wt()),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(j){let Z=u.uniToStrPos(c,j);if(Z>c.length)throw Error("The op is too long for this document");h.push(c.slice(0,Z)),c=c.slice(Z)},append(j){h.push(j)},del(j){c=c.slice(u.uniToStrPos(c,j))},build(){return h.join("")+c}}},slice:o.uniSlice},W=o.default(E),_=Object.assign(Object.assign({},W),{api:a.default});l.type=_,l.insert=(c,h)=>h.length===0?[]:c===0?[h]:[c,h],l.remove=(c,h)=>o.dlen(h)===0?[]:c===0?[{d:h}]:[c,{d:h}];var s=ut();Object.defineProperty(l,"makeType",{enumerable:!0,get:function(){return s.default}})}(Me)),Me}var Et;function Lt(){return Et||(Et=1,function(l){var e=Qe&&Qe.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(l,"__esModule",{value:!0}),l.editOp=l.replaceOp=l.insertOp=l.moveOp=l.removeOp=l.type=void 0;const r=e($t()),t=e(Rt()),n=vt(),u=Ot();function o(i,d){if(!i)throw new Error(d)}l.type={name:"json1",uri:"http://sharejs.org/types/JSONv1",readCursor:n.readCursor,writeCursor:n.writeCursor,create:i=>i,isNoop:i=>i==null,setDebug(i){},registerSubtype:Q,checkValidOp:z,normalize:x,apply:Te,transformPosition:fe,compose:ie,tryTransform:ft,transform:Jt,makeInvertible:Se,invert:ce,invertWithDoc:Xt,RM_UNEXPECTED_CONTENT:u.ConflictType.RM_UNEXPECTED_CONTENT,DROP_COLLISION:u.ConflictType.DROP_COLLISION,BLACKHOLE:u.ConflictType.BLACKHOLE,transformNoConflict:(i,d,m)=>kt(()=>!0,i,d,m),typeAllowingConflictsPred:i=>Object.assign(Object.assign({},l.type),{transform:(d,m,D)=>kt(i,d,m,D)})};const a=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}l.removeOp=(i,d=!0)=>n.writeCursor().writeAtPath(i,"r",d).get(),l.moveOp=(i,d)=>n.writeCursor().writeMove(i,d).get(),l.insertOp=(i,d)=>n.writeCursor().writeAtPath(i,"i",d).get(),l.replaceOp=(i,d,m)=>n.writeCursor().at(i,D=>{D.write("r",d),D.write("i",m)}).get(),l.editOp=(i,d,m,D=!1)=>n.writeCursor().at(i,O=>y(O,d,m,D)).get();const j=(i,d)=>i!=null&&(typeof d=="number"?Array.isArray(i):typeof i=="object"),Z=(i,d)=>j(i,d)?i[d]:void 0,_e={};function Q(i){let d=i.type?i.type:i;d.name&&(_e[d.name]=d),d.uri&&(_e[d.uri]=d)}const Ee=i=>{const d=_e[i];if(d)return d;throw Error("Missing type: "+i)};Q(Gt());const Ke=(i,d)=>i+d;Q({name:"number",apply:Ke,compose:Ke,invert:i=>-i,transform:i=>i});const be=i=>i==null?null:i.et?Ee(i.et):i.es?_e["text-unicode"]:i.ena!=null?_e.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"?[Ee(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 q(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=be(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||q(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 G=O($,!1);if(v){const p=typeof b,M=typeof G;p===M?o(b<G,"descent keys are not in order"):o(p==="number"&&M==="string")}b=G,v++,g=3}else typeof $=="object"?(o(g===1,`Prev not scalar - instead ${g}`),D($),g=2):(o(g!==3),q($),o(n.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 x(i){let d=0,m=[];const D=n.writeCursor();return D.mergeTree(i,(O,C)=>{const R=be(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 Te(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 G=C[v];typeof G!="object"&&(o(j(b,I)),b=b[I]=W(b[I]),I=G)}}for(;N<C.length;N++){const G=C[N];if(Array.isArray(G)){const p=D(R,G);p!==R&&p!==void 0&&($(),R=b[I]=p)}else if(typeof G=="object"){G.d!=null?($(),R=h(b,I,m[G.d])):G.i!==void 0&&($(),R=h(b,I,G.i));const p=be(G);if(p)$(),R=b[I]=p.apply(R,f(G));else if(G.e!==void 0)throw Error("Subtype "+G.et+" undefined")}else R=Z(R,G)}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=Z(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===Z($,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 fe(i,d){i=i.slice(),z(d);const m=n.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 $=n.advancer(m,void 0,(p,M)=>{_(M)&&I++});R.unshift($);const G=$(v);if(typeof v=="number"&&(i[g]-=I),!G)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=a(m),I=be(b);if(I){const p=f(b);I.transformPosition&&(i[g]=I.transformPosition(i[g],p));break}let $=0;const G=n.advancer(m,(p,M)=>s(M)?~(p-$):p-$,(p,M)=>{s(M)&&$++})(v);if(typeof v=="number"&&(i[g]+=$),!G)break}};return D!=null?m.eachDrop(null,g=>{g===D&&N()}):N(),i}function ie(i,d){if(z(i),z(d),i==null)return d;if(d==null)return i;let m=0;const D=n.readCursor(i),O=n.readCursor(d),C=n.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 G=n.writeCursor();return function p(M,se,re,H,ae,We,Ie,me){o(se||re);const le=a(se),Pe=a(re),Ue=!!Pe&&Pe.r!==void 0,Fe=!!le&&le.i!==void 0,Ae=le?le.d:null,De=Pe?Pe.p:null,Ge=(We||Ue)&&De==null;if(De!=null)H=v[De],Ie=N[De]=new n.WriteCursor;else if(Pe&&Pe.r!==void 0)H=null;else{const S=a(H);S&&S.d!=null&&(H=null)}const ee=a(H);if(Ae!=null)if(M=g[Ae],me=R[Ae]=new n.WriteCursor,Ge)We&&!Ue&&me.write("r",!0);else{const S=b[Ae]=m++;Ie.write("d",S)}else if(le&&le.i!==void 0)M=null;else{const S=a(M);S&&S.p!=null&&(M=null)}let P;Fe?(o(ae===void 0),P=le.i):P=ae;const L=(De==null?!Fe||We||Ue:P===void 0)?null:Ie.getComponent();if(De!=null){if(!(ae!==void 0||Fe)){const S=Ae!=null?b[Ae]:m++;I[De]=S,me.write("p",S)}}else Ue&&(Fe||ae!==void 0||(Pe.r,me.write("r",Pe.r)));const A=Ge?null:be(le),T=be(ee);if((A||T)&&(A&&A.name,T&&T.name),A&&T){o(A===T);const S=f(le),B=f(ee),ye=A.compose(S,B);y(Ie,A,ye),$.add(ee)}else A?y(Ie,A,f(le)):T&&(y(Ie,T,f(ee)),$.add(ee));const U=typeof P=="object"&&P!=null;let X=!1,J=0,te=0,pe=0,he=0,ue=0;const we=n.advancer(H,(S,B)=>s(B)?he-S-1:S-he,(S,B)=>{s(B)&&he++}),V=n.advancer(M,(S,B)=>_(B)?J-S-1:S-J,(S,B)=>{_(B)&&J++});if(n.eachChildOf(se,re,(S,B,ye)=>{let Ce,Le,Ve=S,je=S,et=S;if(typeof S=="number"){let Oe=S+pe;Le=we(Oe),je=Oe+he;let de=S+te;Ce=V(de),s(a(Le))&&(Ce=null),Ve=de+J,et=S+ue,o(Ve>=0,"p1PickKey is negative"),o(je>=0,"p2DropKey is negative");const ke=s(a(B)),Be=_(a(ye));(ke||Be&&!Ge)&&ue--,ke&&te--,Be&&pe--}else Ce=V(S),Le=we(S);me.descend(Ve),Ie.descend(je);const Ye=U&&!s(a(B))?P[et]:void 0,$e=p(Ce,B,ye,Le,Ye,Ge,Ie,me);var Re,k,oe;U&&!Ge?Ye!==$e&&(X||(P=Array.isArray(P)?P.slice():Object.assign({},P),X=!0),Re=P,oe=$e,typeof(k=et)=="number"?(o(Array.isArray(Re)),o(k<Re.length)):(o(!Array.isArray(Re)),o(Re[k]!==void 0)),oe===void 0?typeof k=="number"?Re.splice(k,1):delete Re[k]:Re[k]=oe):o($e===void 0),Ie.ascend(),me.ascend()}),V.end(),we.end(),L!=null)L.i=P;else if(!We&&!Ue&&De==null)return P}(D,D.clone(),O,O.clone(),void 0,!1,C,G),C.reset(),C.mergeTree(G.get()),C.reset(),C.get(),R.map(p=>p.get()),N.map(p=>p.get()),D.traverse(C,(p,M)=>{const se=p.p;if(se!=null){const re=b[se];re!=null&&M.write("p",re);const H=R[se];H&&H.get(),H&&M.mergeTree(H.get())}else p.r!==void 0&&M.write("r",p.r)}),C.reset(),C.get(),O.traverse(C,(p,M)=>{const se=p.d;if(se!=null){const H=I[se];H!=null&&M.write("d",H);const ae=N[se];ae&&M.mergeTree(ae.get())}else p.i!==void 0&&M.write("i",p.i);const re=be(p);re&&!$.has(p)&&y(M,re,f(p))}),C.get()}function ce(i){if(i==null)return null;const d=new n.ReadCursor(i),m=new n.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=be(b);p&&(v===void 0?(D||(D=new Set),D.add(b)):(f(b),v=p.apply(v,f(b)),$=!0))}let G=0;for(const p of N){g.descend(p);const M=typeof p=="number"?p-G:p,se=Z(v,M);s(N.getComponent())&&G++;const re=R(N,g,se);if(v!==void 0&&re!==void 0){if($||($=!0,v=W(v)),!j(v,M))throw Error("Cannot modify child - invalid operation");v[M]=re}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]=n.writeCursor()),D.has(b)){const M=be(b);if(!M.invert)throw Error(`Cannot invert subtype ${M.name}`);y(v,M,M.invert(f(b)))}}let I=0,$=0;const G=n.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-$,se=G(M),re=M+I;v.descend(re),R(se,g,v),s(g.getComponent())&&$++,v.ascend()}else v.descend(p),R(G(p),g,v),v.ascend();G.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 ve=(i,d)=>i.some(m=>typeof m=="object"&&(Array.isArray(m)?ve(m,d):d(m)));function Se(i,d){if(i==null||!ve(i,g=>{var v;return g.r!==void 0||((v=be(g))===null||v===void 0?void 0:v.makeInvertible)!=null}))return i;const m=new n.ReadCursor(i),D=new n.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=be(I);M&&(M.makeInvertible?O=!0:y(v,M,f(I),!0))}let G=0;for(const p of g){v.descend(p);const M=typeof p=="number"?p-G:p,se=Z(b,M),re=N(g,v,se);se!==re&&($||($=!0,b=W(b)),re===void 0?(b=c(b,M),typeof p=="number"&&G++):b[M]=re),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,$,G){const p=b.getComponent();if(p){p.i!==void 0?($=p.i,G=!0):p.d!=null&&($=R[p.d],v=C[p.d],G=!1,p.d);let H=be(p);if(H&&H.makeInvertible){const ae=f(p);y(I,H,H.makeInvertible(ae,$),!0)}}let M=0,se=0;const re=n.advancer(v,(H,ae)=>_(ae)?M-H-1:H-M,(H,ae)=>{_(ae)&&M++});for(const H of b)if(typeof H=="number"){const ae=H-se,We=re(ae),Ie=ae+M,me=Z($,G?ae:Ie);I.descend(H),g(We,b,I,me,G),s(b.getComponent())&&se++,I.ascend()}else{const ae=Z($,H);I.descend(H),g(re(H),b,I,ae,G),I.ascend()}re.end()}(m.clone(),m,D,d,!1)),D.get()}function Xt(i,d){return ce(Se(i,d))}const dt=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]=dt(D))}return d};function ft(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=[],$=[],G=[],p=[],M=[],se=[],re=[],H=[],ae=[];let We=0;const Ie=n.readCursor(i),me=n.readCursor(d),le=n.writeCursor();if(function ee(P,L=null,A){const T=a(L);T&&(T.r!==void 0?A=L.clone():T.p!=null&&(A=null,b[T.p]=P.clone()));const U=P.getComponent();let X;U&&(X=U.p)!=null&&(v[X]=L?L.clone():null,N[X]=P.clone(),A&&(p[X]=!0,G[X]=A),T&&T.p!=null&&(H[X]=T.p));const J=n.advancer(L);for(const te of P)ee(P,J(te),A);J.end()}(me,Ie,null),function ee(P,L,A,T,U){const X=A.getComponent();let J,te=!1;X&&((J=X.d)!=null?(g[J]=A.clone(),T!=null&&(ae[T]==null&&(ae[T]=[]),ae[T].push(J)),P=v[J]||null,L=N[J]||null,p[J]?(U&&(M[J]=!0),U=G[J]||null):!U||D!==1&&H[J]!=null||O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.moveOp(L.getPath(),A.getPath())}),te=!0):X.i!==void 0&&(P=L=null,te=!0,U&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.insertOp(A.getPath(),X.i)})));const pe=a(P);pe&&(pe.r!==void 0?U=P.clone():pe.p!=null&&(pe.p,T=pe.p,U=null));const he=be(X);he&&U&&O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.removeOp(U.getPath()),op2:l.editOp(A.getPath(),he,f(X),!0)});let ue=0,we=0;const V=n.advancer(L,(B,ye)=>_(ye)?ue-B-1:B-ue,(B,ye)=>{_(ye)&&ue++}),S=n.advancer(P);for(const B of A)if(typeof B=="number"){const ye=B-we,Ce=V(ye);we+=+ee(S(ye+ue),Ce,A,T,U)}else{const ye=V(B);ee(S(B),ye,A,T,U)}return V.end(),S.end(),te}(Ie,me,me.clone(),null,null),g.map(ee=>ee&&ee.get()),O)return{ok:!1,conflict:O};M.map(ee=>!!ee);const Pe=[];let Ue=null;(function ee(P,L,A,T,U){let X=!1;const J=a(L);if(_(J)){const V=J.p;V!=null?(A=g[V],T=se[V]=n.writeCursor(),X=!0,U=null):(A=null,U=L.clone())}else s(a(A))&&(A=null);const te=P.getComponent();if(te){const V=te.p;V!=null?(U&&($[V]=U),Pe[V]=U||D===1&&X?null:T.getComponent(),C[V]=P.clone(),A&&(I[V]=A.clone())):te.r!==void 0&&(U||T.write("r",!0),(U||X)&&(Ue==null&&(Ue=new Set),Ue.add(te)))}let pe=0,he=0;const ue=n.advancer(L,void 0,(V,S)=>{_(S)&&pe++}),we=n.advancer(A,(V,S)=>s(S)?~(V-he):V-he,(V,S)=>{s(S)&&he++});if(P)for(const V of P)if(typeof V=="string"){const S=ue(V),B=we(V);T.descend(V),ee(P,S,B,T,U),T.ascend()}else{const S=ue(V),B=V-pe,ye=_(a(S))?null:we(B),Ce=B+he;o(Ce>=0),T.descend(Ce),ee(P,S,ye,T,U),T.ascend()}ue.end(),we.end()})(Ie,me,me.clone(),le,null),le.reset();let Fe=[];if(function ee(P,L,A,T,U,X){o(L);const J=L.getComponent();let te=a(T),pe=!1;const he=(k,oe,Oe)=>k?l.moveOp(k.getPath(),oe.getPath()):l.insertOp(oe.getPath(),Oe.i);if(s(J)){const k=J.d;k!=null&&(R[k]=L.clone());const oe=k!=null?Pe[k]:null;let Oe=!1;if(J.i!==void 0||k!=null&&oe){let de;te&&(te.i!==void 0||(de=te.d)!=null&&!p[de])&&(Oe=de!=null?k!=null&&k===H[de]:r.default(te.i,J.i),Oe||de!=null&&D!==1&&H[de]!=null||O==null&&(O={type:u.ConflictType.DROP_COLLISION,op1:he(k!=null?C[k]:null,L,J),op2:he(de!=null?N[de]:null,T,te)})),Oe||(X?O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:he(k!=null?C[k]:null,L,J),op2:l.removeOp(X.getPath())}):(k!=null?(Fe[We]=k,U.write("d",oe.p=We++)):U.write("i",t.default(J.i)),pe=!0))}else if(k!=null&&!oe){const de=$[k];de&&(X=de.clone())}k!=null?(P=C[k],A=b[k],T=I[k]):J.i!==void 0&&(P=A=null,Oe||(T=null))}else _(a(P))&&(P=A=T=null);const ue=a(P),we=a(A);if(_(we)){const k=we.p;we.r!==void 0&&(!ue||ue.r===void 0)||p[k]?(T=null,X=A.clone()):k!=null&&(T=g[k],D!==1&&H[k]!=null||((U=re[k])||(U=re[k]=n.writeCursor()),U.reset(),X=null))}else!s(J)&&s(te)&&(T=null);te=T!=null?T.getComponent():null;const V=be(J);if(V){const k=f(J);if(X)O==null&&(O={type:u.ConflictType.RM_UNEXPECTED_CONTENT,op1:l.editOp(L.getPath(),V,k,!0),op2:l.removeOp(X.getPath())});else{const oe=be(te);let Oe;if(oe){if(V!==oe)throw Error("Transforming incompatible types");const de=f(te);Oe=V.transform(k,de,m)}else Oe=t.default(k);y(U,V,Oe)}}let S=0,B=0,ye=0,Ce=0,Le=0,Ve=0,je=P!=null&&P.descendFirst(),et=je;const Ye=n.advancer(A,void 0,(k,oe)=>{_(oe)&&ye++});let $e=T!=null&&T.descendFirst(),Re=$e;for(const k of L)if(typeof k=="number"){let oe;const Oe=s(L.getComponent()),de=k-B;{let qe;for(;je&&typeof(qe=P.getKey())=="number";){qe+=S;const Ne=P.getComponent(),Ze=_(Ne);if(qe>de||qe===de&&(!Ze||D===0&&Oe))break;if(Ze){S--;const ze=Ne.p;H.includes(ze),Ne.d,a(re[Ne.d]),_(a(re[Ne.d])),(Ne.r===void 0||Ue&&Ue.has(Ne))&&(ze==null||!Pe[ze]||D!==1&&H.includes(ze))||Le--}je=P.nextSibling()}oe=je&&qe===de?P:null}const ke=de-S;let Be=Ye(ke);const ht=ke-ye;let it=null;{let qe,Ne;for(;$e&&typeof(qe=T.getKey())=="number";){Ne=qe-Ce;const Ze=T.getComponent(),ze=s(Ze);if(Ne>ht)break;if(Ne===ht){if(!ze){it=T;break}{if(D===0&&Oe){it=T;break}const Xe=Be&&_(Be.getComponent());if(D===0&&Xe)break}}if(ze){const Xe=Ze.d;H[Xe],Ze.i===void 0&&(p[Xe]||H[Xe]!=null&&D!==1)?(p[Xe]||H[Xe]!=null&&D===0)&&(Ce++,Ve--):Ce++}$e=T.nextSibling()}}const Nt=ht+Ce+Le+Ve;o(Nt>=0,"trying to descend to a negative index"),U.descend(Nt),Oe&&(oe=Be=it=null,B++),ee(oe,L,Be,it,U,X)&&Ve++,U.ascend()}else{let oe;for(;je&&(oe=P.getKey(),typeof oe!="string"||!(oe>k||oe===k));)je=P.nextSibling();const Oe=je&&oe===k?P:null,de=Ye(k);let ke;for(;$e&&(ke=T.getKey(),typeof ke!="string"||!(ke>k||ke===k));)$e=T.nextSibling();const Be=$e&&ke===k?T:null;U.descend(k),ee(Oe,L,de,Be,U,X),U.ascend()}return Ye.end(),et&&P.ascend(),Re&&T.ascend(),pe}(Ie,Ie.clone(),me,me.clone(),le,null),O)return{ok:!1,conflict:O};le.reset();const Ae=(ee,P,L)=>ee.traverse(P,(A,T)=>{A.d!=null&&L(A.d,ee,T)});(p.length||se.length)&&(Ae(me,le,(ee,P,L)=>{p[ee]&&!M[ee]&&L.write("r",!0),se[ee]&&L.mergeTree(se[ee].get())}),le.reset());const De=[],Ge=[];if((re.length||p.length)&&!O){const ee=n.readCursor(dt(le.get()));if(Ae(ee,null,(P,L)=>{De[P]=L.clone()}),re.forEach(P=>{P&&Ae(n.readCursor(P.get()),null,(L,A)=>{De[L]=A.clone()})}),function P(L,A,T,U,X,J){const te=a(A);if(te&&_(te))if(te.p!=null){const S=te.p;De[S].getPath(),T=De[S],U=Ge[S]=n.writeCursor()}else te.r!==void 0&&(T=null);else s(a(T))&&(T=null);const pe=L.getComponent();if(pe){let S;if((S=pe.d)!=null){const B=re[S];B&&(B.get(),U.mergeTree(B.get()),T=n.readCursor(B.get()))}}let he=0,ue=0;const we=n.advancer(A,void 0,(S,B)=>{_(B)&&he--}),V=n.advancer(T,(S,B)=>s(B)?-(S-ue)-1:S-ue,(S,B)=>{s(B)&&ue++});for(const S of L)if(typeof S=="number"){const B=we(S),ye=S+he,Ce=V(ye),Le=ye+ue;U.descend(Le),P(L,B,Ce,U),U.ascend()}else U.descend(S),P(L,we(S),V(S),U),U.ascend();we.end(),V.end()}(me,ee,ee.clone(),le),le.reset(),O)return{ok:!1,conflict:O};if(le.get(),Ge.length){const P=Ge.map(A=>A?A.get():null),L=n.readCursor(dt(le.get()));if(Ae(L,le,(A,T,U)=>{const X=P[A];X&&(U.mergeTree(X),P[A]=null)}),P.find(A=>A)){const A=n.writeCursor(),T=n.writeCursor();let U=0,X=0;P.forEach(J=>{J!=null&&Ae(n.readCursor(J),null,te=>{const pe=Fe[te];A.writeMove(C[pe].getPath(),R[pe].getPath(),U++);const he=ae[pe];he&&he.forEach(ue=>{p[ue]||D!==1&&H[ue]!=null||T.writeMove(N[ue].getPath(),g[ue].getPath(),X++)})})}),O={type:u.ConflictType.BLACKHOLE,op1:A.get(),op2:T.get()}}}}return O?{ok:!1,conflict:O}:{ok:!0,result:le.get()}}const jt=i=>{const d=new Error("Transform detected write conflict");throw d.conflict=i,d.type=d.name="writeConflict",d};function Jt(i,d,m){const D=ft(i,d,m);if(D.ok)return D.result;jt(D.conflict)}const Je=i=>{const d=n.writeCursor();return n.readCursor(i).traverse(d,(m,D)=>{(s(m)||be(m))&&D.write("r",!0)}),d.get()},Yt=(i,d)=>{const{type:m,op1:D,op2:O}=i;switch(m){case u.ConflictType.DROP_COLLISION:return d==="left"?[null,Je(O)]:[Je(D),null];case u.ConflictType.RM_UNEXPECTED_CONTENT:let C=!1;return n.readCursor(D).traverse(null,R=>{R.r!==void 0&&(C=!0)}),C?[null,Je(O)]:[Je(D),null];case u.ConflictType.BLACKHOLE:return[Je(D),Je(O)];default:throw Error("Unrecognised conflict: "+m)}};function kt(i,d,m,D){let O=null;for(;;){const C=ft(d,m,D);if(C.ok)return ie(O,C.result);{const{conflict:R}=C;i(R)||jt(R);const[N,g]=Yt(R,D);d=ie(x(d),N),m=ie(x(m),g),O=ie(O,g)}}}}(Qe)),Qe}var Dt;function Bt(){return Dt||(Dt=1,function(l){var e=xe&&xe.__createBinding||(Object.create?function(u,o,a,E){E===void 0&&(E=a),Object.defineProperty(u,E,{enumerable:!0,get:function(){return o[a]}})}:function(u,o,a,E){E===void 0&&(E=a),u[E]=o[a]}),r=xe&&xe.__exportStar||function(u,o){for(var a in u)a!=="default"&&!o.hasOwnProperty(a)&&e(o,u,a)};Object.defineProperty(l,"__esModule",{value:!0}),r(Lt(),l);var t=vt();Object.defineProperty(l,"ReadCursor",{enumerable:!0,get:function(){return t.ReadCursor}}),Object.defineProperty(l,"WriteCursor",{enumerable:!0,get:function(){return t.WriteCursor}});var n=Ot();Object.defineProperty(l,"ConflictType",{enumerable:!0,get:function(){return n.ConflictType}})}(xe)),xe}var F=Bt();class Tt{constructor(){K(this,"drawingManagerData",{});K(this,"_oldDrawingManagerData",{});K(this,"_focusDrawings",[]);K(this,"_remove$",new ge.Subject);K(this,"remove$",this._remove$.asObservable());K(this,"_add$",new ge.Subject);K(this,"add$",this._add$.asObservable());K(this,"_update$",new ge.Subject);K(this,"update$",this._update$.asObservable());K(this,"_order$",new ge.Subject);K(this,"order$",this._order$.asObservable());K(this,"_group$",new ge.Subject);K(this,"group$",this._group$.asObservable());K(this,"_ungroup$",new ge.Subject);K(this,"ungroup$",this._ungroup$.asObservable());K(this,"_refreshTransform$",new ge.Subject);K(this,"refreshTransform$",this._refreshTransform$.asObservable());K(this,"_visible$",new ge.Subject);K(this,"visible$",this._visible$.asObservable());K(this,"_focus$",new ge.Subject);K(this,"focus$",this._focus$.asObservable());K(this,"_featurePluginUpdate$",new ge.Subject);K(this,"featurePluginUpdate$",this._featurePluginUpdate$.asObservable());K(this,"_featurePluginAdd$",new ge.Subject);K(this,"featurePluginAdd$",this._featurePluginAdd$.asObservable());K(this,"_featurePluginRemove$",new ge.Subject);K(this,"featurePluginRemove$",this._featurePluginRemove$.asObservable());K(this,"_featurePluginOrderUpdate$",new ge.Subject);K(this,"featurePluginOrderUpdate$",this._featurePluginOrderUpdate$.asObservable());K(this,"_featurePluginGroupUpdate$",new ge.Subject);K(this,"featurePluginGroupUpdate$",this._featurePluginGroupUpdate$.asObservable());K(this,"_featurePluginUngroupUpdate$",new ge.Subject);K(this,"featurePluginUngroupUpdate$",this._featurePluginUngroupUpdate$.asObservable());K(this,"_visible",!0);K(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(r=>{const t=this._getCurrentBySearch(r);t!=null&&(t.transform=r.transform,t.transforms=r.transforms,t.isMultiTransform=r.isMultiTransform)}),this.refreshTransformNotification(e)}getDrawingDataForUnit(e){return this.drawingManagerData[e]||{}}removeDrawingDataForUnit(e){const r=this.drawingManagerData[e];if(r==null)return;delete this.drawingManagerData[e];const t=[];Object.keys(r).forEach(n=>{const u=r[n];(u==null?void 0:u.data)!=null&&Object.keys(u.data).forEach(o=>{t.push({unitId:e,subUnitId:n,drawingId:o})})}),t.length>0&&this.removeNotification(t)}registerDrawingData(e,r){this.drawingManagerData[e]=r}initializeNotification(e){const r=[],t=this.drawingManagerData[e];t!=null&&(Object.keys(t).forEach(n=>{this._establishDrawingMap(e,n);const u=t[n];Object.keys(u.data).forEach(o=>{const a=u.data[o];a.unitId=e,a.subUnitId=n,r.push(a)})}),r.length>0&&this.addNotification(r))}getDrawingData(e,r){return this._getDrawingData(e,r)}setDrawingData(e,r,t){this.drawingManagerData[e][r].data=t}getBatchAddOp(e){const r=[],t=[],n=[];e.forEach(W=>{const{op:_,invertOp:s}=this._addByParam(W);r.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),n.push(s)});const u=t.reduce(F.type.compose,null),o=n.reduce(F.type.compose,null),{unitId:a,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:a,subUnitId:E,objects:r}}getBatchRemoveOp(e){const r=[],t=[];e.forEach(E=>{const{op:W,invertOp:_}=this._removeByParam(E);r.unshift(W),t.push(_)});const n=r.reduce(F.type.compose,null),u=t.reduce(F.type.compose,null),{unitId:o,subUnitId:a}=e[0];return{undo:u,redo:n,unitId:o,subUnitId:a,objects:e}}getBatchUpdateOp(e){const r=[],t=[],n=[];e.forEach(W=>{const{op:_,invertOp:s}=this._updateByParam(W);r.push({unitId:W.unitId,subUnitId:W.subUnitId,drawingId:W.drawingId}),t.push(_),n.push(s)});const u=t.reduce(F.type.compose,null),o=n.reduce(F.type.compose,null),{unitId:a,subUnitId:E}=e[0];return{undo:o,redo:u,unitId:a,subUnitId:E,objects:r}}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 r=[],{unitId:t,subUnitId:n}=e[0].parent;e.forEach(a=>{r.push(this._getGroupDrawingOp(a))});const u=r.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:n,objects:e}}getUngroupDrawingOp(e){const r=[],{unitId:t,subUnitId:n}=e[0].parent;e.forEach(a=>{r.push(this._getUngroupDrawingOp(a))});const u=r.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(u,this.drawingManagerData),redo:u,unitId:t,subUnitId:n,objects:e}}getDrawingsByGroup(e){const{unitId:r,subUnitId:t,drawingId:n}=e;if(this.getDrawingByParam({unitId:r,subUnitId:t,drawingId:n})==null)return[];const o=this._getDrawingData(r,t),a=[];return Object.keys(o).forEach(E=>{const W=o[E];W.groupId===n&&a.push(W)}),a}_getGroupDrawingOp(e){const{parent:r,children:t}=e,{unitId:n,subUnitId:u,drawingId:o}=r,a=[];a.push(F.insertOp([n,u,"data",o],r));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),a.push(...this._getUpdateParamCompareOp(W,this.getDrawingByParam({unitId:_,subUnitId:s,drawingId:c})))}),E===Number.NEGATIVE_INFINITY&&(E=this._getDrawingOrder(n,u).length),a.push(F.insertOp([n,u,"order",E],o)),a.reduce(F.type.compose,null)}_getUngroupDrawingOp(e){const{parent:r,children:t}=e,{unitId:n,subUnitId:u,drawingId:o}=r,a=[];return t.forEach(E=>{const{unitId:W,subUnitId:_,drawingId:s}=E;a.push(...this._getUpdateParamCompareOp(E,this.getDrawingByParam({unitId:W,subUnitId:_,drawingId:s})))}),a.push(F.removeOp([n,u,"data",o],!0)),a.push(F.removeOp([n,u,"order",this._getDrawingOrder(n,u).indexOf(o)],!0)),a.reduce(F.type.compose,null)}applyJson1(e,r,t){this._establishDrawingMap(e,r),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[r,t,n]=e.split("#-#");return this._getCurrentBySearch({unitId:r,subUnitId:t,drawingId:n})}focusDrawing(e){if(e==null){this._focusDrawings=[],this._focus$.next([]);return}const r=[];e.forEach(t=>{var E;const{unitId:n,subUnitId:u,drawingId:o}=t,a=(E=this._getDrawingData(n,u))==null?void 0:E[o];a!=null&&r.push(a)}),r.length>0&&(this._focusDrawings=r,this._focus$.next(r))}getFocusDrawings(){const e=[];return this._focusDrawings.forEach(r=>{var a;const{unitId:t,subUnitId:n,drawingId:u}=r,o=(a=this._getDrawingData(t,n))==null?void 0:a[u];o!=null&&e.push(o)}),e}getDrawingOrder(e,r){return this._getDrawingOrder(e,r)}setDrawingOrder(e,r,t){this.drawingManagerData[e][r].order=t}orderUpdateNotification(e){this._order$.next(e)}getForwardDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=[],o=this.getDrawingOrder(r,t),a=[...n];n.forEach(_=>{const s=this._hasDrawingOrder({unitId:r,subUnitId:t,drawingId:_});if(s===-1||s===o.length-1)return;const c=F.moveOp([r,t,"order",s],[r,t,"order",s+1]);u.push(c),a.includes(o[s+1])||a.push(o[s+1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:r,subUnitId:t,objects:{...e,drawingIds:a}}}getBackwardDrawingOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=[],o=this.getDrawingOrder(r,t),a=[...n];n.forEach(_=>{const s=this._hasDrawingOrder({unitId:r,subUnitId:t,drawingId:_});if(s===-1||s===0)return;const c=F.moveOp([r,t,"order",s],[r,t,"order",s-1]);u.push(c),a.includes(o[s-1])||a.push(o[s-1])});const E=u.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(E,this.drawingManagerData),redo:E,unitId:r,subUnitId:t,objects:{...e,drawingIds:a}}}getFrontDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=this._getOrderFromSearchParams(r,t,n),o=[...n],a=this.getDrawingOrder(r,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=this._getDrawingCount(r,t)-1,j=F.moveOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(c)],[r,t,"order",h]);E.push(j),o.includes(a[h])||o.push(a[h])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:r,subUnitId:t,objects:{...e,drawingIds:o}}}getBackDrawingsOp(e){const{unitId:r,subUnitId:t,drawingIds:n}=e,u=this._getOrderFromSearchParams(r,t,n,!0),o=[...n],a=this.getDrawingOrder(r,t),E=[];u.forEach(s=>{const{drawingId:c}=s,h=F.moveOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(c)],[r,t,"order",0]);E.push(h),o.includes(a[0])||o.push(a[0])});const W=E.reduce(F.type.compose,null);return{undo:F.type.invertWithDoc(W,this.drawingManagerData),redo:W,unitId:r,subUnitId:t,objects:{...e,drawingIds:o}}}_getDrawingCount(e,r){return this.getDrawingOrder(e,r).length||0}_getOrderFromSearchParams(e,r,t,n=!1){return t.map(u=>{const o=this._hasDrawingOrder({unitId:e,subUnitId:r,drawingId:u});return{drawingId:u,zIndex:o}}).sort(n===!1?Y.sortRules:Y.sortRulesByDesc)}_hasDrawingOrder(e){if(e==null)return-1;const{unitId:r,subUnitId:t,drawingId:n}=e;return this._establishDrawingMap(r,t),this._getDrawingOrder(r,t).indexOf(n)}_getCurrentBySearch(e){var u,o,a;if(e==null)return;const{unitId:r,subUnitId:t,drawingId:n}=e;return(a=(o=(u=this.drawingManagerData[r])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:a[n]}_getOldBySearch(e){var u,o,a;if(e==null)return;const{unitId:r,subUnitId:t,drawingId:n}=e;return(a=(o=(u=this._oldDrawingManagerData[r])==null?void 0:u[t])==null?void 0:o.data)==null?void 0:a[n]}_establishDrawingMap(e,r,t){var n;return this.drawingManagerData[e]||(this.drawingManagerData[e]={}),this.drawingManagerData[e][r]||(this.drawingManagerData[e][r]={data:{},order:[]}),t==null?null:(n=this.drawingManagerData[e][r].data)==null?void 0:n[t]}_addByParam(e){const{unitId:r,subUnitId:t,drawingId:n}=e;this._establishDrawingMap(r,t,n);const u=F.insertOp([r,t,"data",n],e),o=F.insertOp([r,t,"order",this._getDrawingOrder(r,t).length],n),a=[u,o].reduce(F.type.compose,null),E=F.type.invertWithDoc(a,this.drawingManagerData);return{op:a,invertOp:E}}_removeByParam(e){if(e==null)return{op:[],invertOp:[]};const{unitId:r,subUnitId:t,drawingId:n}=e;if(this._establishDrawingMap(r,t,n)==null)return{op:[],invertOp:[]};const o=F.removeOp([r,t,"data",n],!0),a=F.removeOp([r,t,"order",this._getDrawingOrder(r,t).indexOf(n)],!0),E=[o,a].reduce(F.type.compose,null),W=F.type.invertWithDoc(E,this.drawingManagerData);return{op:E,invertOp:W}}_updateByParam(e){const{unitId:r,subUnitId:t,drawingId:n}=e,u=this._establishDrawingMap(r,t,n);if(u==null)return{op:[],invertOp:[]};const a=this._getUpdateParamCompareOp(e,u).reduce(F.type.compose,null),E=F.type.invertWithDoc(a,this.drawingManagerData);return{op:a,invertOp:E}}_getUpdateParamCompareOp(e,r){const{unitId:t,subUnitId:n,drawingId:u}=e,o=[];return Object.keys(e).forEach(a=>{const E=e[a],W=r[a];W!==E&&o.push(F.replaceOp([t,n,"data",u,a],W,E))}),o}_getDrawingData(e,r){var t,n;return((n=(t=this.drawingManagerData[e])==null?void 0:t[r])==null?void 0:n.data)||{}}_getDrawingOrder(e,r){var t,n;return((n=(t=this.drawingManagerData[e])==null?void 0:t[r])==null?void 0:n.order)||[]}getDrawingVisible(){return this._visible}getDrawingEditable(){return this._editable}setDrawingVisible(e){this._visible=e}setDrawingEditable(e){this._editable=e}}class St extends Tt{}function qt({unitId:l,subUnitId:e,drawingId:r},t){return typeof t=="number"?`${l}#-#${e}#-#${r}#-#${t}`:`${l}#-#${e}#-#${r}`}const xt=async l=>new Promise((e,r)=>{const t=new Image;t.src=l,t.onload=()=>{e({width:t.width,height:t.height,image:t})},t.onerror=n=>{r(n)}}),Ht="drawing.config",Pt={},At=Y.createIdentifier("univer.drawing-manager.service");class Mt{constructor(){K(this,"_waitCount",0);K(this,"_change$",new ge.Subject);K(this,"change$",this._change$);K(this,"_imageSourceCache",new Map)}setWaitCount(e){this._waitCount=e,this._change$.next(e)}getImageSourceCache(e,r){if(r===Y.ImageSourceType.BASE64){const t=new Image;return t.src=e,t}return this._imageSourceCache.get(e)}addImageSourceCache(e,r,t){r===Y.ImageSourceType.BASE64||t==null||this._imageSourceCache.set(e,t)}async getImage(e){return Promise.resolve(e)}async saveImage(e){return new Promise((r,t)=>{if(!gt.includes(e.type)){t(new Error(Y.ImageUploadStatusType.ERROR_IMAGE_TYPE)),this._decreaseWaiting();return}if(e.size>5242880){t(new Error(Y.ImageUploadStatusType.ERROR_EXCEED_SIZE)),this._decreaseWaiting();return}const n=new FileReader;n.readAsDataURL(e),n.onload=u=>{var E;const o=(E=u.target)==null?void 0:E.result;if(o==null){t(new Error(Y.ImageUploadStatusType.ERROR_IMAGE)),this._decreaseWaiting();return}const a=Y.Tools.generateRandomId(6);r({imageId:a,imageSourceType:Y.ImageSourceType.BASE64,source:o,base64Cache:o,status:Y.ImageUploadStatusType.SUCCUSS}),this._decreaseWaiting()}})}_decreaseWaiting(){this._waitCount-=1,this._change$.next(this._waitCount)}}var Kt=Object.defineProperty,Ft=Object.getOwnPropertyDescriptor,Vt=(l,e,r,t)=>{for(var n=t>1?void 0:t?Ft(e,r):e,u=l.length-1,o;u>=0;u--)(o=l[u])&&(n=(t?o(e,r,n):o(n))||n);return t&&n&&Kt(e,r,n),n},Ut=(l,e)=>(r,t)=>e(r,t,l);const zt="UNIVER_DRAWING_PLUGIN";ne.UniverDrawingPlugin=(ct=class extends Y.Plugin{constructor(e=Pt,r,t){super(),this._config=e,this._injector=r,this._configService=t;const{...n}=Y.merge({},Pt,this._config);this._configService.setConfig(Ht,n)}onStarting(){this._initDependencies()}_initDependencies(){var t;const e=[[Y.IImageIoService,{useClass:Mt}],[At,{useClass:St}]];Y.mergeOverrideWithDependencies(e,(t=this._config)==null?void 0:t.override).forEach(n=>this._injector.add(n))}},K(ct,"pluginName",zt),ct),ne.UniverDrawingPlugin=Vt([Ut(1,Y.Inject(Y.Injector)),Ut(2,Y.IConfigService)],ne.UniverDrawingPlugin),Object.defineProperty(ne,"IImageIoService",{enumerable:!0,get:()=>Y.IImageIoService}),Object.defineProperty(ne,"ImageSourceType",{enumerable:!0,get:()=>Y.ImageSourceType}),Object.defineProperty(ne,"ImageUploadStatusType",{enumerable:!0,get:()=>Y.ImageUploadStatusType}),ne.DRAWING_IMAGE_ALLOW_IMAGE_LIST=gt,ne.DRAWING_IMAGE_ALLOW_SIZE=5242880,ne.DRAWING_IMAGE_COUNT_LIMIT=10,ne.DRAWING_IMAGE_HEIGHT_LIMIT=500,ne.DRAWING_IMAGE_WIDTH_LIMIT=500,ne.DrawingManagerService=St,ne.IDrawingManagerService=At,ne.ImageIoService=Mt,ne.UnitDrawingService=Tt,ne.getDrawingShapeKeyByDrawingSearch=qt,ne.getImageSize=xt,Object.defineProperty(ne,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/drawing",
3
- "version": "0.5.1",
3
+ "version": "0.5.2-nightly.202412281605",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "author": "DreamNum <developer@univer.ai>",
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "ot-json1": "^1.0.2",
50
- "@univerjs/core": "0.5.1"
50
+ "@univerjs/core": "0.5.2-nightly.202412281605"
51
51
  },
52
52
  "devDependencies": {
53
53
  "rxjs": "^7.8.1",
54
54
  "typescript": "^5.7.2",
55
- "vite": "^6.0.1",
56
- "vitest": "^2.1.6",
57
- "@univerjs-infra/shared": "0.5.1"
55
+ "vite": "^6.0.3",
56
+ "vitest": "^2.1.8",
57
+ "@univerjs-infra/shared": "0.5.2"
58
58
  },
59
59
  "space": {
60
60
  ".": {
package/LICENSE DELETED
@@ -1,176 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS