@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 +1 -1
- package/lib/es/index.js +73 -69
- package/lib/umd/index.js +1 -1
- package/package.json +5 -5
- package/LICENSE +0 -176
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
|
|
2
|
-
var
|
|
3
|
-
var F = (a, e, n) =>
|
|
4
|
-
import { sortRules as
|
|
5
|
-
import { IImageIoService as
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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:
|
|
725
|
+
transform: St,
|
|
726
726
|
makeInvertible: De,
|
|
727
727
|
invert: le,
|
|
728
|
-
invertWithDoc:
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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] =
|
|
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
|
|
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(
|
|
1471
|
-
var t =
|
|
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 =
|
|
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 =
|
|
1484
|
-
class
|
|
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 ?
|
|
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
|
|
1893
|
+
class rn extends nn {
|
|
1894
1894
|
}
|
|
1895
|
-
function
|
|
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
|
|
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
|
-
}),
|
|
1910
|
-
class
|
|
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 (!
|
|
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 >
|
|
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 =
|
|
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
|
|
1967
|
-
for (var r = t > 1 ? void 0 : t ?
|
|
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 &&
|
|
1970
|
-
},
|
|
1971
|
-
const
|
|
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
|
|
1974
|
-
constructor(a =
|
|
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 } =
|
|
1977
|
-
|
|
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
|
-
|
|
1985
|
-
[
|
|
1986
|
-
[
|
|
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",
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
],
|
|
1993
|
+
}, F(dt, "pluginName", dn), dt);
|
|
1994
|
+
At = cn([
|
|
1995
|
+
Tt(1, Gt(Lt)),
|
|
1996
|
+
Tt(2, Vt)
|
|
1997
|
+
], At);
|
|
1994
1998
|
export {
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
56
|
-
"vitest": "^2.1.
|
|
57
|
-
"@univerjs-infra/shared": "0.5.
|
|
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
|