UNPKG

@univerjs/sheets

Version:

UniverSheet normal base-sheets

3 lines • 362 kB
(function(g,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("@univerjs/core"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/rpc")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/rpc"],i):(g=typeof globalThis<"u"?globalThis:g||self,i(g.UniverSheets={},g.UniverCore,g.rxjs,g.UniverEngineFormula,g.rxjs.operators,g.UniverRpc))})(this,(function(g,i,O,Z,Ht,Ba){"use strict";var Ah=Object.defineProperty;var Wh=(g,i,O)=>i in g?Ah(g,i,{enumerable:!0,configurable:!0,writable:!0,value:O}):g[i]=O;var v=(g,i,O)=>Wh(g,typeof i!="symbol"?i+"":i,O);function ja(s,n,e){var r,a,l;if(n.t)return n.t;if(n.v===null)return null;const t=s.getStyleByCell(n),o=s.getStyleByCell(e);if(e.t===i.CellValueType.FORCE_STRING){if(!i.isTextFormat((r=o==null?void 0:o.n)==null?void 0:r.pattern)&&n.v!==void 0){if(i.isRealNum(n.v))return i.CellValueType.NUMBER;if(i.isBooleanString(`${n.v}`))return i.CellValueType.BOOLEAN}return i.CellValueType.FORCE_STRING}return Ga(t)?i.isTextFormat((a=t==null?void 0:t.n)==null?void 0:a.pattern)?i.CellValueType.STRING:Vo(n,e):i.isTextFormat((l=o==null?void 0:o.n)==null?void 0:l.pattern)?i.CellValueType.STRING:Vo(n,e)}function Vo(s,n){return s.v!==void 0?ls(s.v,s.t):ls(n.v,n.t)}function Ga(s){var n;return!!((n=s==null?void 0:s.n)!=null&&n.pattern)}function ls(s,n){return s===null?null:typeof s=="string"?i.isRealNum(s)?(+s==0||+s==1)&&n===i.CellValueType.BOOLEAN?i.CellValueType.BOOLEAN:n!==i.CellValueType.STRING&&n!==i.CellValueType.FORCE_STRING&&i.willLoseNumericPrecision(s)?i.CellValueType.FORCE_STRING:i.CellValueType.NUMBER:i.isBooleanString(s)?i.CellValueType.BOOLEAN:i.CellValueType.STRING:typeof s=="number"?(s===0||s===1)&&n===i.CellValueType.BOOLEAN?i.CellValueType.BOOLEAN:i.CellValueType.NUMBER:typeof s=="boolean"?i.CellValueType.BOOLEAN:i.CellValueType.FORCE_STRING}function us(s,n){const{unitId:e}=n,t=e?s.getUnit(e,i.UniverInstanceType.UNIVER_SHEET):s.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET);return t?{workbook:t,unitId:t.getUnitId()}:null}function T(s,n={}){const{unitId:e,subUnitId:t}=n,o=e?s.getUnit(e,i.UniverInstanceType.UNIVER_SHEET):s.getCurrentUnitOfType(i.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const r=t?o.getSheetBySheetId(t):o.getActiveSheet(!0);return r?{worksheet:r,workbook:o,unitId:o.getUnitId(),subUnitId:r.getSheetId()}:null}function ee(s,n){const{unitId:e,subUnitId:t}=n,o=s.getUnit(e,i.UniverInstanceType.UNIVER_SHEET);if(!o)return null;const r=o.getSheetBySheetId(t);return r?{worksheet:r,workbook:o}:null}const fe=(s,n)=>{if(!ee(s.get(i.IUniverInstanceService),n))throw new Error("Workbook or worksheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:i.Tools.deepClone(n.ranges)}},q={id:"sheet.mutation.add-worksheet-merge",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("Workbook or worksheet is null error!");const{worksheet:t}=e,r=t.getConfig().mergeData,a=n.ranges;for(let l=0;l<a.length;l++)r.push(a[l]);return t.getSpanModel().rebuild(r),!0}},za=i.createInterceptorKey("CELL_CONTENT"),qa=i.createInterceptorKey("ROW_FILTERED"),Ve={CELL_CONTENT:za,ROW_FILTERED:qa};var Lo=(s=>(s[s.DATA_VALIDATION=9]="DATA_VALIDATION",s[s.NUMFMT=10]="NUMFMT",s[s.CELL_IMAGE=11]="CELL_IMAGE",s))(Lo||{});const Ho="sheet.interceptor.range-theme-id",Fo="sheet.interceptor.ignore-range-theme";var xa=Object.getOwnPropertyDescriptor,Ya=(s,n,e,t)=>{for(var o=t>1?void 0:t?xa(n,e):n,r=s.length-1,a;r>=0;r--)(a=s[r])&&(o=a(o)||o);return o},Ka=(s,n)=>(e,t)=>n(e,t,s);const ds=i.createInterceptorKey("BEFORE_CELL_EDIT"),fn=i.createInterceptorKey("AFTER_CELL_EDIT"),Rn=i.createInterceptorKey("VALIDATE_CELL");g.SheetInterceptorService=class extends i.Disposable{constructor(e){super();v(this,"_interceptorsByName",new Map);v(this,"_commandInterceptors",[]);v(this,"_rangeInterceptors",[]);v(this,"_autoHeightInterceptors",[]);v(this,"_beforeCommandInterceptor",[]);v(this,"_afterCommandInterceptors",[]);v(this,"_workbookDisposables",new Map);v(this,"_worksheetDisposables",new Map);v(this,"_interceptorsDirty",!1);v(this,"_composedInterceptorByKey",new Map);v(this,"writeCellInterceptor",new i.InterceptorManager({BEFORE_CELL_EDIT:ds,AFTER_CELL_EDIT:fn,VALIDATE_CELL:Rn}));this._univerInstanceService=e,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(i.UniverInstanceType.UNIVER_SHEET).subscribe(t=>{this._interceptWorkbook(t)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(i.UniverInstanceType.UNIVER_SHEET).subscribe(t=>this._disposeWorkbookInterceptor(t))),this.intercept(Ve.CELL_CONTENT,{priority:-1,effect:i.InterceptorEffectEnum.Style|i.InterceptorEffectEnum.Value,handler:t=>t}),this.disposeWithMe(this.writeCellInterceptor.intercept(fn,{priority:-1,handler:t=>t})),this.disposeWithMe(this.writeCellInterceptor.intercept(ds,{priority:-1,handler:t=>t})),this.disposeWithMe(this.writeCellInterceptor.intercept(Rn,{priority:-1,handler:t=>t}))}dispose(){super.dispose(),this._workbookDisposables.forEach(e=>e.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.forEach(e=>e.dispose()),this._worksheetDisposables.clear(),this._interceptorsByName.clear()}interceptCommand(e){if(this._commandInterceptors.includes(e))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(e),this._commandInterceptors.sort((t,o)=>{var r,a;return((r=o.priority)!=null?r:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(i.toDisposable(()=>i.remove(this._commandInterceptors,e)))}onCommandExecute(e){const t=this._commandInterceptors.map(o=>o.getMutations(e));return{preUndos:t.map(o=>{var r;return(r=o.preUndos)!=null?r:[]}).flat(),undos:t.map(o=>o.undos).flat(),preRedos:t.map(o=>{var r;return(r=o.preRedos)!=null?r:[]}).flat(),redos:t.map(o=>o.redos).flat()}}interceptAfterCommand(e){if(this._afterCommandInterceptors.includes(e))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._afterCommandInterceptors.push(e),this._afterCommandInterceptors.sort((t,o)=>{var r,a;return((r=o.priority)!=null?r:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(i.toDisposable(()=>i.remove(this._afterCommandInterceptors,e)))}afterCommandExecute(e){const t=this._afterCommandInterceptors.map(o=>o.getMutations(e));return{undos:t.map(o=>o.undos).flat(),redos:t.map(o=>o.redos).flat()}}interceptAutoHeight(e){if(this._autoHeightInterceptors.includes(e))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._autoHeightInterceptors.push(e),this._autoHeightInterceptors.sort((t,o)=>{var r,a;return((r=o.priority)!=null?r:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(i.toDisposable(()=>i.remove(this._autoHeightInterceptors,e)))}generateMutationsOfAutoHeight(e){const t=this._autoHeightInterceptors.map(o=>o.getMutations(e));return{preUndos:t.map(o=>{var r;return(r=o.preUndos)!=null?r:[]}).flat(),undos:t.map(o=>o.undos).flat(),preRedos:t.map(o=>{var r;return(r=o.preRedos)!=null?r:[]}).flat(),redos:t.map(o=>o.redos).flat()}}interceptBeforeCommand(e){if(this._beforeCommandInterceptor.includes(e))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._beforeCommandInterceptor.push(e),this._beforeCommandInterceptor.sort((t,o)=>{var r,a;return((r=o.priority)!=null?r:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(i.toDisposable(()=>i.remove(this._beforeCommandInterceptor,e)))}async beforeCommandExecute(e){return(await Promise.all(this._beforeCommandInterceptor.map(o=>o.performCheck(e)))).every(o=>o)}interceptRanges(e){if(this._rangeInterceptors.includes(e))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._rangeInterceptors.push(e),this._rangeInterceptors.sort((t,o)=>{var r,a;return((r=o.priority)!=null?r:0)-((a=t.priority)!=null?a:0)}),this.disposeWithMe(i.toDisposable(()=>i.remove(this._rangeInterceptors,e)))}generateMutationsByRanges(e){const t=this._rangeInterceptors.map(o=>o.getMutations(e));return{preUndos:t.map(o=>{var r;return(r=o.preUndos)!=null?r:[]}).flat(),undos:t.map(o=>o.undos).flat(),preRedos:t.map(o=>{var r;return(r=o.preRedos)!=null?r:[]}).flat(),redos:t.map(o=>o.redos).flat()}}onWriteCell(e,t,o,r,a){const l={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:o,col:r,origin:i.Tools.deepClone(a)};return this.writeCellInterceptor.fetchThroughInterceptors(fn)(a,l)}onValidateCell(e,t,o,r){const a={subUnitId:t.getSheetId(),unitId:e.getUnitId(),workbook:e,worksheet:t,row:o,col:r};return this.writeCellInterceptor.fetchThroughInterceptors(Rn)(Promise.resolve(!0),a)}intercept(e,t){const o=e;this._interceptorsByName.has(o)||this._interceptorsByName.set(o,[]);const r=this._interceptorsByName.get(o);r.push(t);const a=r.sort((l,u)=>{var d,c;return((d=u.priority)!=null?d:0)-((c=l.priority)!=null?c:0)});if(this._interceptorsDirty=!0,o===Ve.CELL_CONTENT){const l=i.InterceptorEffectEnum.Style|i.InterceptorEffectEnum.Value;this._interceptorsByName.set(`${o}-${l}`,a);const u=i.InterceptorEffectEnum.Style|i.InterceptorEffectEnum.Value;return this._interceptorsByName.set(`${o}-${i.InterceptorEffectEnum.Style}`,a.filter(d=>((d.effect||u)&i.InterceptorEffectEnum.Style)>0)),this._interceptorsByName.set(`${o}-${i.InterceptorEffectEnum.Value}`,a.filter(d=>((d.effect||u)&i.InterceptorEffectEnum.Value)>0)),this.disposeWithMe(i.toDisposable(()=>{i.remove(this._interceptorsByName.get(o),t),i.remove(this._interceptorsByName.get(`${o}-${l}`),t),i.remove(this._interceptorsByName.get(`${o}-${i.InterceptorEffectEnum.Style}`),t),i.remove(this._interceptorsByName.get(`${o}-${i.InterceptorEffectEnum.Value}`),t)}))}else return this._interceptorsByName.set(o,a),this.disposeWithMe(i.toDisposable(()=>i.remove(this._interceptorsByName.get(o),t)))}fetchThroughInterceptors(e,t,o,r){const a=t===void 0?e:`${e}-${t}`,l=o!=null?o:a;let u=this._composedInterceptorByKey.get(l);if(!u||!this._interceptorsDirty){let d=this._interceptorsByName.get(a);d&&r&&(d=d.filter(r)),u=i.composeInterceptors(d||[]),this._composedInterceptorByKey.set(l,u)}return u}_interceptWorkbook(e){const t=new i.DisposableCollection,o=e.getUnitId(),r=this,a=l=>{const u=l.getSheetId();l.__interceptViewModel(d=>{const c=new i.DisposableCollection;r._worksheetDisposables.set(Bo(o,l),c),c.add(d.registerCellContentInterceptor({getCell(h,m,f,R,C){const S=l.getCellRaw(h,m);return r.fetchThroughInterceptors(Ve.CELL_CONTENT,f,R,C)(S,{unitId:o,subUnitId:u,row:h,col:m,worksheet:l,workbook:e,rawData:S})}})),c.add(d.registerRowFilteredInterceptor({getRowFiltered(h){return!!r.fetchThroughInterceptors(Ve.ROW_FILTERED)(!1,{unitId:o,subUnitId:u,row:h,workbook:e,worksheet:l})}}))})};e.getSheets().forEach(l=>a(l)),t.add(e.sheetCreated$.subscribe(l=>a(l))),t.add(i.toDisposable(()=>e.getSheets().forEach(l=>this._disposeSheetInterceptor(o,l)))),t.add(e.sheetDisposed$.subscribe(l=>this._disposeSheetInterceptor(o,l))),this._workbookDisposables.set(o,t)}_disposeWorkbookInterceptor(e){const t=e.getUnitId(),o=this._workbookDisposables.get(t);o&&(o.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(e,t){const o=Bo(e,t),r=this._worksheetDisposables.get(o);r&&(r.dispose(),this._worksheetDisposables.delete(o))}},g.SheetInterceptorService=Ya([Ka(0,i.IUniverInstanceService)],g.SheetInterceptorService);function Bo(s,n){return`${s}|${n.getSheetId()}`}const ne=s=>{const n={};return s.bg&&(n.bg={...s.bg}),s.ol&&(n.ol={...s.ol}),s.bd&&(n.bd={...s.bd}),s.cl&&(n.cl={...s.cl}),s.ht&&(n.ht=s.ht),s.vt&&(n.vt=s.vt),s.bl!==void 0&&(n.bl=s.bl),n};function Ja(s){const n={};if(s.length===1)return s[0];for(const e of s)e.bg&&(n.bg=e.bg),e.ol&&(n.ol=e.ol),e.bd&&(n.bd={...n.bd,...e.bd}),e.cl&&(n.cl=e.cl),e.ht&&(n.ht=e.ht),e.vt&&(n.vt=e.vt),e.bl!==void 0&&(n.bl=e.bl);return n}const Q={wholeStyle:1,headerRowStyle:2,headerColumnStyle:4,firstRowStyle:8,secondRowStyle:16,lastRowStyle:32,firstColumnStyle:128,secondColumnStyle:256,lastColumnStyle:512};class Le{constructor(n,e){v(this,"_name");v(this,"wholeStyle",null);v(this,"headerRowStyle",null);v(this,"headerColumnStyle",null);v(this,"firstRowStyle",null);v(this,"secondRowStyle",null);v(this,"lastRowStyle",null);v(this,"firstColumnStyle",null);v(this,"secondColumnStyle",null);v(this,"lastColumnStyle",null);v(this,"_mergeCacheMap",new Map);e&&this.fromJson({...e,name:n}),this._name=n}getName(){return this._name}getWholeStyle(){return this.wholeStyle}setWholeStyle(n){this.wholeStyle=n,this._resetStyleCache()}getFirstRowStyle(){return this.firstRowStyle}setFirstRowStyle(n){this.firstRowStyle=n,this._resetStyleCache()}getSecondRowStyle(){return this.secondRowStyle}setSecondRowStyle(n){this.secondRowStyle=n,this._resetStyleCache()}getLastRowStyle(){return this.lastRowStyle}setLastRowStyle(n){this.lastRowStyle=n,this._resetStyleCache()}getFirstColumnStyle(){return this.firstColumnStyle}setFirstColumnStyle(n){this.firstColumnStyle=n,this._resetStyleCache()}getSecondColumnStyle(){return this.secondColumnStyle}setSecondColumnStyle(n){this.secondColumnStyle=n,this._resetStyleCache()}getLastColumnStyle(){return this.lastColumnStyle}setLastColumnStyle(n){this.lastColumnStyle=n,this._resetStyleCache()}getHeaderRowStyle(){return this.headerRowStyle}setHeaderRowStyle(n){this.headerRowStyle=n,this._resetStyleCache()}getHeaderColumnStyle(){return this.headerColumnStyle}setHeaderColumnStyle(n){this.headerColumnStyle=n,this._resetStyleCache()}getStyle(n,e,t,o,r){let a=0;return t&&(a=a|Q.lastRowStyle),o&&(a=a|Q.lastColumnStyle),n>=0&&e>=0&&(a=a|Q.wholeStyle),n%2===1&&(a=a|(r?Q.secondRowStyle:Q.firstRowStyle)),n%2===0&&(a=a|(r?Q.firstRowStyle:Q.secondRowStyle)),n===0&&(a=a|Q.headerRowStyle),e===0&&(a=a|Q.headerColumnStyle),e%2===1&&(a=a|Q.firstColumnStyle),e%2===0&&(a=a|Q.secondColumnStyle),a===0?null:this._getMergeStyle(a)}_getMergeStyle(n){let e=this._mergeCacheMap.get(n);return e||(e=this._mergeStyle(n),this._mergeCacheMap.set(n,e)),e}_mergeStyle(n){const e=[];return this.wholeStyle&&n&Q.wholeStyle&&e.push(this.wholeStyle),this.firstColumnStyle&&n&Q.firstColumnStyle&&e.push(this.firstColumnStyle),this.secondColumnStyle&&n&Q.secondColumnStyle&&e.push(this.secondColumnStyle),this.firstRowStyle&&n&Q.firstRowStyle&&e.push(this.firstRowStyle),this.secondRowStyle&&n&Q.secondRowStyle&&e.push(this.secondRowStyle),this.headerColumnStyle&&n&Q.headerColumnStyle&&e.push(this.headerColumnStyle),this.lastColumnStyle&&n&Q.lastColumnStyle&&e.push(this.lastColumnStyle),this.headerRowStyle&&n&Q.headerRowStyle&&e.push(this.headerRowStyle),this.lastRowStyle&&n&Q.lastRowStyle&&e.push(this.lastRowStyle),Ja(e)}_resetStyleCache(){this._mergeCacheMap.clear()}toJson(){const n={name:this._name};return this.wholeStyle&&(n.wholeStyle=ne(this.wholeStyle)),this.headerRowStyle&&(n.headerRowStyle=ne(this.headerRowStyle)),this.headerColumnStyle&&(n.headerColumnStyle=ne(this.headerColumnStyle)),this.firstRowStyle&&(n.firstRowStyle=ne(this.firstRowStyle)),this.secondRowStyle&&(n.secondRowStyle=ne(this.secondRowStyle)),this.lastRowStyle&&(n.lastRowStyle=ne(this.lastRowStyle)),this.firstColumnStyle&&(n.firstColumnStyle=ne(this.firstColumnStyle)),this.secondColumnStyle&&(n.secondColumnStyle=ne(this.secondColumnStyle)),this.lastColumnStyle&&(n.lastColumnStyle=ne(this.lastColumnStyle)),n}fromJson(n){this._name=n.name,n.wholeStyle&&(this.wholeStyle=ne(n.wholeStyle)),n.headerRowStyle&&(this.headerRowStyle=ne(n.headerRowStyle)),n.headerColumnStyle&&(this.headerColumnStyle=ne(n.headerColumnStyle)),n.firstRowStyle&&(this.firstRowStyle=ne(n.firstRowStyle)),n.secondRowStyle&&(this.secondRowStyle=ne(n.secondRowStyle)),n.lastRowStyle&&(this.lastRowStyle=ne(n.lastRowStyle)),n.firstColumnStyle&&(this.firstColumnStyle=ne(n.firstColumnStyle)),n.secondColumnStyle&&(this.secondColumnStyle=ne(n.secondColumnStyle)),n.lastColumnStyle&&(this.lastColumnStyle=ne(n.lastColumnStyle))}dispose(){this._mergeCacheMap.clear()}}const Za=(s,n,e)=>new Le(`light-${s}`,{headerRowStyle:{bg:{rgb:n}},firstColumnStyle:{bg:{rgb:"rgb(255, 255, 255)"}},secondColumnStyle:{bg:{rgb:e}},lastRowStyle:{bg:{rgb:n}}}),Xa=(s,n,e)=>new Le(`middle-${s}`,{headerRowStyle:{bg:{rgb:n}},headerColumnStyle:{bg:{rgb:e}},secondRowStyle:{bg:{rgb:e}},lastRowStyle:{bg:{rgb:n}},lastColumnStyle:{bg:{rgb:e}}}),Qa=(s,n,e,t)=>new Le(`dark-${s}`,{headerRowStyle:{bg:{rgb:n},cl:{rgb:"rgb(255, 255, 255)"},ht:i.HorizontalAlign.CENTER,bl:i.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:e}},secondRowStyle:{bg:{rgb:t}},lastRowStyle:{bg:{rgb:n}}}),el=[{baseName:"blue",header:"rgb(164, 202, 254)",color:"rgb(225, 239, 254)"},{baseName:"grey",header:"rgb(205, 208, 216)",color:"rgb(238, 239, 241)"},{baseName:"red",header:"rgb(248, 180, 180)",color:"rgb(253, 232, 232)"},{baseName:"orange",header:"rgb(253, 186, 140)",color:"rgb(254, 236, 220)"},{baseName:"yellow",header:"rgb(250, 200, 21)",color:"rgb(255, 244, 185)"},{baseName:"green",header:"rgb(132, 225, 188)",color:"rgb(222, 247, 236)"},{baseName:"azure",header:"rgb(126, 220, 226)",color:"rgb(213, 245, 246)"},{baseName:"indigo",header:"rgb(186, 198, 248)",color:"rgb(233, 237, 255)"},{baseName:"purple",header:"rgb(202, 191, 253)",color:"rgb(237, 235, 254)"},{baseName:"magenta",header:"rgb(248, 180, 217)",color:"rgb(252, 232, 243)"}],tl=[{baseName:"blue",rowHeader:"rgb(63, 131, 248)",colHeader:"rgb(195, 221, 253)"},{baseName:"grey",rowHeader:"rgb(95, 101, 116)",colHeader:"rgb(227, 229, 234)"},{baseName:"red",rowHeader:"rgb(240, 82, 82)",colHeader:"rgb(251, 213, 213)"},{baseName:"orange",rowHeader:"rgb(255, 90, 31)",colHeader:"rgb(252, 217, 189)"},{baseName:"yellow",rowHeader:"rgb(212, 157, 15)",colHeader:"rgb(252, 220, 106)"},{baseName:"green",rowHeader:"rgb(13, 164, 113)",colHeader:"rgb(188, 240, 218)"},{baseName:"azure",rowHeader:"rgb(6, 148, 162)",colHeader:"rgb(175, 236, 239)"},{baseName:"indigo",rowHeader:"rgb(70, 106, 247)",colHeader:"rgb(210, 218, 250)"},{baseName:"purple",rowHeader:"rgb(144, 97, 249)",colHeader:"rgb(220, 215, 254)"},{baseName:"magenta",rowHeader:"rgb(231, 70, 148)",colHeader:"rgb(250, 209, 232)"}],nl=[{baseName:"blue",rowHeader:"rgb(30, 66, 159)",firstRow:"rgb(195, 221, 253)",secondRow:"rgb(118, 169, 250)"},{baseName:"grey",rowHeader:"rgb(44, 48, 64)",firstRow:"rgb(227, 229, 234)",secondRow:"rgb(151, 157, 172)"},{baseName:"red",rowHeader:"rgb(155, 28, 28)",firstRow:"rgb(251, 213, 213)",secondRow:"rgb(249, 128, 128)"},{baseName:"orange",rowHeader:"rgb(180, 52, 3)",firstRow:"rgb(252, 217, 189)",secondRow:"rgb(255, 138, 76)"},{baseName:"yellow",rowHeader:"rgb(154, 109, 21)",firstRow:"rgb(252, 220, 106)",secondRow:"rgb(212, 157, 15)"},{baseName:"green",rowHeader:"rgb(4, 108, 78)",firstRow:"rgb(188, 240, 218)",secondRow:"rgb(49, 196, 141)"},{baseName:"azure",rowHeader:"rgb(3, 102, 114)",firstRow:"rgb(175, 236, 239)",secondRow:"rgb(22, 189, 202)"},{baseName:"indigo",rowHeader:"rgb(16, 51, 191)",firstRow:"rgb(210, 218, 250)",secondRow:"rgb(98, 128, 249)"},{baseName:"purple",rowHeader:"rgb(74, 29, 150)",firstRow:"rgb(220, 215, 254)",secondRow:"rgb(172, 148, 250)"},{baseName:"magenta",rowHeader:"rgb(153, 21, 75)",firstRow:"rgb(250, 209, 232)",secondRow:"rgb(241, 126, 184)"}],sl=el.map(({baseName:s,header:n,color:e})=>Za(s,n,e)),ol=tl.map(({baseName:s,rowHeader:n,colHeader:e})=>Xa(s,n,e)),rl=nl.map(({baseName:s,rowHeader:n,firstRow:e,secondRow:t})=>Qa(s,n,e,t)),il=[...sl,...ol,...rl],jo={headerRowStyle:{bg:{rgb:"rgb(68,114,196)"},cl:{rgb:"rgb(255,255,255)"},ht:i.HorizontalAlign.CENTER,bl:i.BooleanNumber.TRUE},firstRowStyle:{bg:{rgb:"rgb(217,225,242)"}}},al=new Le("default",jo),ll=new Le("default-last-row",{...jo,lastRowStyle:{bd:{t:{s:i.BorderStyleTypes.THIN,cl:{rgb:"rgb(68,114,196)"}}},ht:i.HorizontalAlign.CENTER,bl:i.BooleanNumber.TRUE}});class ul{constructor(){v(this,"_toggleRanges",[])}refresh(n,e){const{startRow:t,endRow:o}=n,r=[];let a=0,l=!1,u=-1;for(let d=t;d<=o;d++){if(!e(d)){a++,a%2===1?l=!0:(l=!1,u!==-1&&(r.push([u,d-1]),u=-1));continue}a%2===1?l?u===-1&&(u=d):(l=!0,u=d):l&&(r.push([u,d-2]),l=!1,u=-1),d===o&&l&&r.push([u,d])}this._toggleRanges=r}getToggleRanges(){return this._toggleRanges.concat()}getIsToggled(n){let e=0,t=this._toggleRanges.length-1;for(;e<=t;){const o=Math.floor((e+t)/2),[r,a]=this._toggleRanges[o];if(n<r)t=o-1;else if(n>a)e=o+1;else return!0}return!1}}var dl=Object.getOwnPropertyDescriptor,cl=(s,n,e,t)=>{for(var o=t>1?void 0:t?dl(n,e):n,r=s.length-1,a;r>=0;r--)(a=s[r])&&(o=a(o)||o);return o},cs=(s,n)=>(e,t)=>n(e,t,s);const hl="SHEET_RANGE_THEME_MODEL_PLUGIN";g.SheetRangeThemeModel=class extends i.Disposable{constructor(e,t,o){super();v(this,"_rangeThemeStyleMap",new Map);v(this,"_rangeThemeStyleRuleMap",new Map);v(this,"_rTreeCollection",new Map);v(this,"_defaultRangeThemeMap",new Map);v(this,"_zebraCrossingCacheMap",new Map);v(this,"_rowVisibleFuncSet",new Map);v(this,"_rangeThemeMapChanged$",new O.Subject);v(this,"rangeThemeMapChange$",this._rangeThemeMapChanged$.asObservable());this._sheetInterceptorService=e,this._resourceManagerService=t,this._univerInstanceService=o,this._registerIntercept(),this._initSnapshot(),this._initDefaultTheme()}_initDefaultTheme(){this.registerDefaultRangeTheme(al),this.registerDefaultRangeTheme(ll);for(const e of il)this.registerDefaultRangeTheme(e)}_ensureRangeThemeStyleMap(e){return this._rangeThemeStyleMap.has(e)||this._rangeThemeStyleMap.set(e,new Map),this._rangeThemeStyleMap.get(e)}_ensureRangeThemeStyleRuleMap(e){return this._rangeThemeStyleRuleMap.has(e)||this._rangeThemeStyleRuleMap.set(e,new Map),this._rangeThemeStyleRuleMap.get(e)}_ensureRTreeCollection(e){return this._rTreeCollection.has(e)||this._rTreeCollection.set(e,new i.RTree),this._rTreeCollection.get(e)}getDefaultRangeThemeStyle(e){return this._defaultRangeThemeMap.get(e)}getCustomRangeThemeStyle(e,t){return this._ensureRangeThemeStyleMap(e).get(t)}_getSheetRowVisibleFuncSet(e,t){this._rowVisibleFuncSet.has(e)||this._rowVisibleFuncSet.set(e,new Map);const o=this._rowVisibleFuncSet.get(e);return o.has(t)||o.set(t,new Set),o.get(t)}_getSheetRowVisibleHasInit(e,t){var o;return!!(this._rowVisibleFuncSet.has(e)&&((o=this._rowVisibleFuncSet.get(e))!=null&&o.has(t)))}refreshSheetRowVisibleFuncSet(e,t){const o=this._getSheetRowVisibleFuncSet(e,t);o.clear();const r=this._univerInstanceService.getUnit(e);if(r){const a=r.getSheetBySheetId(t);if(a){const l=a.getRowCount(),u=a.getRowManager();for(let d=1;d<=l;d++)a.getRowVisible(d)?u.getRowHeight(d)===0&&o.add(d):o.add(d)}}}_ensureZebraCrossingCache(e,t,o){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);const r=this._zebraCrossingCacheMap.get(e);r.has(t)||r.set(t,new Map);const a=r.get(t);return a.has(o)||a.set(o,new ul),a.get(o)}registerRangeThemeRule(e,t){const{unitId:o,subUnitId:r,range:a}=t,l=i.generateRandomId(),u=this._ensureRangeThemeStyleRuleMap(o),d=this._ensureRTreeCollection(o);u.set(l,{rangeInfo:t,themeName:e}),d.insert({unitId:o,sheetId:r,range:a,id:l}),this._getSheetRowVisibleHasInit(o,r)||this.refreshSheetRowVisibleFuncSet(o,r);const c=this._ensureZebraCrossingCache(o,r,l),h=this._getSheetRowVisibleFuncSet(o,r);c.refresh(a,m=>!h.has(m))}getRegisteredRangeThemeStyle(e){const{unitId:t,subUnitId:o,range:r}=e,a=this._ensureRTreeCollection(t),l=Array.from(a.bulkSearch([{unitId:t,sheetId:o,range:r}]));if(l[0]){const d=this._ensureRangeThemeStyleRuleMap(t).get(l[0]);if(d)return d.themeName}}refreshZebraCrossingCacheBySheet(e,t){this._zebraCrossingCacheMap.has(e)||this._zebraCrossingCacheMap.set(e,new Map);const o=this._zebraCrossingCacheMap.get(e);o.has(t)||o.set(t,new Map);const r=o.get(t);r&&r.forEach((a,l)=>{const d=this._ensureRangeThemeStyleRuleMap(e).get(l);d?a.refresh(d.rangeInfo.range,c=>!this._getSheetRowVisibleFuncSet(e,t).has(c)):r.delete(l)})}removeRangeThemeRule(e,t){const{unitId:o,subUnitId:r,range:a}=t,l=this._ensureRTreeCollection(o),u=Array.from(l.bulkSearch([{unitId:o,sheetId:r,range:a}])),d=this._ensureRangeThemeStyleRuleMap(o);for(let c=0;c<u.length;c++){const h=d.get(u[c]);if(h&&h.themeName===e){d.delete(u[c]),l.remove({unitId:o,sheetId:r,range:a,id:u[c]});const m=this._zebraCrossingCacheMap.get(o);if(m){const f=m.get(r);f&&f.delete(u[c])}break}}}registerDefaultRangeTheme(e){this._defaultRangeThemeMap.set(e.getName(),e),this._rangeThemeMapChanged$.next({type:"add",styleName:e.getName()})}unRegisterDefaultRangeTheme(e){this._defaultRangeThemeMap.delete(e),this._rangeThemeMapChanged$.next({type:"remove",styleName:e})}getRegisteredRangeThemes(){return Array.from(this._defaultRangeThemeMap.keys())}registerRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).set(t.getName(),t),this._rangeThemeMapChanged$.next({type:"add",styleName:t.getName()})}unregisterRangeThemeStyle(e,t){this._ensureRangeThemeStyleMap(e).delete(t),this._rangeThemeMapChanged$.next({type:"remove",styleName:t})}getALLRegisteredTheme(e){return Array.from(this._ensureRangeThemeStyleMap(e).keys())}getRangeThemeStyle(e,t){return this._defaultRangeThemeMap.has(t)?this._defaultRangeThemeMap.get(t):this._ensureRangeThemeStyleMap(e).get(t)}getCellStyle(e,t,o,r){const a={startRow:o,startColumn:r,endRow:o,endColumn:r},l=this._ensureRTreeCollection(e),u=Array.from(l.bulkSearch([{unitId:e,sheetId:t,range:a}]));if(u[0]){const c=this._ensureRangeThemeStyleRuleMap(e).get(u[0]);if(c){const{rangeInfo:h,themeName:m}=c,f=o-h.range.startRow,R=r-h.range.startColumn,C=this.getRangeThemeStyle(e,m),I=this._ensureZebraCrossingCache(e,t,u[0]).getIsToggled(o);if(C)return C.getStyle(f,R,o===h.range.endRow,r===h.range.endColumn,I)}}}_registerIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(Ve.CELL_CONTENT,{id:Ho,effect:i.InterceptorEffectEnum.Style,handler:(e,t,o)=>{const{row:r,col:a,unitId:l,subUnitId:u}=t,d=this.getCellStyle(l,u,r,a);if(d){const c=!e||e===t.rawData?{...t.rawData}:e;return c.themeStyle=d,o(c)}return o(e)}}))}toJson(e){const t=this._ensureRangeThemeStyleRuleMap(e),o=this._ensureRangeThemeStyleMap(e);if(o.size===0&&t.size===0)return"{}";const r={};t.forEach((l,u)=>{r[u]=l});const a={};return o.forEach((l,u)=>{a[u]=l.toJson()}),JSON.stringify({rangeThemeStyleRuleMap:r,rangeThemeStyleMapJson:a})}fromJSON(e,t){const{rangeThemeStyleRuleMap:o,rangeThemeStyleMapJson:r}=t;o&&Object.keys(o).forEach(a=>{const l=o[a],{themeName:u,rangeInfo:d}=l;u.startsWith("table")||(this.registerRangeThemeRule(u,d),this._ensureRTreeCollection(d.unitId).insert({unitId:a,sheetId:d.subUnitId,range:d.range,id:a}))}),r&&Object.keys(r).forEach(a=>{const l=r[a],u=new Le(l.name);u.fromJson(l),this._ensureRangeThemeStyleMap(e).set(u.getName(),u)})}deleteUnitId(e){this._rangeThemeStyleMap.delete(e),this._rangeThemeStyleRuleMap.delete(e),this._rTreeCollection.delete(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>this.toJson(e),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[i.UniverInstanceType.UNIVER_SHEET],pluginName:hl,onLoad:(e,t)=>{this.fromJSON(e,t)},onUnLoad:e=>{this.deleteUnitId(e)}}))}dispose(){super.dispose(),this._rangeThemeStyleMap.clear(),this._rangeThemeStyleRuleMap.clear(),this._defaultRangeThemeMap.clear(),this._rTreeCollection.clear(),this._zebraCrossingCacheMap.clear(),this._rowVisibleFuncSet.clear()}},g.SheetRangeThemeModel=cl([cs(0,i.Inject(g.SheetInterceptorService)),cs(1,i.Inject(i.IResourceManagerService)),cs(2,i.Inject(i.IUniverInstanceService))],g.SheetRangeThemeModel);const ft={id:"sheet.mutation.set-worksheet-range-theme-style",type:i.CommandType.MUTATION,handler:(s,n)=>{if(!T(s.get(i.IUniverInstanceService),n))return!1;const t=s.get(g.SheetRangeThemeModel),{unitId:o,subUnitId:r,range:a,themeName:l}=n;return t.registerRangeThemeRule(l,{range:a,unitId:o,subUnitId:r}),!0}},Go=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("[SetWorksheetRangeThemeStyleMutation]: worksheet is null error!");const{worksheet:t}=e;return{unitId:n.unitId,subUnitId:t.getSheetId(),range:n.range,themeName:n.themeName}},Rt={id:"sheet.mutation.remove-worksheet-range-theme-style",type:i.CommandType.MUTATION,handler:(s,n)=>{if(!T(s.get(i.IUniverInstanceService),n))return!1;const t=s.get(g.SheetRangeThemeModel),{unitId:o,subUnitId:r,range:a,themeName:l}=n;return t.removeRangeThemeRule(l,{range:a,unitId:o,subUnitId:r}),!0}},zo=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("[DeleteWorksheetRangeThemeStyleMutationFactory]: worksheet is null error!");const{worksheet:t}=e;return{unitId:n.unitId,subUnitId:t.getSheetId(),range:n.range,themeName:n.themeName}},Cn=(s,n)=>{if(!ee(s.get(i.IUniverInstanceService),n))throw new Error("Workbook or Worksheet not found at InsertRowMutationUndoFactory");return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},de={id:"sheet.mutation.insert-row",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("Workbook or Worksheet not found at InsertRowMutation");const{worksheet:t}=e,o=t.getRowManager(),{range:r,rowInfo:a}=n,{startRow:l,endRow:u}=r;o.insertRowsWithData(l,u,a);const d=u-l+1;return t.setRowCount(t.getRowCount()+d),t.getCellMatrix().insertRows(l,d),!0}},Ft=(s,n)=>{if(!ee(s.get(i.IUniverInstanceService),n))throw new Error("Workbook or Worksheet not found at InsertColMutationUndoFactory");return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range}},ce={id:"sheet.mutation.insert-col",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("Workbook or Worksheet not found at InsertColMutation");const{worksheet:t}=e,o=t.getColumnManager(),{range:r,colInfo:a}=n,{startColumn:l,endColumn:u}=r;o.insertColumnsWithData(l,u,a);const d=u-l+1;return t.setColumnCount(t.getColumnCount()+d),t.getCellMatrix().insertColumns(r.startColumn,d),!0}},ze={id:"sheet.mutation.move-range",type:i.CommandType.MUTATION,handler:(s,n)=>{const{from:e,to:t}=n;if(!e||!t)return!1;const r=s.get(i.IUniverInstanceService).getCurrentUnitForType(i.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getSheetBySheetId(n.from.subUnitId),l=r.getSheetBySheetId(n.to.subUnitId);if(!a||!l)return!1;const u=a.getCellMatrix(),d=l.getCellMatrix();return new i.ObjectMatrix(e.value).forValue((c,h,m)=>{m==null?u.realDeleteValue(c,h):u.setValue(c,h,m)}),new i.ObjectMatrix(t.value).forValue((c,h,m)=>{m==null?d.realDeleteValue(c,h):d.setValue(c,h,m)}),!0}};function qo(s,n){const{unitId:e,subUnitId:t,sourceRange:o,targetRange:r}=n,a=o.startRow>r.startRow,l=o.endRow-o.startRow+1;return a?{unitId:e,subUnitId:t,sourceRange:i.Rectangle.clone(r),targetRange:{...o,endRow:o.endRow+l,startRow:o.startRow+l}}:{unitId:e,subUnitId:t,targetRange:i.Rectangle.clone(o),sourceRange:{...r,endRow:r.endRow-l,startRow:r.startRow-l}}}const ye={id:"sheet.mutation.move-rows",type:i.CommandType.MUTATION,handler:(s,n)=>{const{unitId:e,subUnitId:t,sourceRange:o,targetRange:r}=n,l=s.get(i.IUniverInstanceService).getUniverSheetInstance(e);if(!l)throw new Error("[MoveRowMutation] univerSheet is null!");const u=l.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const d=o.startRow,c=o.endRow-o.startRow+1,h=r.startRow,m=u.getRowManager().getRowData();return i.moveMatrixArray(d,c,h,m),u.getCellMatrix().moveRows(d,c,h),!0}};function xo(s,n){const{unitId:e,subUnitId:t,sourceRange:o,targetRange:r}=n,a=o.startColumn>r.startColumn,l=o.endColumn-o.startColumn+1;return a?{unitId:e,subUnitId:t,sourceRange:i.Rectangle.clone(r),targetRange:{...o,endColumn:o.endColumn+l,startColumn:o.startColumn+l}}:{unitId:e,subUnitId:t,targetRange:i.Rectangle.clone(o),sourceRange:{...r,startColumn:r.startColumn-l,endColumn:r.endColumn-l}}}const _e={id:"sheet.mutation.move-columns",type:i.CommandType.MUTATION,handler:(s,n)=>{const{unitId:e,subUnitId:t,sourceRange:o,targetRange:r}=n,l=s.get(i.IUniverInstanceService).getUniverSheetInstance(e);if(!l)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=l.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const d=o.startColumn,c=o.endColumn-o.startColumn+1,h=r.startColumn,m=u.getColumnManager().getColumnData();return i.moveMatrixArray(d,c,h,m),u.getCellMatrix().moveColumns(d,c,h),!0}},ml=(s,n)=>{const o=n.getRowManager().getRowData(),r={},a=s.range,l=i.sliceMatrixArray(a.startRow,a.endRow,o),u=i.concatMatrixArray(r,l);return{unitId:s.unitId,subUnitId:s.subUnitId,range:s.range,rowInfo:u}},he={id:"sheet.mutation.remove-rows",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(n.subUnitId);if(!o)return!1;const r=n.range,l=o.getRowManager().getRowData();for(let c=r.startRow;c<=r.endRow;c++)o.getRowFiltered(c);const u=r.endRow-r.startRow+1;return i.spliceArray(r.startRow,u,l),o.getCellMatrix().removeRows(r.startRow,u),o.setRowCount(o.getRowCount()-u),!0}},gl=(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(n.subUnitId);if(o==null)throw new Error("worksheet is null error!");const l=o.getColumnManager().getColumnData(),u={},d=n.range,c=i.sliceMatrixArray(d.startColumn,d.endColumn,l),h=i.concatMatrixArray(u,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,colInfo:h}},le={id:"sheet.mutation.remove-col",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(n.subUnitId);if(!o)return!1;const r=n.range,l=o.getColumnManager().getColumnData(),u=r.endColumn-r.startColumn+1;return i.spliceArray(r.startColumn,u,l),o.setColumnCount(o.getColumnCount()-u),o.getCellMatrix().removeColumns(r.startColumn,u),!0}},ue=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("Workbook or worksheet is null error!");const{worksheet:t}=e,r=t.getConfig().mergeData,a=n.ranges,l=[];for(let u=0;u<a.length;u++)for(let d=r.length-1;d>=0;d--){const c=r[d],h=a[u];i.Rectangle.intersects(c,h)&&l.push(r[d])}return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:l}},x={id:"sheet.mutation.remove-worksheet-merge",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("Workbook or worksheet is null error!");const{worksheet:t}=e,r=t.getConfig().mergeData,a=n.ranges;for(let l=0;l<a.length;l++)for(let u=r.length-1;u>=0;u--){const d=r[u],c=a[l];i.Rectangle.intersects(d,c)&&r.splice(u,1)}return t.getSpanModel().rebuild(r),!0}},Yo=s=>{const{order:n}=s,e={};return Object.keys(n).forEach(t=>{e[n[Number(t)]]=Number(t)}),{...s,order:e}},Bt={id:"sheet.mutation.reorder-range",type:i.CommandType.MUTATION,handler:(s,n)=>{const{subUnitId:e,unitId:t,range:o,order:r}=n,u=s.get(i.IUniverInstanceService).getUnit(t).getSheetBySheetId(e);if(!u)return!1;const d=new i.ObjectMatrix;i.Range.foreach(o,(h,m)=>{if(r.hasOwnProperty(h)){const f=r[h],R=i.Tools.deepClone(u.getCellRaw(f,m));d.setValue(h,m,R)}});const c=u.getCellMatrix();return d.forValue((h,m,f)=>{c.setValue(h,m,f)}),!0}};function fl(s,n){if(s==null)return s;const e=i.Tools.deepClone(s);if(n==null)return e;const t={};return"h"in n&&(t.h=e.h),"ia"in n&&(t.ia=e.ia),"ah"in n&&(t.ah=e.ah),"hd"in n&&(t.hd=e.hd),"s"in n&&(t.s=e.s),"custom"in n&&(t.custom=e.custom),t}function Rl(s,n){if(s==null)return s;const e=i.Tools.deepClone(s);if(n==null)return e;const t={};return"w"in n&&(t.w=e.w),"hd"in n&&(t.hd=e.hd),"s"in n&&(t.s=e.s),"custom"in n&&(t.custom=e.custom),t}const Ko=(s,n)=>{const{unitId:e,subUnitId:t,columnData:o}=s,r={},a=n.getColumnManager();for(const l in o){const u=o[l],d=a.getColumn(Number(l));r[l]=Rl(d,u)}return{unitId:e,subUnitId:t,columnData:r}},Ct={id:"sheet.mutation.set-col-data",type:i.CommandType.MUTATION,handler:(s,n)=>{const{columnData:e}=n,t=s.get(i.IUniverInstanceService),o=T(t,n);if(!o)return!1;const{worksheet:r}=o,a=r.getColumnManager();for(const l in e){const u=e[l];if(u==null){a.removeColumn(Number(l));continue}const d=a.getColumnOrCreate(Number(l));Object.assign(d,u)}return!0}},Cl=(s,n)=>{if(s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw new Error("universheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},St={id:"sheet.mutation.set-col-hidden",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!t)return!1;const o=t.getSheetBySheetId(n.subUnitId).getColumnManager();for(let r=0;r<n.ranges.length;r++){const a=n.ranges[r];for(let l=a.startColumn;l<a.endColumn+1;l++){const u=o.getColumnOrCreate(l);u!=null&&(u.hd=i.BooleanNumber.TRUE)}}return!0}},Sl=(s,n)=>{if(s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw new Error("universheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},vt={id:"sheet.mutation.set-col-visible",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!t)return!1;const o=t.getSheetBySheetId(n.subUnitId).getColumnManager();for(let r=0;r<n.ranges.length;r++){const a=n.ranges[r];for(let l=a.startColumn;l<a.endColumn+1;l++){const u=o.getColumnOrCreate(l);u!=null&&(u.hd=i.BooleanNumber.FALSE)}}return!0}},It={id:"sheet.mutation.set-gridlines-color",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=T(s.get(i.IUniverInstanceService),n);if(!e)return!1;const{worksheet:t}=e,o=t.getConfig();return o.gridlinesColor=n.color,!0}};function vl(s,n,e){var a;const t=s.getStyleByCell(n);t==null&&delete n.s,typeof e.s=="string"&&(e.s=s.get(e.s));const o=Sn(t,e.s?e.s:null);o&&(i.Tools.removeNull(o),Object.entries(o).forEach(([l,u])=>{typeof u=="object"&&u!==null&&Object.keys(u).length===0&&delete o[l]})),i.Tools.isEmptyObject(o)?delete n.s:n.s=s.setValue(o);const r=e.v?`${e.v}\r `:"";!e.p&&n.p&&(r&&r!==((a=n.p.body)==null?void 0:a.dataStream)?delete n.p:wl(n.p,e.s?e.s:null))}function Il(s,n){if(!n||!Object.keys(n).length)return s;const e=i.Tools.deepClone(s!=null?s:{});for(const t in n)t==="bd"?e[t]=pl(e[t]||{},n[t]):t in e||(e[t]=null);return e}function pl(s,n){if(!n||!Object.keys(n).length)return s;for(const e in n)e in s||(s[e]=null);return s}function Sn(s,n,e=!1){if(n===null)return n;if(n===void 0)return s;const t=i.Tools.deepClone(s)||{};for(const o in n)e&&["bd","tr","td","ht","vt","tb","pd","bg"].includes(o)||(o in t&&o==="bd"?t[o]=Object.assign(t[o],n[o]):t[o]=n[o]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}function Jo(s,n){return s.some(e=>e.startIndex===n)?Jo(s,n+1):n}function wl(s,n){var a;if(s.body==null)return;Array.isArray(s.body.textRuns)||(s.body.textRuns=[]);let e=0;const t=[],o=((a=s.body)==null?void 0:a.paragraphs)||[];for(const l of s.body.textRuns){const{st:u,ed:d,ts:c={}}=l;if(e<u){const m={st:e,ed:u},f=Sn({},n,!0);f&&i.Tools.removeNull(f),i.Tools.isEmptyObject(f)||(m.ts=f),t.push(m)}const h=Sn(c,n,!0);h&&i.Tools.removeNull(h),i.Tools.isEmptyObject(h)?delete l.ts:l.ts=h,t.push(l),e=Jo(o,d)}const r=s.body.dataStream.endsWith(`\r `)?s.body.dataStream.length-2:s.body.dataStream.length;if(e<r){const l={st:e,ed:r},u=Sn({},n,!0);u&&i.Tools.removeNull(u),i.Tools.isEmptyObject(u)||(l.ts=u),t.push(l)}s.body.textRuns=i.normalizeTextRuns(t)}function Zo(s,n){return n.v===void 0||n.v===null?n.v:s===i.CellValueType.NUMBER?Number(n.v):s===i.CellValueType.BOOLEAN?Ml(n.v)?1:0:s===i.CellValueType.STRING||s===i.CellValueType.FORCE_STRING?`${n.v}`:n.v}function Ml(s){if(typeof s=="string"){if(s.toUpperCase()==="TRUE")return!0;if(s.toUpperCase()==="FALSE")return!1;if(i.isSafeNumeric(s)){if(Number(s)===0)return!1;if(Number(s)===1)return!0}}if(typeof s=="number"){if(s===0)return!1;if(s===1)return!0}return typeof s=="boolean"?s:null}function yl(s){return s==null?null:(s.f===void 0&&(s.f=null),s.si===void 0&&(s.si=null),s.p===void 0&&(s.p=null),s.v===void 0&&(s.v=null),s.t===void 0&&(s.t=null),s.s===void 0&&(s.s=null),s.custom===void 0&&(s.custom=null),s)}const se=(s,n)=>{const{unitId:e,subUnitId:t,cellValue:o}=n,a=s.get(i.IUniverInstanceService).getUniverSheetInstance(e);if(a==null)throw new Error("workbook is null error!");const l=a.getSheetBySheetId(t);if(l==null)throw new Error("worksheet is null error!");const u=l.getCellMatrix(),d=a.getStyles(),c=new i.ObjectMatrix;return new i.ObjectMatrix(o).forValue((m,f,R)=>{const C=i.Tools.deepClone(u==null?void 0:u.getValue(m,f))||{},S=d.getStyleByCell(C),I=d.getStyleByCell(R);C.s=Il(S,I),c.setValue(m,f,yl(C))}),{...n,options:{},cellValue:c.getMatrix()}},F={id:"sheet.mutation.set-range-values",type:i.CommandType.MUTATION,handler:(s,n)=>{const{cellValue:e,subUnitId:t,unitId:o}=n,a=s.get(i.IUniverInstanceService).getUnit(o);if(!a)return!1;const l=a.getSheetBySheetId(t);if(!l)return!1;const u=l.getCellMatrix(),d=a.getStyles();return new i.ObjectMatrix(e).forValue((h,m,f)=>{if(!f)u.realDeleteValue(h,m);else{let R=u.getValue(h,m)||{};R=bl(f,R,d),i.Tools.isEmptyObject(R)?u.realDeleteValue(h,m):u.setValue(h,m,R)}}),!0}},_l=new Set(["f","p","si","custom","ref","xf"]);function bl(s,n,e){const t=ja(e,s,n);return Object.keys(s).forEach(o=>{const r=o;if(_l.has(r)){const a=s[r];El(n,r,a)}else r==="v"?s.v!==void 0&&(n.v=Zo(t,s)):r==="s"&&vl(e,n,s)}),n.v!==void 0&&(n.t=t,n.v=Zo(t,n)),n.v===null&&(delete n.t,delete n.v),n}function El(s,n,e){e===void 0||(e===null?delete s[n]:s[n]=e)}const Xo=(s,n)=>{const{unitId:e,subUnitId:t,rowData:o}=s,r={},a=n.getRowManager();for(const l in o){const u=o[l],d=a.getRow(Number(l));r[l]=fl(d,u)}return{unitId:e,subUnitId:t,rowData:r}},pt={id:"sheet.mutation.set-row-data",type:i.CommandType.MUTATION,handler:(s,n)=>{const{rowData:e}=n,t=s.get(i.IUniverInstanceService),o=T(t,n);if(!o)return!1;const{worksheet:r}=o,a=r.getRowManager();for(const l in e){const u=e[l];if(u==null){a.removeRow(Number(l));continue}const d=a.getRowOrCreate(Number(l));Object.assign(d,u)}return!0}},Tl=(s,n)=>{if(s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw new Error("universheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},Qe={id:"sheet.mutation.set-row-visible",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(n.subUnitId).getRowManager();for(let r=0;r<n.ranges.length;r++){const a=n.ranges[r];for(let l=a.startRow;l<a.endRow+1;l++){const u=o.getRowOrCreate(l);u!=null&&(u.hd=0)}}return!0}},Ul=(s,n)=>{if(s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId)==null)throw new Error("universheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,ranges:n.ranges}},et={id:"sheet.mutation.set-row-hidden",type:i.CommandType.MUTATION,handler:(s,n)=>{const t=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(t==null)throw new Error("universheet is null error!");const o=t.getSheetBySheetId(n.subUnitId).getRowManager();for(let r=0;r<n.ranges.length;r++){const a=n.ranges[r];for(let l=a.startRow;l<a.endRow+1;l++){const u=o.getRowOrCreate(l);u!=null&&(u.hd=1)}}return!0}},hs=(s,n)=>{const{unitId:e,subUnitId:t,ranges:o}=s,r={},a=n.getColumnManager();for(let l=0;l<o.length;l++){const u=o[l];for(let d=u.startColumn;d<u.endColumn+1;d++)r[d]=a.getColumnWidth(d)}return{unitId:e,subUnitId:t,ranges:o,colWidth:r}},He={id:"sheet.mutation.set-worksheet-col-width",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=s.get(i.IUniverInstanceService),t=T(e,n);if(!t)return!1;const{worksheet:o}=t,r=o.getColumnManager(),a=n.ranges;for(let l=0;l<a.length;l++){const u=a[l];for(let d=u.startColumn;d<u.endColumn+1;d++)o.getColVisible(d)&&(typeof n.colWidth=="number"?r.setColumnWidth(d,n.colWidth):i.Tools.isDefine(n.colWidth[d])&&r.setColumnWidth(d,n.colWidth[d]))}return!0}},Qo=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("[SetWorksheetColumnCountUndoMutationFactory]: worksheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,columnCount:e.worksheet.getColumnCount()}},wt={id:"sheet.mutation.set-worksheet-column-count",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=s.get(i.IUniverInstanceService),t=ee(e,n);return t?(t.worksheet.setColumnCount(n.columnCount),!0):!1}},Mt={id:"sheet.mutation.set-worksheet-default-style",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=T(s.get(i.IUniverInstanceService),n);if(!e)return!1;const{worksheet:t}=e,{defaultStyle:o}=n;return t.setDefaultCellStyle(o),!0}},er=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("[SetWorksheetDefaultStyleMutationFactory]: worksheet is null error!");const{worksheet:t}=e;return{unitId:n.unitId,subUnitId:t.getSheetId(),defaultStyle:t.getDefaultCellStyle()}},tr=(s,n)=>{const e=ee(s.get(i.IUniverInstanceService),n);if(!e)throw new Error("[SetWorksheetRowCountUndoMutationFactory]: worksheet is null error!");return{unitId:n.unitId,subUnitId:n.subUnitId,rowCount:e.worksheet.getRowCount()}},yt={id:"sheet.mutation.set-worksheet-row-count",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=s.get(i.IUniverInstanceService),t=ee(e,n);return t?(t.worksheet.setRowCount(n.rowCount),!0):!1}},ms=(s,n)=>{var l,u;const{unitId:e,subUnitId:t,ranges:o}=s,r={},a=n.getRowManager();for(const{startRow:d,endRow:c}of o)for(let h=d;h<c+1;h++)r[h]=(u=(l=a.getRow(h))==null?void 0:l.h)!=null?u:n.getConfig().defaultRowHeight;return{unitId:e,subUnitId:t,ranges:o,rowHeight:r}},vn=(s,n)=>{var l;const{unitId:e,subUnitId:t,ranges:o}=s,r={},a=n.getRowManager();for(const{startRow:u,endRow:d}of o)for(let c=u;c<=d;c++)r[c]=(l=a.getRow(c))==null?void 0:l.ia;return{unitId:e,subUnitId:t,ranges:o,autoHeightInfo:r}},nr=(s,n)=>{var l,u;const{unitId:e,subUnitId:t,rowsAutoHeightInfo:o}=s,r=[],a=n.getRowManager();for(const d of o){const{row:c}=d;r.push({row:c,autoHeight:(u=(l=a.getRow(c))==null?void 0:l.ah)!=null?u:n.getConfig().defaultRowHeight})}return{unitId:e,subUnitId:t,rowsAutoHeightInfo:r}},ke={id:"sheet.mutation.set-worksheet-row-height",type:i.CommandType.MUTATION,handler:(s,n)=>{const{ranges:e,rowHeight:t}=n,o=s.get(i.IUniverInstanceService),r=T(o,n);if(!r)return!1;const{worksheet:a}=r,l=a.getRowManager();for(const{startRow:u,endRow:d}of e)for(let c=u;c<=d;c++)typeof t=="number"?l.setRowHeight(c,t):i.Tools.isDefine(t[c])&&l.setRowHeight(c,t[c]);return!0}},Se={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:i.CommandType.MUTATION,handler:(s,n)=>{var l;const{ranges:e,autoHeightInfo:t}=n,o=s.get(i.IUniverInstanceService),r=T(o,n);if(!r)return!1;const a=r.worksheet.getRowManager();for(const{startRow:u,endRow:d}of e)for(let c=u;c<=d;c++){const h=a.getRowOrCreate(c);typeof t=="number"?h.ia=t:h.ia=(l=t[c])!=null?l:void 0}return!0}},jt={id:"sheet.mutation.set-worksheet-row-auto-height",type:i.CommandType.MUTATION,handler:(s,n)=>{const{rowsAutoHeightInfo:e}=n,t=s.get(i.IUniverInstanceService),o=T(t,n);if(!o)return!1;const r=o.worksheet.getRowManager();for(const{row:a,autoHeight:l}of e){const u=r.getRowOrCreate(a);u.ah=l}return!0}},_t={id:"sheet.mutation.toggle-gridlines",type:i.CommandType.MUTATION,handler:(s,n)=>{const e=T(s.get(i.IUniverInstanceService),n);if(!e)return!1;const{worksheet:t}=e,o=t.getConfig();return o.showGridlines=n.showGridlines,!0}},tt={id:"sheet.operation.set-worksheet-active",type:i.CommandType.OPERATION,handler:(s,n)=>{const e=s.get(i.IUniverInstanceService).getUniverSheetInstance(n.unitId);if(!e)return!1;const t=e.getWorksheets();for(const[,o]of t)if(o.getSheetId()===n.subUnitId)return e.setActiveSheet(o),!0;return!1}};var sr=(s=>(s.SET_WORKSHEET_ROW_HEIGHT="sheet.mutation.set-worksheet-row-height",s.SET_WORKSHEET_ROW_IS_AUTO_HEIGHT="sheet.mutation.set-worksheet-row-is-auto-height",s.SET_WORKSHEET_ROW_AUTO_HEIGHT="sheet.mutation.set-worksheet-row-auto-height",s.SET_WORKSHEET_COL_WIDTH="sheet.mutation.set-worksheet-col-width",s.SET_WORKSHEET_ACTIVE="sheet.operation.set-worksheet-active",s.MOVE_ROWS="sheet.mutation.move-rows",s.MOVE_COLUMNS="sheet.mutation.move-columns",s.SET_COL_HIDDEN="sheet.mutation.set-col-hidden",s.SET_COL_VISIBLE="sheet.mutation.set-col-visible",s.SET_ROW_HIDDEN="sheet.mutation.set-row-hidden",s.SET_ROW_VISIBLE="sheet.mutation.set-row-visible",s.INSERT_COL="sheet.mutation.insert-col",s.INSERT_ROW="sheet.mutation.insert-row",s.REMOVE_COL="sheet.mutation.remove-col",s.REMOVE_ROW="sheet.mutation.remove-rows",s.TOGGLE_GRIDLINES="sheet.mutation.toggle-gridlines",s.SET_GRIDLINES_COLOR="sheet.mutation.set-gridlines-color",s))(sr||{}),or=(s=>(s.SET_RANGE_VALUES="sheet.mutation.set-range-values",s.MOVE_RANGE="sheet.mutation.move-range",s.REMOVE_WORKSHEET_MERGE="sheet.mutation.remove-worksheet-merge",s.ADD_WORKSHEET_MERGE="sheet.mutation.add-worksheet-merge",s.REORDER_RANGE="sheet.mutation.reorder-range",s.SET_WORKSHEET_DEFAULT_STYLE="sheet.mutation.set-worksheet-default-style",s.SET_ROW_DATA="sheet.mutation.set-row-data",s.SET_COL_DATA="sheet.mutation.set-col-data",s.SET_WORKSHEET_RANGE_THEME_STYLE="sheet.mutation.set-worksheet-range-theme-style",s.DELETE_WORKSHEET_RANGE_THEME_STYLE="sheet.mutation.delete-worksheet-range-theme-style",s))(or||{});const kl=[ke.id,Se.id,jt.id,He.id,tt.id,ye.id,_e.id,St.id,vt.id,et.id,Qe.id,ce.id,de.id,le.id,he.id,_t.id,It.id,yt.id,wt.id],Pl=[F.id,ze.id,x.id,q.id,Bt.id,Mt.id,pt.id,Ct.id,ft.id,Rt.id];function Nl(s,n){switch(n.id){case"sheet.mutation.set-range-values":{const e=n.params,t=new i.ObjectMatrix(e.cellValue).getDataRange();return t.endRow===-1?[]:e.cellValue?[{unitId:e.unitId,subUnitId:e.subUnitId,range:t}]:[]}case"sheet.mutation.move-range":{const e=n.params;return[{unitId:e.unitId,subUnitId:e.from.subUnitId,range:new i.ObjectMatrix(e.from.value).getRange()},{unitId:e.unitId,subUnitId:e.to.subUnitId,range:new i.ObjectMatrix(e.to.value).getR