@univerjs/sheets 0.1.11 → 0.1.12
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/umd/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(function(h,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],s):(h=typeof globalThis<"u"?globalThis:h||self,s(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,s,z,ke,ne,an,ko){"use strict";var zr=Object.defineProperty;var qr=(h,s,z)=>s in h?zr(h,s,{enumerable:!0,configurable:!0,writable:!0,value:z}):h[s]=z;var W=(h,s,z)=>(qr(h,typeof s!="symbol"?s+"":s,z),z);var yt;var Ao=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Lo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Vo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ao(t,o,r),r},Bo=(n,t)=>(o,e)=>t(o,e,n);const X="normalSelectionPluginName";var un=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(un||{});h.SelectionManagerService=class{constructor(t){W(this,"_selectionInfo",new Map);W(this,"_currentSelection",null);W(this,"_selectionMoveStart$",new ke.Subject);W(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());W(this,"_selectionMoving$",new ke.Subject);W(this,"selectionMoving$",this._selectionMoving$.asObservable());W(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));W(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());W(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:r},a)=>e===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(r)||u.set(r,new Map);const d=u.get(r);if(!d.has(a))d.set(a,[...i]);else{let c=d.get(a);c==null&&(c=[],d.set(a,c)),c.push(...i)}o&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(r))u.set(r,a);else{let d=u.get(r);d==null&&(d=[],u.set(r,d)),d.splice(0,d.length,...a)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}},h.SelectionManagerService=Lo([Bo(0,z.Inject(s.ThemeService))],h.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),Qe={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Fo=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$o=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ho(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Fo(t,o,r),r},Go=(n,t)=>(o,e)=>t(o,e,n);h.SheetInterceptorService=class extends s.Disposable{constructor(o){super();W(this,"_interceptorsByName",new Map);W(this,"_commandInterceptors",[]);W(this,"_workbookDisposables",new Map);W(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Qe.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,u)=>{var d,c;return((d=u.priority)!=null?d:0)-((c=i.priority)!=null?c:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(o){const e=o,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const e=new s.DisposableCollection,r=o.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(c=>{const l=new s.DisposableCollection;a._worksheetDisposables.set(dn(r,u),l),l.add(c.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(Qe.CELL_CONTENT)(u.getCellRaw(m,g),{unitId:r,subUnitId:d,row:m,col:g,worksheet:u,workbook:o})}})),l.add(c.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(Qe.ROW_FILTERED)(!1,{unitId:r,subUnitId:d,row:m,workbook:o,worksheet:u})}}))})};o.getSheets().forEach(u=>i(u)),e.add(s.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),e.add(s.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(r,u)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(r,u)))),this._workbookDisposables.set(r,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=dn(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}},h.SheetInterceptorService=$o([s.OnLifecycle(s.LifecycleStages.Starting,h.SheetInterceptorService),Go(0,s.IUniverInstanceService)],h.SheetInterceptorService);function dn(n,t){return`${n}|${t.getSheetId()}`}const Se=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),c=i.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,S,v)=>{const f=s.Tools.deepClone(d==null?void 0:d.getValue(g,S))||{},C=c.getStyleByCell(f),I=xo(C,v&&v.s?v.s:null);f.s=I,l.setValue(g,S,zo(f))}),{...t,options:{},cellValue:l.getMatrix()}};function zo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const q={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),c=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,S)=>{if(!S)d==null||d.setValue(m,g,{});else{const v=d.getValue(m,g)||{},f=S.t?S.t:S.v!==void 0?ln(S.v,S.t):ln(v.v,v.t);if(S.f!==void 0&&(v.f=S.f),S.si!==void 0&&(v.si=S.si),S.p!==void 0&&(v.p=S.p),S.v!==void 0&&(v.v=f===s.CellValueType.NUMBER?Number(S.v):f===s.CellValueType.BOOLEAN?qo(S.v)?1:0:S.v),v.v!==void 0&&(v.t=f),S.s!==void 0){const C=c.getStyleByCell(v);C==null&&delete v.s,typeof S.s=="string"&&(S.s=c.get(S.s));const I=et(C,S.s?S.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=c.setValue(I),!S.p&&v.p&&Xo(v.p,S.s?S.s:null)}S.custom!==void 0&&(v.custom=S.custom),d.setValue(m,g,s.Tools.removeNull(v))}}),!0}};function ln(n,t){return n===null?null:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function qo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function xo(n,t){return Yo(n,t)}function Yo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Ko(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Ko(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function et(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=s.Tools.deepClone(n)||{};if(e){for(const r in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function cn(n,t){return n.some(o=>o.startIndex===t)?cn(n,t+1):t}function Xo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const u of n.body.textRuns){const{st:d,ed:c,ts:l={}}=u;if(o<d){const g={st:o,ed:d},S=et({},t,!0);S&&s.Tools.removeNull(S),s.Tools.isEmptyObject(S)||(g.ts=S),e.push(g)}const m=et(l,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=cn(r,c)}const a=n.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const u={st:o,ed:a},d=et({},t,!0);d&&s.Tools.removeNull(d),s.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=s.normalizeTextRuns(e)}const tt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Jo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:tt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.clone()}const _t={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:c,unitId:u,cellValue:Zo(l)},g=Se(n,m),S=a.onCommandExecute({id:_t.id}),v=[{id:q.id,params:m},...S.redos],f=[...S.undos,{id:q.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:u,undoMutations:f,redoMutations:v}),!0):!1}};function Zo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const nt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Qo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:nt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{s:null})}),t.clone()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_e={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function mn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const gn=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=ot(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:u}=a,d=u.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:d,unitId:r}},Ae={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},hn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=B(r,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=s.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},S=bt(n,g);return o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:S}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new s.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const c={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};s.Rectangle.contains(n,c)||r.push(c)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?ze(a,t,o):a}function es(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ts(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const fe=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:oe(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function os(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let u=a.startColumn;u<=a.endColumn;u++)e(i,u,a)}r(o)}return{forOperableEach:t}}const vn="sheet.command.move-range",st={type:s.CommandType.COMMAND,id:vn,handler:(n,t)=>{var I,R;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),u=B(r);if(!u)return!1;const{worksheet:d,subUnitId:c,unitId:l}=u,m=rt(n,{unitId:l,subUnitId:c,range:t.fromRange},{unitId:l,subUnitId:c,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const S=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=S.preRedos)!=null?I:[],...m.redos,...S.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:oe(t.toRange,d)}]}}],f=[...(R=S.preUndos)!=null?R:[],...m.undos,...S.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:oe(t.fromRange,d)}]}}];return s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(d),S=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),f=S==null?void 0:S.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(S&&v&&f&&C){const I=ze(c,S,!1);if(!s.Rectangle.equals(c,I)&&!e)return null;const R=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{R.setValue(_,N,C.getValue(_,N)),p.setValue(_,N,null)});const w=new s.ObjectMatrix;s.Range.foreach(c,(_,N)=>{w.setValue(_,N,f.getValue(_,N))});const M=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{const A=s.cellToRange(_,N),x=s.Rectangle.getRelativeRange(A,i),Y=s.Rectangle.getPositionRange(x,c);M.setValue(Y.startRow,Y.startColumn,C.getValue(_,N))});const y={from:{value:p.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};r.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:r,undos:a}}const qe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!u)return!1;const{subUnitId:d,unitId:c}=u,{value:l,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const S=new s.ObjectMatrix;let v;if(s.Tools.isArray(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=0;A<=_-y;A++)for(let x=0;x<=N-b;x++)S.setValue(A+y,x+b,l[A][x])}else if(s.isICellData(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=y;A<=_;A++)for(let x=b;x<=N;x++)S.setValue(A,x,l)}else v=l;const f={subUnitId:d,unitId:c,cellValue:v!=null?v:S.getMatrix()},C=Se(n,f),I=o.syncExecuteCommand(q.id,f),{undos:R,redos:p}=i.onCommandExecute({id:qe.id,params:{...f,range:g}}),w=s.sequenceExecute([...p],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(s.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const S=g.getCellMatrix(),v=S.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let p,w;if(u===s.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let N=i.startRow;N<=y;N++){const A=S.getRow(N),x=A?s.getArrayLength(A)-1:0;b=Math.max(b,x)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const _=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:p.startColumn+_,endRow:y,endColumn:p.endColumn+_}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const _=i.endRow-i.startRow+1;w={startRow:p.startRow+_,startColumn:i.startColumn,endRow:p.endRow+_,endColumn:y}}const M=rt(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:w},!0);M&&(o.push(...M.redos),e.push(...M.undos))}if(Object.entries(d).length===0)for(let p=i.startRow;p<=i.endRow;p++){d[p]||(d[p]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[p][w]=null}const f={subUnitId:a,unitId:r,cellValue:d},C=Se(n,f),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...f,range:i}});o.push({id:q.id,params:f},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(s.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),S=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:as([i])},f=Se(n,v),C=c.onCommandExecute({id:qe.id,params:v});if(o.push({id:q.id,params:v},...C.redos),e.push(...C.undos,{id:q.id,params:f}),i.startColumn<=S.endColumn||i.startRow<=S.endRow){let I=null,R=null;if(u===s.Dimension.COLUMNS&&i.endColumn<S.endColumn){const p=Math.min(i.endRow,S.endRow);let w=0;for(let y=i.startRow;y<=p;y++){const b=g.getRow(y),_=b?s.getArrayLength(b)-1:0;w=Math.max(w,_)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:w};const M=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-M,endRow:p,endColumn:I.endColumn-M}}if(u===s.Dimension.ROWS&&i.endRow<S.endRow){const p=Math.min(i.endColumn,S.endColumn),w=S.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:p};const M=i.endRow-i.startRow+1;R={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:p}}if(I&&R){const p=rt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:R},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ss(n,t,o,e,r,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(r===s.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const S=n.getValue(m,g);S==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,S)}for(let m=u;m>=i;m--)for(let g=d;g<=c;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const S=n.getValue(m,g);S==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,S)}for(let m=i;m<=u;m++)for(let g=c;g>=d;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function rs(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const S=n.getValue(m+c,g);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const S=n.getValue(m,g+l);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}}function as(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Sn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{worksheet:d,workbook:c,subUnitId:l,unitId:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},fn="sheet.command.delete-range-move-up",it={type:s.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{unitId:d,subUnitId:c,workbook:l,worksheet:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:c,unitId:d,shiftDimension:s.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const c=d.getRowManager().getRowData(),l={h:d.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let f=m;f<m+g;f++)a?s.insertMatrixArray(f,(v=a[f-r.startRow])!=null?v:l,c):s.insertMatrixArray(f,l,c);return d.setRowCount(d.getRowCount()+r.endRow-r.startRow+1),d.getCellMatrix().insertRows(r.startRow,g),!0}},Dt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let f=l;f<l+m;f++){const C={w:g,hd:0};u?s.insertMatrixArray(f,(v=u[f-i.startColumn])!=null?v:C,c):s.insertMatrixArray(f,C,c)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},is=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,u=s.sliceMatrixArray(i.startRow,i.endRow,r),d=s.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)r.getRowFiltered(l);const d=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,d,u),r.getCellMatrix().removeRows(a.startRow,d),r.setRowCount(r.getRowCount()-d),!0}},us=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const u=r.getColumnManager().getColumnData(),d={},c=t.range,l=s.sliceMatrixArray(c.startColumn,c.endColumn,u),m=s.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,d,u),r.setColumnCount(r.getColumnCount()-d),r.getCellMatrix().removeColumns(a.startColumn,d),!0}},ds="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,M=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(M>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+M,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=g.getCell(Z,Q);K&&(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:ut.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,S,g)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Cn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Cn,handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,M=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(M>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:S,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=m.getCell(Z,Q);!K||!K.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:S,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:dt.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,l,m)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Rn="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:Rn,handler:async(n,t)=>{var w,M;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:S}=d,v=c===s.Direction.UP?g:g-1,f=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(S-g+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return s.sequenceExecute([{id:Ce.id,params:C},...R.redos,fe(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(S=>S.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};s.Range.foreach(e,(S,v)=>{const f=i.getCell(S,v);!f||!f.s||(l[S]||(l[S]={}),l[S][v]={s:f.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Le.id,m)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={unitId:u,subUnitId:d,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Le.id,l)}},pn="sheet.command.insert-col",Be={type:s.CommandType.COMMAND,id:pn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),S=g.getSheetBySheetId(t.subUnitId),v=u===s.Direction.LEFT?l:l-1,f=S.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return s.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,fe(i,g,S)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=R.preUndos)!=null?M:[],{id:Ie.id,params:I},...R.undos].filter(Boolean),redoMutations:[...(y=R.preRedos)!=null?y:[],{id:Re.id,params:C},...R.redos].filter(Boolean)}),!0):!1}},wn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={};s.Range.foreach(e,(g,S)=>{const v=i.getCell(g,S);!v||!v.s||(l[g]||(l[g]={}),l[g][S]={s:v.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(s.ICommandService).executeCommand(Be.id,m)}},yn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={unitId:u,subUnitId:d,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Be.id,l)}},Un={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=mn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:c,sheet:l,unitId:u},g=bt(n,m);return o.syncExecuteCommand(_e.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,u=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+u,startRow:r.startRow+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const c=r.startRow,l=r.endRow-r.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function cs(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,u=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+u,startColumn:r.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const c=r.startColumn,l=r.endColumn-r.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function ms(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function gs(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const _n="sheet.command.move-rows",Ot={id:_n,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startRow:a,endRow:a+f.endRow-f.startRow},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=ls(n,p),y=a-r<0,b=f.endRow-f.startRow+1,_=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0):!1}},bn="sheet.command.move-cols",Pt={id:bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(gs(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startColumn:a,endColumn:a+f.endColumn-f.startColumn},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=cs(n,p),M=f.endColumn-f.startColumn+1,_=a-r<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0}},Tn="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(_=>_+1)],b=[...m.map(_=>_-1),r.endRow];for(let _=y.length-1;_>=0;_--)y[_]<=b[_]&&g.push({startRow:y[_],endRow:b[_],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const S=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},_=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),N={unitId:l,subUnitId:c,cellValue:_.getMatrix()},A=is(b,d);S.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:A},{id:q.id,params:N})});const f=e.onCommandExecute({id:lt.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],...S,...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],...v,...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],...S,...f.redos]}),!0):!1}},En="sheet.command.remove-col",ct={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:r},g=us(n,m),S=d.getCellMatrix().getSlice(0,d.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:l,subUnitId:c,cellValue:S.getMatrix()},f=e.onCommandExecute({id:ct.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],{id:Ie.id,params:m},...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],{id:Ie.id,params:m},...f.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var R,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(r,t);if(!i)return!1;const{unitId:u,subUnitId:d,workbook:c,worksheet:l}=i;if(c.getSheets().length<=1)return!1;const m=c.getSheetIndex(l);c.getConfig().sheetOrder[m+1];const g={subUnitId:d,unitId:u,subUnitName:l.getName()},S=gn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),f=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(p=v.preUndos)!=null?p:[],{id:_e.id,params:S},...v.undos];return s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:f}),!0):!1}},me=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,u=t.ranges,d=[];for(let c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const m=i[l],g=u[c];s.Rectangle.intersects(m,g)&&d.push(i[l])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let c=i.length-1;c>=0;c--){const l=i[c],m=u[d];s.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{subUnitId:u,unitId:d,worksheet:c}=i,l={unitId:d,subUnitId:u,ranges:a};let m=!1;const g=c.getConfig().mergeData;if(a.forEach(M=>{g.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const S=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const f=s.Tools.deepClone(v),C=s.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:p}=I.range;return I.primary={startRow:R,startColumn:p,endRow:R,endColumn:p,actualRow:R,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:S},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:j.id,params:S},{id:$.id,params:{selections:f}}],redoMutations:[{id:F.id,params:S},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){W(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});W(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));W(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mt(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let u=e;u<=a;u++)t(i,u)}const Dn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:u}=r,d=n.get(s.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(We.id,{unitId:o,subUnitId:e})}},On={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(Ee).setType(t.value),o.executeCommand(We.id)}},Pn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setStyle(t.value),o.executeCommand(We.id)}},kn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(r,t);if(!u)return!1;const{worksheet:d,unitId:c,subUnitId:l}=u,m=a.getSelectionRanges(),g=d.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:S,color:v,type:f,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=f===s.BorderType.TOP||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,R=f===s.BorderType.LEFT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,p=f===s.BorderType.BOTTOM||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,w=f===s.BorderType.RIGHT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,M=f===s.BorderType.VERTICAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,y=f===s.BorderType.HORIZONTAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,b=f.indexOf("tlbr")>-1,_=f.indexOf("tlbc")>-1,N=f.indexOf("tlmr")>-1,A=f.indexOf("bltr")>-1,x=f.indexOf("mltr")>-1,Y=f.indexOf("bctr")>-1,U=m[0],de={startRow:U.startRow-1,startColumn:U.startColumn,endRow:U.startRow-1,endColumn:U.endColumn},Z={startRow:U.startRow,startColumn:U.startColumn-1,endRow:U.endRow,endColumn:U.startColumn-1},Q={startRow:U.endRow+1,startColumn:U.startColumn,endRow:U.endRow+1,endColumn:U.endColumn},K={startRow:U.startRow,startColumn:U.endColumn+1,endRow:U.endRow,endColumn:U.endColumn+1},ee={startRow:U.startRow,startColumn:U.startColumn,endRow:U.startRow,endColumn:U.endColumn},No={startRow:U.startRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.startColumn},Do={startRow:U.endRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.endColumn},Oo={startRow:U.startRow,startColumn:U.endColumn,endRow:U.endRow,endColumn:U.endColumn},V=new s.ObjectMatrix,G={s:S,cl:{rgb:v}},Ut=(D,T)=>{let L=null;return g.forEach(te=>{s.Rectangle.intersects(te,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(L=te)}),L};function H(D,T,L){D.startRow<0||D.startColumn<0||mt(D,(te,le)=>{var E,Ze;const se=Ut(te,le);let ie=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(L){const ce=s.Tools.deepClone((E=V.getValue(se.startRow,se.startColumn))==null?void 0:E.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ie}})}else{if(L){const ce=s.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:s.Tools.deepClone(G)},!0)),p&&(H(Q,{t:null}),H(Do,{b:s.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(No,{l:s.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Oo,{r:s.Tools.deepClone(G)},!0)),b&&H(U,{tl_br:s.Tools.deepClone(G)},!0),_&&H(U,{tl_bc:s.Tools.deepClone(G)},!0),N&&H(U,{tl_mr:s.Tools.deepClone(G)},!0),A&&H(U,{bl_tr:s.Tools.deepClone(G)},!0),x&&H(U,{ml_tr:s.Tools.deepClone(G)},!0),Y&&H(U,{bc_tr:s.Tools.deepClone(G)},!0),M&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(L.startColumn!==U.startColumn){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}else{if(T!==U.endColumn){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(T!==U.startColumn){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}}),y&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endRow!==U.endRow){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(L.startRow!==U.startRow){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}else{if(D!==U.endRow){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(D!==U.startRow){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}}),!I&&!p&&!R&&!w&&!M&&!y&&!b&&!_&&!N&&!A&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(Do,{b:null},!0),H(Z,{r:null}),H(No,{l:null},!0),H(K,{l:null}),H(Oo,{r:null},!0),H(U,{tl_br:null},!0),H(U,{tl_bc:null},!0),H(U,{tl_mr:null},!0),H(U,{bl_tr:null},!0),H(U,{ml_tr:null},!0),H(U,{bc_tr:null},!0),mt(U,(D,T)=>{var te,le,se,ie,E,Ze,ce,Po;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const O=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(L.startColumn!==U.startColumn){const O=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(L.endRow!==U.endRow){const O=(se=V.getValue(L.startRow,L.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(L.startRow!==U.startRow){const O=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==U.endColumn){const O=(E=V.getValue(D,T))==null?void 0:E.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==U.startColumn){const O=(Ze=V.getValue(D,T))==null?void 0:Ze.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==U.endRow){const O=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==U.startRow){const O=(Po=V.getValue(D,T))==null?void 0:Po.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const rn={unitId:c,subUnitId:l,cellValue:V.getData()},Gr=Se(n,rn);return o.syncExecuteCommand(q.id,rn)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:Gr}],redoMutations:[{id:q.id,params:rn}]}),!0):!1}},hs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.TRUE)}}return!0}},vs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.FALSE)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},u=vs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:Ln(r).map(g=>({range:g,primary:oe(g,a),style:null}))},l=n.get(s.ICommandService);return s.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:je.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var c;const o=(c=n.get(h.SelectionManagerService).getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(s.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var S;const o=(S=n.get(h.SelectionManagerService).getSelections())==null?void 0:S.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:o},c={unitId:i,subUnitId:u,pluginName:X,selections:Ln(o).map(v=>({range:v,primary:oe(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:oe(v,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:je.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(s.IUndoRedoService),f=hs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:f},{id:$.id,params:l}],redoMutations:[{id:je.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function Ln(n){return Ss(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Ss(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Vt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=B(r);if(!a)return!1;const{unitId:i,subUnitId:u,worksheet:d}=a,{startColumn:c,startRow:l,xSplit:m,ySplit:g}=t;if(l>=d.getRowCount()||c>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const S={unitId:i,subUnitId:u,...t},v=Vt(n,S);return o.syncExecuteCommand(ye.id,S)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:S}]}),!0):!1}},fs={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=B(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Vt(n,u);return t.syncExecuteCommand(ye.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:d}],redoMutations:[{id:ye.id,params:u}]}),!0):!1}},Cs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Rs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:r},c=Cs(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:r.map(S=>({range:S,primary:oe(S,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:Fn(r).map(S=>({range:S,primary:oe(S,u),style:null}))};return s.sequenceExecute([{id:He.id,params:d},{id:$.id,params:l}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:$e.id,params:c},{id:$.id,params:m}],redoMutations:[{id:He.id,params:d},{id:$.id,params:l}]}),!0}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(s.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var f;const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(f=t.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,l={unitId:u,subUnitId:d,ranges:a},m={unitId:u,subUnitId:d,pluginName:X,selections:Fn(a).map(C=>({range:C,primary:oe(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:oe(C,c),style:null}))},S=Rs(n,l);return s.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:S},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function Fn(n){return Is(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Is(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const J={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:u,style:d}=t,c=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(h.SelectionManagerService),g=u?[u]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const S=new s.ObjectMatrix,v=os(i);if(s.Tools.isArray(d.value))for(let M=0;M<g.length;M++)v.forOperableEach(g[M],(y,b,_)=>{S.setValue(y,b,{s:{[d.type]:d.value[y-_.startRow][b-_.startColumn]}})});else for(let M=0;M<g.length;M++){const y={s:{[d.type]:d.value}};v.forOperableEach(g[M],(b,_)=>S.setValue(b,_,y))}const f={subUnitId:a,unitId:r,cellValue:S.getMatrix()},C=Se(n,f),I=c.syncExecuteCommand(q.id,f),{undos:R,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),w=s.sequenceExecute([...p],c);return I&&w.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}},Ms={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,u)}},ps={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;r=e.getRange(i,u).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ws={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ys={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}};s.CommandType.COMMAND;const Us={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(J.id,e)}},_s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(J.id,e)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,o)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(J.id,e)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(J.id,e)}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(J.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(J.id,r)}},bs=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={color:t.value,unitId:a,subUnitId:i},d=bs(n,u);return o.syncExecuteCommand(xe.id,u)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:u}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},Ts=4,Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},Ts)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let l=c.startColumn;l<c.endColumn+1;l++){const m=i.getColumnOrCreate(l);a[l]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Me={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),u=t.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-l.startColumn])!=null?d:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,S=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,f=e.filter(b=>b.range.rangeType===s.RANGE_TYPE.COLUMN),C=v?s.RANGE_TYPE.ALL:f.some(({range:b})=>{const{startColumn:_,endColumn:N}=b;return _<=l&&l<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(C===s.RANGE_TYPE.ALL){const b=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((N,A)=>({startRow:0,endRow:b-1,startColumn:A,endColumn:A}));I={subUnitId:c,unitId:d,colWidth:S,ranges:_}}else C===s.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:f.map(b=>s.Rectangle.clone(b.range)),colWidth:S}:I={subUnitId:c,unitId:d,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=Wt(n,I),p=r.syncExecuteCommand(Me.id,I),{undos:w,redos:M}=n.get(h.SheetInterceptorService).onCommandExecute({id:jt.id,params:I}),y=s.sequenceExecute([...M],r);return p&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...M]}),!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=Wt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:S}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=s.sequenceExecute([...S],e);return m&&v.result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...S]}),!0):!1}},Jn=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Ue={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=B(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:s.BooleanNumber.TRUE},S=Jn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:S}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Es=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SheetInterceptorService),a=B(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Es(n,d),l=r.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(f=l.preUndos)!=null?f:[],{id:gt.id,params:c},...l.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Ns=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:u}=r,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Ns(n,c);return o.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:l}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ds=2e3,eo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<m+1;g++){const S=c.getRowOrCreate(g);d[g]=S.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const S=c.getRowOrCreate(g);d[g]=S.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:d}},Os=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e),d=[],c=u.getRowManager();for(const l of r){const{row:m}=l,{ah:g}=c.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},pe={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=d.getConfig().defaultRowHeight,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.h=a:f.h=(m=a[v])!=null?m:c,f.h=Math.min(Ds,f.h)}return!0}},ue={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=void 0,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.ia=a:f.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of r){const m=d.getRowOrCreate(c);m.ah=l}return!0}},to={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:u}=r,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.ROW),v=g?s.RANGE_TYPE.ALL:S.some(({range:y})=>{const{startRow:b,endRow:_}=y;return b<=d&&d<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(v===s.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((_,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:y-1}));f={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===s.RANGE_TYPE.ROW?f={subUnitId:i,unitId:u,ranges:S.map(y=>s.Rectangle.clone(y.range)),rowHeight:m}:f={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=eo(n,f),I={unitId:u,subUnitId:i,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=$t(n,I),p=n.get(s.ICommandService),w=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:pe.id,params:f},{id:ue.id,params:I}],p).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:f},{id:ue.id,params:I}]}),!0):!1}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=eo(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=$t(n,g);return s.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:S}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,{anchorRow:l}=t!=null?t:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},S=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:f,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=s.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:S},...f],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!B(n.get(s.IUniverInstanceService)))return!1;const d=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getSheetBySheetId(e);if(!c||c.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=Jn(n,m),S=r.syncExecuteCommand(Ue.id,m),v={unitId:o,subUnitId:e},f=r.syncExecuteCommand(Ye.id,v);return S&&f?(a.pushUndoRedo({unitID:o,undoMutations:[{id:Ue.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}},so=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ro=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ao=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,u=a;o(i*u,{startRow:e-u+1,endRow:e,startColumn:r,endColumn:r});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:r};for(let c=r-1;c>=0&&n.getValue(e,c);c--){u=Math.min(n.getValue(e,c)||0,u),i++;const l=u*i;d.startColumn=c,d.startRow=e-u+1,o(l,d)}}),t},Ps=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),qt=n=>{const t=[];let o=ao(n);for(;o.area>0;)o.range&&(t.push(o.range),Ps(n,o.range)),o=ao(n);return t},xt=n=>{const t=so(n);return qt(t)};class ks{constructor(){W(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=ro(this._matrix);return qt(t)}}const As=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Vs=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Ne);const Ls=(n,t)=>{const o=n.get(Ne),{values:e,unitId:r,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{s.Range.foreach(m,(g,S)=>{const v=o.getValue(r,a,g,S);v?i.push({pattern:v.pattern,row:g,col:S}):u.push({startColumn:S,endColumn:S,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(r,a,i);Object.keys(c.values).forEach(l=>{const m=c.values[l];m.ranges=xt(m.ranges)}),d.push({id:ht.id,params:vt(r,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:u}}),d},ht={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(Ne),a=t.unitId,i=t.subUnitId,u=Object.keys(o).reduce((d,c)=>{const l=e[c],m=o[c].ranges;return l&&d.push({...l,ranges:m}),d},[]);return r.setValues(a,i,u),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Ne).deleteValues(o,e,r),!0}},Bs=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(d=>{s.Range.foreach(d,(c,l)=>{const m=o.getValue(r,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(r,a,i);return Object.keys(u.values).forEach(d=>{const c=u.values[d];c.ranges=xt(c.ranges)}),[{id:ht.id,params:u}]},vt=(n,t,o)=>{const e=As(o,"pattern"),r={},a={},i=Vs();return Object.keys(e).forEach(u=>{const d=e[u],c=i();r[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},io={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},uo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lo={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Kt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Xt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var c;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(h.SheetInterceptorService).onCommandExecute({id:Xt.id,params:t}),i={name:t.name,unitId:t.unitId},u=[...(c=a.preRedos)!=null?c:[],{id:Kt.id,params:i},...a.redos],d=n.get(s.ICommandService);return s.sequenceExecute(u,d).result}},go="maxCellsPerSheet",Ws=3e6;var js=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Fs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&js(t,o,r),r},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[j,tt,_t,nt,hn,at,it,jt,to,yn,wn,Be,Re,ut,dt,Mn,In,Le,Ce,Un,_e,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Nn,F,zn,$n,Gn,Dn,kn,We,On,Pn,Vn,je,Fe,Ft,fs,Bn,ye,xn,qe,q,no,jn,$e,He,An,Wn,At,Lt,J,Xn,xe,Hn,Kn,Yn,qn,Xt,Kt,Bt,Ye,Me,Zn,Ue,Ht,gt,Qn,Ke,Gt,pe,zt,ue,oo,ht,$,Yt,io,uo,lo,co,mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(go,Ws)}};St=Hs([s.OnLifecycle(s.LifecycleStages.Starting,St),ho(0,s.ICommandService),ho(1,s.IConfigService)],St);var $s=Object.defineProperty,Gs=Object.getOwnPropertyDescriptor,zs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Gs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&$s(t,o,r),r},vo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const u=o[i];if(u==null)return!0;Object.keys(u).forEach(c=>{const l=u[c];if(l==null)return!0;const m=this._getMergedCellData(i,c,l),g={subUnitId:c,unitId:i,cellValue:m};r.push({id:q.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new s.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=ne.handleNumfmtInCell(m,l,r);u.setValue(d,c,g)}),u.clone()}};ft=zs([s.OnLifecycle(s.LifecycleStages.Ready,ft),vo(0,z.Inject(s.IUniverInstanceService)),vo(1,s.ICommandService)],ft);var qs=Object.defineProperty,xs=Object.getOwnPropertyDescriptor,Ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?xs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&qs(t,o,r),r},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};Rt=Ys([s.OnLifecycle(s.LifecycleStages.Ready,Rt),Ct(0,s.ICommandService),Ct(1,ne.IFeatureCalculationManagerService),Ct(2,s.IUniverInstanceService),Ct(3,z.Inject(ne.FormulaDataModel))],Rt);const P={MoveRangeCommandId:vn,InsertRowCommandId:Rn,InsertColCommandId:pn,RemoveColCommandId:En,RemoveRowCommandId:Tn,DeleteRangeMoveLeftCommandId:Sn,DeleteRangeMoveUpCommandId:fn,InsertRangeMoveDownCommandId:ds,InsertRangeMoveRightCommandId:Cn,MoveColsCommandId:bn,MoveRowsCommandId:_n};var k=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(k||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=It,t.startRow=0,t.endRow=It),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Xe=(n,t,o)=>{const e={...o},r={...t},a=(f,C)=>{const I=Math.max(f.start,C.start),R=Math.min(f.end,C.end);return R<I?null:{start:I,end:R}},i=f=>f.end-f.start+1,u=(f,C)=>({start:f.start-C.start,end:f.start-C.start+f.end-f.start}),d=(f,C)=>({start:C.start+f.start,end:C.start+f.start+f.end-f.start}),c=t.start>n.start;if(c){const f=Math.min(n.end,t.start)-n.start+1;r.start-=f,r.end-=f}const l=i(n),m=l,g=a(n,e),S=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const f=i(g);if(S){const C=u(e,n),I=d(C,r);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=f+l,e.start-=l):e.end-=f:c?e.end-=f:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+f):e.end-=f}const v=a(r,e);return S||(r.start<=e.start?(e.start+=m,e.end+=m):v&&(c?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Jt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:u.step||0,length:u.length||0}]},Ks=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(r,i,a),s.queryObjectMatrix(u,c=>c===1)},Zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:u.step||0,length:u.length||0}]},Xs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(r,i,a),s.queryObjectMatrix(u,d=>d===1)},So=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const u=s.Rectangle.getRelativeRange(t,e),d=s.Rectangle.getPositionRange(u,o);return[{type:k.Set,range:d}]}return r},Js=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const S=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(S,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(S,v)=>{r.setValue(S,v,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(S,v)=>{r.getValue(S,v)&&(r.setValue(S,v,void 0),a.setValue(S,v,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,c={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d};return c&&s.Range.foreach(c,(S,v)=>{var I;const f=S+d,C=v+u;r.setValue(f,C,(I=a.getValue(S,v))!=null?I:0)}),s.queryObjectMatrix(r,S=>S===1)},De=(n,t)=>{const o=ve(n),e=ve(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const u=-r(i);return{step:-(r(o)-r(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Qt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},en=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function Zs(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:k.Delete}),s.Rectangle.contains(n,o)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const tn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},nn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},fo=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qs=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),s.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},er=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),s.queryObjectMatrix(u,c=>c===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},tr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l,m-r,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l,m-r,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Io=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},nr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l-r,m,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l-r,m,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case k.Delete:{o=null;break}case k.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case k.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},or=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Ro(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Io(t,n);break}case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Co(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:{o=Zt(t,n);break}case P.MoveRangeCommandId:{o=So(t,n);break}case P.MoveRowsCommandId:{o=Jt(t,n);break}case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)},sr=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return tr(t,n);case P.DeleteRangeMoveUpCommandId:return nr(t,n);case P.InsertRangeMoveDownCommandId:return Qs(t,n);case P.InsertRangeMoveRightCommandId:return er(t,n);case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:return Xs(t,n);case P.MoveRangeCommandId:return Js(t,n);case P.MoveRowsCommandId:return Ks(t,n);case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)};function rr(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(o){case Ae.id:r.type=k.Delete;break;case be.id:r=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=k.VerticalMove;break;case Te.id:r=Xe({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Ie.id:r=De(e.range,n),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case we.id:r=De(ae(e.range),ae(n)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Oe(ae(e.range),ae(n)),r.type=k.VerticalMove;break;case Re.id:r=Oe(e.range,n),r.type=k.HorizontalMove;break;case Ve.id:r=Zs(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Pe(r,n):Pe([r],n):n}var ar=Object.defineProperty,ir=Object.getOwnPropertyDescriptor,ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?ir(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&ar(t,o,r),r},Mt=(n,t)=>(o,e)=>t(o,e,n);const dr=s.createInterceptorKey("MERGE_REDO"),lr=s.createInterceptorKey("MERGE_UNDO");class cr extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=rr(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();W(this,"interceptor",new s.InterceptorManager({MERGE_REDO:dr,MERGE_UNDO:lr}));W(this,"_watchRanges",new Set);W(this,"_refRangeManagerMap",new Map);W(this,"_serializer",mr());W(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Mo(this._univerInstanceService),a=po(this._univerInstanceService),d=((()=>{switch(o.id){case P.MoveColsCommandId:{const S=o.params,v=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],r,a)}case P.MoveRowsCommandId:{const S=o.params,v=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:v,endRow:e.getRowCount()-1}],r,a)}case P.MoveRangeCommandId:{const S=o;return this._checkRange([S.params.fromRange,S.params.toRange],r,a)}case P.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.InsertColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([f],r,a)}}})()||[]).reduce((S,v)=>{const f=v(o);return S.push(f),S},[]).reduce((S,v)=>{var f,C;return S.redos.push(...v.redos),S.undos.push(...v.undos),S.preRedos.push(...(f=v.preRedos)!=null?f:[]),S.preUndos.push(...(C=v.preUndos)!=null?C:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:g,preRedos:c,preUndos:m}}})});W(this,"_checkRange",(o,e,r)=>{const a=yo(e,r),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(c=>{const l=i.get(c),m=this._serializer.deserialize(c);o.some(g=>s.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});W(this,"registerRefRange",(o,e,r,a)=>{const i=r||Mo(this._univerInstanceService),u=a||po(this._univerInstanceService),d=yo(i,u),c=this._serializer.serialize(o);let l=this._refRangeManagerMap.get(d);l||(l=new Map,this._refRangeManagerMap.set(d,l));const m=l.get(c);return m?m.add(e):l.set(c,new Set([e])),s.toDisposable(()=>{const g=l.get(c);g&&(g.delete(e),g.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(d)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new cr(o,e,r,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),c=this.disposeWithMe(d);return s.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=ur([s.OnLifecycle(s.LifecycleStages.Ready,h.RefRangeService),Mt(0,s.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(s.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Mo(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function po(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function wo(n){return n.getSelectionRanges()||[]}function yo(n,t){return`${n}_${t}`}function mr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,vr=(n,t,o,e)=>{for(var r=e>1?void 0:e?hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&gr(t,o,r),r},Ge=(n,t)=>(o,e)=>t(o,e,n);const Sr=[Re.id,Ce.id,Ie.id,we.id],fr=[be.id,Te.id];function Uo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[r];if(t===s.Dimension.ROWS)for(let c=a;c<=i;c++){const l={startRow:c,endRow:c,startColumn:u,endColumn:d};e.push(l)}else if(t===s.Dimension.COLUMNS)for(let c=u;c<=d;c++){const l={startRow:a,endRow:i,startColumn:c,endColumn:c};e.push(l)}}o=e}return o}h.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,u){super();W(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),S=[{id:F.id,params:m}],v=[{id:j.id,params:g}];return{redos:S,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case P.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case P.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,r,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Bt.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(r.id===j.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(f=>{if(m<=f.startRow&&g>=f.endRow){d.ranges.push(f);const C=Jt({id:P.MoveRowsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveColsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(f=>{if(m<=f.startColumn&&g>=f.endColumn){d.ranges.push(f);const C=Zt({id:P.MoveColsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveRangeCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>s.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>s.Rectangle.intersects(v,o.toRange)),l=d.map(v=>s.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>s.Rectangle.getPositionRange(v,o.toRange)),m=Uo(l).filter(v=>!u.some(f=>s.Rectangle.equals(v,f))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}}],S=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:d}}];return{redos:g,undos:S}}_handleInsertRowCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>(d>p.startRow&&d<=p.endRow&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>{if(d>p.startRow&&d<=p.endRow){const w=c-d+1;p.endRow+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>(d>p.startColumn&&d<=p.endColumn&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>{if(d>p.startColumn&&d<=p.endColumn){const w=c-d+1;p.endColumn+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(u,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(u,M)){if(d<=M.startColumn&&c>=M.endColumn)return w;d>=M.startColumn&&c<=M.endColumn?M.endColumn-=c-d+1:d<M.startColumn?(M.startColumn=d,M.endColumn-=c-d+1):c>M.endColumn&&(M.endColumn=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(a,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(a,M)){if(d<=M.startRow&&c>=M.endRow)return w;d>=M.startRow&&c<=M.endRow?M.endRow-=c-d+1:d<M.startRow?(M.startRow=d,M.endRow-=c-d+1):c>M.endRow&&(M.endRow=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1;m.push({startRow:R.startRow+N,startColumn:R.startColumn,endRow:R.endRow+N,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1,A=s.Rectangle.moveVertical(R,-N);m.push(A)}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(fr.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,c=u?a.startRow:a.startColumn,l=u?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M}=C;s.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<p&&l>w?(p-=d,w-=d):c>w&&l<=p&&(p+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:v}=o.params,f=C=>this.refRangeHandle(C,S,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,f,S,v))})}if(Sr.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:u}=i,d=o.id.includes("row"),c=o.id.includes("insert"),l=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-l+1,S=[];a.forEach(I=>{let{startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y}=I;c?d?l<=R&&(R+=g,p+=g):l<=w&&(w+=g,M+=g):d?m<R&&(R-=g,p-=g):m<w&&(w-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||S.push({startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:v,subUnitId:f}=o.params,C=I=>this.refRangeHandle(I,v,f);S.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,f))})}}))}},h.MergeCellController=vr([s.OnLifecycle(s.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(s.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(s.IUniverInstanceService)),Ge(3,z.Inject(z.Injector)),Ge(4,z.Inject(h.SheetInterceptorService)),Ge(5,z.Inject(h.SelectionManagerService))],h.MergeCellController);function ge(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Cr={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},_o={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},Rr={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ir=Object.defineProperty,Mr=Object.getOwnPropertyDescriptor,pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Mr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ir(t,o,r),r},on=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,r);if(d!=null&&d.s){const c=u.get(d.s);if(c!=null&&c.n)return c.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(u=>{s.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,S={...m&&i.get(m)||{}};delete S.n;const v=i.setValue(S);l.s=v})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{s.Range.foreach(c,(l,m)=>{const g=a.getCellRaw(l,m);if(g){const v={...g.s&&i.get(g.s)||{},n:{pattern:d.pattern}},f=i.setValue(v);g.s=f}else{const S={n:{pattern:d.pattern}},v=i.setValue(S);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=pr([on(0,s.IResourceManagerService),on(1,s.IUniverInstanceService),on(2,s.ILogService)],h.NumfmtService);const bo="univer.sheet.editable";class Je extends s.PermissionPoint{constructor(o,e){super();W(this,"id",bo);W(this,"value",!0);W(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${bo}_${o}_${e}`}}var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,Ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&wr(t,o,r),r},To=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();W(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=r||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Ur([s.OnLifecycle(s.LifecycleStages.Ready,h.SheetPermissionService),To(0,z.Inject(s.IPermissionService)),To(1,z.Inject(s.IUniverInstanceService))],h.SheetPermissionService);function _r(n){var a,i,u;const t=n.get(s.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,r))==null?void 0:u.pipe(ke.map(d=>!d.value))}var br=Object.defineProperty,Tr=Object.getOwnPropertyDescriptor,Er=(n,t,o,e)=>{for(var r=e>1?void 0:e?Tr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&br(t,o,r),r},pt=(n,t)=>(o,e)=>t(o,e,n);const Nr="SHEET_DEFINED_NAME_PLUGIN";let wt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Nr,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Er([s.OnLifecycle(s.LifecycleStages.Ready,wt),pt(0,s.ICommandService),pt(1,s.IUniverInstanceService),pt(2,ne.IDefinedNamesService),pt(3,s.IResourceManagerService)],wt);var Dr=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,Pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Or(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Dr(t,o,r),r},sn=(n,t)=>(o,e)=>t(o,e,n);const kr="sheets";h.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[St],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ft],[Rt]),o.forEach(r=>{t.add(r)})}},W(yt,"pluginName",kr),W(yt,"type",s.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Pr([sn(1,s.ICommandService),sn(2,z.Inject(s.LocaleService)),sn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Ar=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,je.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],Vr=[q.id,Ve.id,F.id,j.id],Lr=1.5,Br="rgba(255, 255, 255, 0.01)";function Wr(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function jr(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=Eo(o)),r}function Eo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Fr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Hr=(n,t,o)=>{const r=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:S,startColumn:v,endRow:f,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const w=o.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);w&&(C=w.endColumn,S=w.startRow,f=w.endRow)}else if(a===s.Dimension.ROWS){const w=o.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);w&&(f=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:S,startColumn:v,endRow:f,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:S===g&&v===m},R=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),p={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:p}}return null}return null},$r=(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:r,subUnitId:a,pluginName:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=Hr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=$r,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Ar,h.COMMAND_LISTENER_VALUE_CHANGE=Vr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=_t,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=hn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=jt,h.DeltaRowHeightCommand=to,h.EffectRefRangId=P,h.EmptyMutation=io,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=yn,h.InsertColBeforeCommand=wn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=uo,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Mn,h.InsertRowBeforeCommand=In,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=Un,h.InsertSheetMutation=_e,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=go,h.MoveColsCommand=Pt,h.MoveColsMutation=Te,h.MoveRangeCommand=st,h.MoveRangeMutation=Ve,h.MoveRowsCommand=Ot,h.MoveRowsMutation=be,h.NORMAL_SELECTION_PLUGIN_NAME=X,h.OperatorType=k,h.RangeMergeUtil=ks,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=lo,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=gn,h.RemoveWorksheetMergeCommand=Nn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=zn,h.ResetTextColorCommand=$n,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Br,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Lr,h.ScrollToCellOperation=mo,h.SelectionMoveType=un,h.SetBackgroundColorCommand=Gn,h.SetBoldCommand=Ms,h.SetBorderBasicCommand=Dn,h.SetBorderColorCommand=kn,h.SetBorderCommand=We,h.SetBorderPositionCommand=On,h.SetBorderStyleCommand=Pn,h.SetColHiddenCommand=Vn,h.SetColHiddenMutation=je,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=co,h.SetFontFamilyCommand=Us,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Bn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=xn,h.SetItalicCommand=ps,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=Se,h.SetRowHeightCommand=no,h.SetRowHiddenCommand=jn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=An,h.SetSelectedRowsVisibleCommand=Wn,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ys,h.SetStyleCommand=J,h.SetTabColorCommand=Xn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Hn,h.SetTextRotationCommand=Kn,h.SetTextWrapCommand=Yn,h.SetUnderlineCommand=ws,h.SetVerticalTextAlignCommand=qn,h.SetWorkbookNameCommand=Xt,h.SetWorkbookNameMutation=Kt,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=Wt,h.SetWorksheetHideCommand=Zn,h.SetWorksheetHideMutation=Ue,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Qn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Os,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=oo,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=Eo,h.convertSelectionDataToRange=jr,h.createTopMatrixFromMatrix=ro,h.createTopMatrixFromRanges=so,h.enUS=Cr,h.factoryRemoveNumfmtUndoMutation=Bs,h.factorySetNumfmtUndoMutation=Ls,h.findAllRectangle=qt,h.followSelectionOperation=fe,h.getAddMergeMutationRangeByType=Uo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=_r,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Wr,h.getPrimaryForRange=oe,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=mn,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=sr,h.handleDefaultRangeChangeWithEffectRefCommands=or,h.handleDeleteRangeMoveLeft=Ro,h.handleDeleteRangeMoveUp=Io,h.handleDeleteRangeMutation=rs,h.handleIRemoveCol=Qt,h.handleIRemoveRow=en,h.handleInsertCol=nn,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=Co,h.handleInsertRangeMutation=ss,h.handleInsertRow=tn,h.handleMoveCols=Zt,h.handleMoveRange=So,h.handleMoveRows=Jt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.ruRU=Rr,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Fr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
+
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const u={st:o,ed:a},d=et({},t,!0);d&&s.Tools.removeNull(d),s.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=s.normalizeTextRuns(e)}const tt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Jo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:tt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.clone()}const _t={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:c,unitId:u,cellValue:Zo(l)},g=Se(n,m),S=a.onCommandExecute({id:_t.id}),v=[{id:q.id,params:m},...S.redos],f=[...S.undos,{id:q.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:u,undoMutations:f,redoMutations:v}),!0):!1}};function Zo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const nt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],S={subUnitId:c,unitId:u,cellValue:Qo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:nt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{s:null})}),t.clone()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_e={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function mn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const gn=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=ot(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:u}=a,d=u.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:d,unitId:r}},Ae={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},hn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=B(r,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=s.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},S=bt(n,g);return o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:S}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new s.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const c={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};s.Rectangle.contains(n,c)||r.push(c)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?ze(a,t,o):a}function es(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ts(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const fe=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:oe(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function os(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let u=a.startColumn;u<=a.endColumn;u++)e(i,u,a)}r(o)}return{forOperableEach:t}}const vn="sheet.command.move-range",st={type:s.CommandType.COMMAND,id:vn,handler:(n,t)=>{var I,R;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),u=B(r);if(!u)return!1;const{worksheet:d,subUnitId:c,unitId:l}=u,m=rt(n,{unitId:l,subUnitId:c,range:t.fromRange},{unitId:l,subUnitId:c,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const S=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=S.preRedos)!=null?I:[],...m.redos,...S.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:oe(t.toRange,d)}]}}],f=[...(R=S.preUndos)!=null?R:[],...m.undos,...S.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:oe(t.fromRange,d)}]}}];return s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(d),S=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),f=S==null?void 0:S.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(S&&v&&f&&C){const I=ze(c,S,!1);if(!s.Rectangle.equals(c,I)&&!e)return null;const R=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{R.setValue(_,N,C.getValue(_,N)),p.setValue(_,N,null)});const w=new s.ObjectMatrix;s.Range.foreach(c,(_,N)=>{w.setValue(_,N,f.getValue(_,N))});const M=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{const A=s.cellToRange(_,N),x=s.Rectangle.getRelativeRange(A,i),Y=s.Rectangle.getPositionRange(x,c);M.setValue(Y.startRow,Y.startColumn,C.getValue(_,N))});const y={from:{value:p.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};r.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:r,undos:a}}const qe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!u)return!1;const{subUnitId:d,unitId:c}=u,{value:l,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const S=new s.ObjectMatrix;let v;if(s.Tools.isArray(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=0;A<=_-y;A++)for(let x=0;x<=N-b;x++)S.setValue(A+y,x+b,l[A][x])}else if(s.isICellData(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=y;A<=_;A++)for(let x=b;x<=N;x++)S.setValue(A,x,l)}else v=l;const f={subUnitId:d,unitId:c,cellValue:v!=null?v:S.getMatrix()},C=Se(n,f),I=o.syncExecuteCommand(q.id,f),{undos:R,redos:p}=i.onCommandExecute({id:qe.id,params:{...f,range:g}}),w=s.sequenceExecute([...p],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(s.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const S=g.getCellMatrix(),v=S.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let p,w;if(u===s.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let N=i.startRow;N<=y;N++){const A=S.getRow(N),x=A?s.getArrayLength(A)-1:0;b=Math.max(b,x)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const _=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:p.startColumn+_,endRow:y,endColumn:p.endColumn+_}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const _=i.endRow-i.startRow+1;w={startRow:p.startRow+_,startColumn:i.startColumn,endRow:p.endRow+_,endColumn:y}}const M=rt(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:w},!0);M&&(o.push(...M.redos),e.push(...M.undos))}if(Object.entries(d).length===0)for(let p=i.startRow;p<=i.endRow;p++){d[p]||(d[p]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[p][w]=null}const f={subUnitId:a,unitId:r,cellValue:d},C=Se(n,f),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...f,range:i}});o.push({id:q.id,params:f},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(s.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),S=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:as([i])},f=Se(n,v),C=c.onCommandExecute({id:qe.id,params:v});if(o.push({id:q.id,params:v},...C.redos),e.push(...C.undos,{id:q.id,params:f}),i.startColumn<=S.endColumn||i.startRow<=S.endRow){let I=null,R=null;if(u===s.Dimension.COLUMNS&&i.endColumn<S.endColumn){const p=Math.min(i.endRow,S.endRow);let w=0;for(let y=i.startRow;y<=p;y++){const b=g.getRow(y),_=b?s.getArrayLength(b)-1:0;w=Math.max(w,_)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:w};const M=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-M,endRow:p,endColumn:I.endColumn-M}}if(u===s.Dimension.ROWS&&i.endRow<S.endRow){const p=Math.min(i.endColumn,S.endColumn),w=S.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:p};const M=i.endRow-i.startRow+1;R={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:p}}if(I&&R){const p=rt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:R},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ss(n,t,o,e,r,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(r===s.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const S=n.getValue(m,g);S==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,S)}for(let m=u;m>=i;m--)for(let g=d;g<=c;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const S=n.getValue(m,g);S==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,S)}for(let m=i;m<=u;m++)for(let g=c;g>=d;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function rs(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const S=n.getValue(m+c,g);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const S=n.getValue(m,g+l);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}}function as(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Sn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{worksheet:d,workbook:c,subUnitId:l,unitId:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},fn="sheet.command.delete-range-move-up",it={type:s.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);if(!u)return!1;const{unitId:d,subUnitId:c,workbook:l,worksheet:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const S={range:g,subUnitId:c,unitId:d,shiftDimension:s.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const c=d.getRowManager().getRowData(),l={h:d.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let f=m;f<m+g;f++)a?s.insertMatrixArray(f,(v=a[f-r.startRow])!=null?v:l,c):s.insertMatrixArray(f,l,c);return d.setRowCount(d.getRowCount()+r.endRow-r.startRow+1),d.getCellMatrix().insertRows(r.startRow,g),!0}},Dt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let f=l;f<l+m;f++){const C={w:g,hd:0};u?s.insertMatrixArray(f,(v=u[f-i.startColumn])!=null?v:C,c):s.insertMatrixArray(f,C,c)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},is=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,u=s.sliceMatrixArray(i.startRow,i.endRow,r),d=s.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)r.getRowFiltered(l);const d=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,d,u),r.getCellMatrix().removeRows(a.startRow,d),r.setRowCount(r.getRowCount()-d),!0}},us=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const u=r.getColumnManager().getColumnData(),d={},c=t.range,l=s.sliceMatrixArray(c.startColumn,c.endColumn,u),m=s.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,d,u),r.setColumnCount(r.getColumnCount()-d),r.getCellMatrix().removeColumns(a.startColumn,d),!0}},ds="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,M=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(M>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+M,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=g.getCell(Z,Q);K&&(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:m,unitId:l,shiftDimension:s.Dimension.ROWS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:ut.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,S,g)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Cn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Cn,handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,M=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(M>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:S,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};s.Range.foreach(v,(Z,Q)=>{const K=m.getCell(Z,Q);!K||!K.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:S,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:dt.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,l,m)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Rn="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:Rn,handler:async(n,t)=>{var w,M;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:S}=d,v=c===s.Direction.UP?g:g-1,f=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(S-g+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return s.sequenceExecute([{id:Ce.id,params:C},...R.redos,fe(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(S=>S.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};s.Range.foreach(e,(S,v)=>{const f=i.getCell(S,v);!f||!f.s||(l[S]||(l[S]={}),l[S][v]={s:f.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Le.id,m)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={unitId:u,subUnitId:d,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Le.id,l)}},pn="sheet.command.insert-col",Be={type:s.CommandType.COMMAND,id:pn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),S=g.getSheetBySheetId(t.subUnitId),v=u===s.Direction.LEFT?l:l-1,f=S.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return s.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,fe(i,g,S)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=R.preUndos)!=null?M:[],{id:Ie.id,params:I},...R.undos].filter(Boolean),redoMutations:[...(y=R.preRedos)!=null?y:[],{id:Re.id,params:C},...R.redos].filter(Boolean)}),!0):!1}},wn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={};s.Range.foreach(e,(g,S)=>{const v=i.getCell(g,S);!v||!v.s||(l[g]||(l[g]={}),l[g][S]={s:v.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(s.ICommandService).executeCommand(Be.id,m)}},yn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={unitId:u,subUnitId:d,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Be.id,l)}},Un={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=mn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:c,sheet:l,unitId:u},g=bt(n,m);return o.syncExecuteCommand(_e.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,u=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+u,startRow:r.startRow+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const c=r.startRow,l=r.endRow-r.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function cs(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,u=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+u,startColumn:r.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const c=r.startColumn,l=r.endColumn-r.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function ms(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function gs(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const _n="sheet.command.move-rows",Ot={id:_n,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startRow:a,endRow:a+f.endRow-f.startRow},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=ls(n,p),y=a-r<0,b=f.endRow-f.startRow+1,_=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0):!1}},bn="sheet.command.move-cols",Pt={id:bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(gs(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startColumn:a,endColumn:a+f.endColumn-f.startColumn},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=cs(n,p),M=f.endColumn-f.startColumn+1,_=a-r<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0}},Tn="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(_=>_+1)],b=[...m.map(_=>_-1),r.endRow];for(let _=y.length-1;_>=0;_--)y[_]<=b[_]&&g.push({startRow:y[_],endRow:b[_],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const S=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},_=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),N={unitId:l,subUnitId:c,cellValue:_.getMatrix()},A=is(b,d);S.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:A},{id:q.id,params:N})});const f=e.onCommandExecute({id:lt.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],...S,...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],...v,...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],...S,...f.redos]}),!0):!1}},En="sheet.command.remove-col",ct={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:r},g=us(n,m),S=d.getCellMatrix().getSlice(0,d.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:l,subUnitId:c,cellValue:S.getMatrix()},f=e.onCommandExecute({id:ct.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],{id:Ie.id,params:m},...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],{id:Ie.id,params:m},...f.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var R,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(r,t);if(!i)return!1;const{unitId:u,subUnitId:d,workbook:c,worksheet:l}=i;if(c.getSheets().length<=1)return!1;const m=c.getSheetIndex(l);c.getConfig().sheetOrder[m+1];const g={subUnitId:d,unitId:u,subUnitName:l.getName()},S=gn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),f=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(p=v.preUndos)!=null?p:[],{id:_e.id,params:S},...v.undos];return s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:f}),!0):!1}},me=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,u=t.ranges,d=[];for(let c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const m=i[l],g=u[c];s.Rectangle.intersects(m,g)&&d.push(i[l])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let c=i.length-1;c>=0;c--){const l=i[c],m=u[d];s.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{subUnitId:u,unitId:d,worksheet:c}=i,l={unitId:d,subUnitId:u,ranges:a};let m=!1;const g=c.getConfig().mergeData;if(a.forEach(M=>{g.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const S=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const f=s.Tools.deepClone(v),C=s.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:p}=I.range;return I.primary={startRow:R,startColumn:p,endRow:R,endColumn:p,actualRow:R,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:S},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:j.id,params:S},{id:$.id,params:{selections:f}}],redoMutations:[{id:F.id,params:S},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){W(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});W(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));W(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mt(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let u=e;u<=a;u++)t(i,u)}const Dn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:u}=r,d=n.get(s.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(We.id,{unitId:o,subUnitId:e})}},On={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(Ee).setType(t.value),o.executeCommand(We.id)}},Pn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setStyle(t.value),o.executeCommand(We.id)}},kn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(r,t);if(!u)return!1;const{worksheet:d,unitId:c,subUnitId:l}=u,m=a.getSelectionRanges(),g=d.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:S,color:v,type:f,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=f===s.BorderType.TOP||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,R=f===s.BorderType.LEFT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,p=f===s.BorderType.BOTTOM||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,w=f===s.BorderType.RIGHT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,M=f===s.BorderType.VERTICAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,y=f===s.BorderType.HORIZONTAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,b=f.indexOf("tlbr")>-1,_=f.indexOf("tlbc")>-1,N=f.indexOf("tlmr")>-1,A=f.indexOf("bltr")>-1,x=f.indexOf("mltr")>-1,Y=f.indexOf("bctr")>-1,U=m[0],de={startRow:U.startRow-1,startColumn:U.startColumn,endRow:U.startRow-1,endColumn:U.endColumn},Z={startRow:U.startRow,startColumn:U.startColumn-1,endRow:U.endRow,endColumn:U.startColumn-1},Q={startRow:U.endRow+1,startColumn:U.startColumn,endRow:U.endRow+1,endColumn:U.endColumn},K={startRow:U.startRow,startColumn:U.endColumn+1,endRow:U.endRow,endColumn:U.endColumn+1},ee={startRow:U.startRow,startColumn:U.startColumn,endRow:U.startRow,endColumn:U.endColumn},No={startRow:U.startRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.startColumn},Do={startRow:U.endRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.endColumn},Oo={startRow:U.startRow,startColumn:U.endColumn,endRow:U.endRow,endColumn:U.endColumn},V=new s.ObjectMatrix,G={s:S,cl:{rgb:v}},Ut=(D,T)=>{let L=null;return g.forEach(te=>{s.Rectangle.intersects(te,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(L=te)}),L};function H(D,T,L){D.startRow<0||D.startColumn<0||mt(D,(te,le)=>{var E,Ze;const se=Ut(te,le);let ie=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(L){const ce=s.Tools.deepClone((E=V.getValue(se.startRow,se.startColumn))==null?void 0:E.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ie}})}else{if(L){const ce=s.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:s.Tools.deepClone(G)},!0)),p&&(H(Q,{t:null}),H(Do,{b:s.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(No,{l:s.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Oo,{r:s.Tools.deepClone(G)},!0)),b&&H(U,{tl_br:s.Tools.deepClone(G)},!0),_&&H(U,{tl_bc:s.Tools.deepClone(G)},!0),N&&H(U,{tl_mr:s.Tools.deepClone(G)},!0),A&&H(U,{bl_tr:s.Tools.deepClone(G)},!0),x&&H(U,{ml_tr:s.Tools.deepClone(G)},!0),Y&&H(U,{bc_tr:s.Tools.deepClone(G)},!0),M&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(L.startColumn!==U.startColumn){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}else{if(T!==U.endColumn){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(T!==U.startColumn){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}}),y&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endRow!==U.endRow){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(L.startRow!==U.startRow){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}else{if(D!==U.endRow){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(D!==U.startRow){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}}),!I&&!p&&!R&&!w&&!M&&!y&&!b&&!_&&!N&&!A&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(Do,{b:null},!0),H(Z,{r:null}),H(No,{l:null},!0),H(K,{l:null}),H(Oo,{r:null},!0),H(U,{tl_br:null},!0),H(U,{tl_bc:null},!0),H(U,{tl_mr:null},!0),H(U,{bl_tr:null},!0),H(U,{ml_tr:null},!0),H(U,{bc_tr:null},!0),mt(U,(D,T)=>{var te,le,se,ie,E,Ze,ce,Po;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const O=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(L.startColumn!==U.startColumn){const O=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(L.endRow!==U.endRow){const O=(se=V.getValue(L.startRow,L.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(L.startRow!==U.startRow){const O=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==U.endColumn){const O=(E=V.getValue(D,T))==null?void 0:E.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==U.startColumn){const O=(Ze=V.getValue(D,T))==null?void 0:Ze.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==U.endRow){const O=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==U.startRow){const O=(Po=V.getValue(D,T))==null?void 0:Po.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const rn={unitId:c,subUnitId:l,cellValue:V.getData()},Gr=Se(n,rn);return o.syncExecuteCommand(q.id,rn)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:Gr}],redoMutations:[{id:q.id,params:rn}]}),!0):!1}},hs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.TRUE)}}return!0}},vs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.FALSE)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},u=vs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:Ln(r).map(g=>({range:g,primary:oe(g,a),style:null}))},l=n.get(s.ICommandService);return s.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:je.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var c;const o=(c=n.get(h.SelectionManagerService).getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(s.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var S;const o=(S=n.get(h.SelectionManagerService).getSelections())==null?void 0:S.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:o},c={unitId:i,subUnitId:u,pluginName:X,selections:Ln(o).map(v=>({range:v,primary:oe(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:oe(v,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:je.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(s.IUndoRedoService),f=hs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:f},{id:$.id,params:l}],redoMutations:[{id:je.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function Ln(n){return Ss(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Ss(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Vt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=B(r);if(!a)return!1;const{unitId:i,subUnitId:u,worksheet:d}=a,{startColumn:c,startRow:l,xSplit:m,ySplit:g}=t;if(l>=d.getRowCount()||c>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const S={unitId:i,subUnitId:u,...t},v=Vt(n,S);return o.syncExecuteCommand(ye.id,S)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:S}]}),!0):!1}},fs={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=B(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Vt(n,u);return t.syncExecuteCommand(ye.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:d}],redoMutations:[{id:ye.id,params:u}]}),!0):!1}},Cs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Rs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:r},c=Cs(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:r.map(S=>({range:S,primary:oe(S,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:Fn(r).map(S=>({range:S,primary:oe(S,u),style:null}))};return s.sequenceExecute([{id:He.id,params:d},{id:$.id,params:l}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:$e.id,params:c},{id:$.id,params:m}],redoMutations:[{id:He.id,params:d},{id:$.id,params:l}]}),!0}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(s.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var f;const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(f=t.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(r);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,l={unitId:u,subUnitId:d,ranges:a},m={unitId:u,subUnitId:d,pluginName:X,selections:Fn(a).map(C=>({range:C,primary:oe(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:oe(C,c),style:null}))},S=Rs(n,l);return s.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:S},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function Fn(n){return Is(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Is(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const J={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:u,style:d}=t,c=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(h.SelectionManagerService),g=u?[u]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const S=new s.ObjectMatrix,v=os(i);if(s.Tools.isArray(d.value))for(let M=0;M<g.length;M++)v.forOperableEach(g[M],(y,b,_)=>{S.setValue(y,b,{s:{[d.type]:d.value[y-_.startRow][b-_.startColumn]}})});else for(let M=0;M<g.length;M++){const y={s:{[d.type]:d.value}};v.forOperableEach(g[M],(b,_)=>S.setValue(b,_,y))}const f={subUnitId:a,unitId:r,cellValue:S.getMatrix()},C=Se(n,f),I=c.syncExecuteCommand(q.id,f),{undos:R,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),w=s.sequenceExecute([...p],c);return I&&w.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}},Ms={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,u)}},ps={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;r=e.getRange(i,u).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ws={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ys={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}};s.CommandType.COMMAND;const Us={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(J.id,e)}},_s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(J.id,e)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,o)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(J.id,e)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(J.id,e)}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(J.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(J.id,r)}},bs=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={color:t.value,unitId:a,subUnitId:i},d=bs(n,u);return o.syncExecuteCommand(xe.id,u)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:u}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},Ts=4,Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},Ts)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let l=c.startColumn;l<c.endColumn+1;l++){const m=i.getColumnOrCreate(l);a[l]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Me={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),u=t.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-l.startColumn])!=null?d:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,S=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,f=e.filter(b=>b.range.rangeType===s.RANGE_TYPE.COLUMN),C=v?s.RANGE_TYPE.ALL:f.some(({range:b})=>{const{startColumn:_,endColumn:N}=b;return _<=l&&l<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(C===s.RANGE_TYPE.ALL){const b=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((N,A)=>({startRow:0,endRow:b-1,startColumn:A,endColumn:A}));I={subUnitId:c,unitId:d,colWidth:S,ranges:_}}else C===s.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:f.map(b=>s.Rectangle.clone(b.range)),colWidth:S}:I={subUnitId:c,unitId:d,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=Wt(n,I),p=r.syncExecuteCommand(Me.id,I),{undos:w,redos:M}=n.get(h.SheetInterceptorService).onCommandExecute({id:jt.id,params:I}),y=s.sequenceExecute([...M],r);return p&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...M]}),!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=Wt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:S}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=s.sequenceExecute([...S],e);return m&&v.result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...S]}),!0):!1}},Jn=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Ue={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=B(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:s.BooleanNumber.TRUE},S=Jn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:S}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Es=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SheetInterceptorService),a=B(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Es(n,d),l=r.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(f=l.preUndos)!=null?f:[],{id:gt.id,params:c},...l.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Ns=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:u}=r,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Ns(n,c);return o.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:l}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ds=2e3,eo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<m+1;g++){const S=c.getRowOrCreate(g);d[g]=S.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const S=c.getRowOrCreate(g);d[g]=S.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:d}},Os=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u)return{unitId:o,subUnitId:e,rowsAutoHeightInfo:[]};const d=[],c=u.getRowManager();for(const l of r){const{row:m}=l,{ah:g}=c.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},pe={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=d.getConfig().defaultRowHeight,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.h=a:f.h=(m=a[v])!=null?m:c,f.h=Math.min(Ds,f.h)}return!0}},ue={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=void 0,l=d.getRowManager();for(const{startRow:g,endRow:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.ia=a:f.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of r){const m=d.getRowOrCreate(c);m.ah=l}return!0}},to={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:u}=r,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.ROW),v=g?s.RANGE_TYPE.ALL:S.some(({range:y})=>{const{startRow:b,endRow:_}=y;return b<=d&&d<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(v===s.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((_,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:y-1}));f={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===s.RANGE_TYPE.ROW?f={subUnitId:i,unitId:u,ranges:S.map(y=>s.Rectangle.clone(y.range)),rowHeight:m}:f={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=eo(n,f),I={unitId:u,subUnitId:i,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=$t(n,I),p=n.get(s.ICommandService),w=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:pe.id,params:f},{id:ue.id,params:I}],p).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:f},{id:ue.id,params:I}]}),!0):!1}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=eo(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=$t(n,g);return s.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:S}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,{anchorRow:l}=t!=null?t:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},S=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:f,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=s.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:S},...f],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!B(n.get(s.IUniverInstanceService)))return!1;const d=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getSheetBySheetId(e);if(!c||c.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=Jn(n,m),S=r.syncExecuteCommand(Ue.id,m),v={unitId:o,subUnitId:e},f=r.syncExecuteCommand(Ye.id,v);return S&&f?(a.pushUndoRedo({unitID:o,undoMutations:[{id:Ue.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}},so=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ro=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ao=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,u=a;o(i*u,{startRow:e-u+1,endRow:e,startColumn:r,endColumn:r});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:r};for(let c=r-1;c>=0&&n.getValue(e,c);c--){u=Math.min(n.getValue(e,c)||0,u),i++;const l=u*i;d.startColumn=c,d.startRow=e-u+1,o(l,d)}}),t},Ps=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),qt=n=>{const t=[];let o=ao(n);for(;o.area>0;)o.range&&(t.push(o.range),Ps(n,o.range)),o=ao(n);return t},xt=n=>{const t=so(n);return qt(t)};class ks{constructor(){W(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=ro(this._matrix);return qt(t)}}const As=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Vs=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Ne);const Ls=(n,t)=>{const o=n.get(Ne),{values:e,unitId:r,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{s.Range.foreach(m,(g,S)=>{const v=o.getValue(r,a,g,S);v?i.push({pattern:v.pattern,row:g,col:S}):u.push({startColumn:S,endColumn:S,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(r,a,i);Object.keys(c.values).forEach(l=>{const m=c.values[l];m.ranges=xt(m.ranges)}),d.push({id:ht.id,params:vt(r,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:u}}),d},ht={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(Ne),a=t.unitId,i=t.subUnitId,u=Object.keys(o).reduce((d,c)=>{const l=e[c],m=o[c].ranges;return l&&d.push({...l,ranges:m}),d},[]);return r.setValues(a,i,u),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Ne).deleteValues(o,e,r),!0}},Bs=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(d=>{s.Range.foreach(d,(c,l)=>{const m=o.getValue(r,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(r,a,i);return Object.keys(u.values).forEach(d=>{const c=u.values[d];c.ranges=xt(c.ranges)}),[{id:ht.id,params:u}]},vt=(n,t,o)=>{const e=As(o,"pattern"),r={},a={},i=Vs();return Object.keys(e).forEach(u=>{const d=e[u],c=i();r[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},io={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},uo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lo={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Kt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Xt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var c;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(h.SheetInterceptorService).onCommandExecute({id:Xt.id,params:t}),i={name:t.name,unitId:t.unitId},u=[...(c=a.preRedos)!=null?c:[],{id:Kt.id,params:i},...a.redos],d=n.get(s.ICommandService);return s.sequenceExecute(u,d).result}},go="maxCellsPerSheet",Ws=3e6;var js=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Fs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&js(t,o,r),r},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[j,tt,_t,nt,hn,at,it,jt,to,yn,wn,Be,Re,ut,dt,Mn,In,Le,Ce,Un,_e,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Nn,F,zn,$n,Gn,Dn,kn,We,On,Pn,Vn,je,Fe,Ft,fs,Bn,ye,xn,qe,q,no,jn,$e,He,An,Wn,At,Lt,J,Xn,xe,Hn,Kn,Yn,qn,Xt,Kt,Bt,Ye,Me,Zn,Ue,Ht,gt,Qn,Ke,Gt,pe,zt,ue,oo,ht,$,Yt,io,uo,lo,co,mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(go,Ws)}};St=Hs([s.OnLifecycle(s.LifecycleStages.Starting,St),ho(0,s.ICommandService),ho(1,s.IConfigService)],St);var $s=Object.defineProperty,Gs=Object.getOwnPropertyDescriptor,zs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Gs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&$s(t,o,r),r},vo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const u=o[i];if(u==null)return!0;Object.keys(u).forEach(c=>{const l=u[c];if(l==null)return!0;const m=this._getMergedCellData(i,c,l),g={subUnitId:c,unitId:i,cellValue:m};r.push({id:q.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new s.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=ne.handleNumfmtInCell(m,l,r);u.setValue(d,c,g)}),u.clone()}};ft=zs([s.OnLifecycle(s.LifecycleStages.Ready,ft),vo(0,z.Inject(s.IUniverInstanceService)),vo(1,s.ICommandService)],ft);var qs=Object.defineProperty,xs=Object.getOwnPropertyDescriptor,Ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?xs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&qs(t,o,r),r},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};Rt=Ys([s.OnLifecycle(s.LifecycleStages.Ready,Rt),Ct(0,s.ICommandService),Ct(1,ne.IFeatureCalculationManagerService),Ct(2,s.IUniverInstanceService),Ct(3,z.Inject(ne.FormulaDataModel))],Rt);const P={MoveRangeCommandId:vn,InsertRowCommandId:Rn,InsertColCommandId:pn,RemoveColCommandId:En,RemoveRowCommandId:Tn,DeleteRangeMoveLeftCommandId:Sn,DeleteRangeMoveUpCommandId:fn,InsertRangeMoveDownCommandId:ds,InsertRangeMoveRightCommandId:Cn,MoveColsCommandId:bn,MoveRowsCommandId:_n};var k=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(k||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=It,t.startRow=0,t.endRow=It),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Xe=(n,t,o)=>{const e={...o},r={...t},a=(f,C)=>{const I=Math.max(f.start,C.start),R=Math.min(f.end,C.end);return R<I?null:{start:I,end:R}},i=f=>f.end-f.start+1,u=(f,C)=>({start:f.start-C.start,end:f.start-C.start+f.end-f.start}),d=(f,C)=>({start:C.start+f.start,end:C.start+f.start+f.end-f.start}),c=t.start>n.start;if(c){const f=Math.min(n.end,t.start)-n.start+1;r.start-=f,r.end-=f}const l=i(n),m=l,g=a(n,e),S=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const f=i(g);if(S){const C=u(e,n),I=d(C,r);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=f+l,e.start-=l):e.end-=f:c?e.end-=f:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+f):e.end-=f}const v=a(r,e);return S||(r.start<=e.start?(e.start+=m,e.end+=m):v&&(c?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Jt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:u.step||0,length:u.length||0}]},Ks=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(r,i,a),s.queryObjectMatrix(u,c=>c===1)},Zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:u.step||0,length:u.length||0}]},Xs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(r,i,a),s.queryObjectMatrix(u,d=>d===1)},So=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const u=s.Rectangle.getRelativeRange(t,e),d=s.Rectangle.getPositionRange(u,o);return[{type:k.Set,range:d}]}return r},Js=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const S=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(S,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(S,v)=>{r.setValue(S,v,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(S,v)=>{r.getValue(S,v)&&(r.setValue(S,v,void 0),a.setValue(S,v,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,c={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d};return c&&s.Range.foreach(c,(S,v)=>{var I;const f=S+d,C=v+u;r.setValue(f,C,(I=a.getValue(S,v))!=null?I:0)}),s.queryObjectMatrix(r,S=>S===1)},De=(n,t)=>{const o=ve(n),e=ve(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const u=-r(i);return{step:-(r(o)-r(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Qt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},en=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function Zs(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:k.Delete}),s.Rectangle.contains(n,o)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const tn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},nn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},fo=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qs=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),s.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},er=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),s.queryObjectMatrix(u,c=>c===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},tr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l,m-r,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l,m-r,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Io=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},nr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l-r,m,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l-r,m,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case k.Delete:{o=null;break}case k.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case k.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},or=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Ro(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Io(t,n);break}case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Co(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:{o=Zt(t,n);break}case P.MoveRangeCommandId:{o=So(t,n);break}case P.MoveRowsCommandId:{o=Jt(t,n);break}case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)},sr=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return tr(t,n);case P.DeleteRangeMoveUpCommandId:return nr(t,n);case P.InsertRangeMoveDownCommandId:return Qs(t,n);case P.InsertRangeMoveRightCommandId:return er(t,n);case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:return Xs(t,n);case P.MoveRangeCommandId:return Js(t,n);case P.MoveRowsCommandId:return Ks(t,n);case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)};function rr(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(o){case Ae.id:r.type=k.Delete;break;case be.id:r=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=k.VerticalMove;break;case Te.id:r=Xe({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Ie.id:r=De(e.range,n),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case we.id:r=De(ae(e.range),ae(n)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Oe(ae(e.range),ae(n)),r.type=k.VerticalMove;break;case Re.id:r=Oe(e.range,n),r.type=k.HorizontalMove;break;case Ve.id:r=Zs(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Pe(r,n):Pe([r],n):n}var ar=Object.defineProperty,ir=Object.getOwnPropertyDescriptor,ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?ir(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&ar(t,o,r),r},Mt=(n,t)=>(o,e)=>t(o,e,n);const dr=s.createInterceptorKey("MERGE_REDO"),lr=s.createInterceptorKey("MERGE_UNDO");class cr extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=rr(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();W(this,"interceptor",new s.InterceptorManager({MERGE_REDO:dr,MERGE_UNDO:lr}));W(this,"_watchRanges",new Set);W(this,"_refRangeManagerMap",new Map);W(this,"_serializer",mr());W(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Mo(this._univerInstanceService),a=po(this._univerInstanceService),d=((()=>{switch(o.id){case P.MoveColsCommandId:{const S=o.params,v=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],r,a)}case P.MoveRowsCommandId:{const S=o.params,v=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:v,endRow:e.getRowCount()-1}],r,a)}case P.MoveRangeCommandId:{const S=o;return this._checkRange([S.params.fromRange,S.params.toRange],r,a)}case P.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.InsertColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([f],r,a)}}})()||[]).reduce((S,v)=>{const f=v(o);return S.push(f),S},[]).reduce((S,v)=>{var f,C;return S.redos.push(...v.redos),S.undos.push(...v.undos),S.preRedos.push(...(f=v.preRedos)!=null?f:[]),S.preUndos.push(...(C=v.preUndos)!=null?C:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:g,preRedos:c,preUndos:m}}})});W(this,"_checkRange",(o,e,r)=>{const a=yo(e,r),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(c=>{const l=i.get(c),m=this._serializer.deserialize(c);o.some(g=>s.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});W(this,"registerRefRange",(o,e,r,a)=>{const i=r||Mo(this._univerInstanceService),u=a||po(this._univerInstanceService),d=yo(i,u),c=this._serializer.serialize(o);let l=this._refRangeManagerMap.get(d);l||(l=new Map,this._refRangeManagerMap.set(d,l));const m=l.get(c);return m?m.add(e):l.set(c,new Set([e])),s.toDisposable(()=>{const g=l.get(c);g&&(g.delete(e),g.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(d)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new cr(o,e,r,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),c=this.disposeWithMe(d);return s.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=ur([s.OnLifecycle(s.LifecycleStages.Ready,h.RefRangeService),Mt(0,s.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(s.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Mo(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function po(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function wo(n){return n.getSelectionRanges()||[]}function yo(n,t){return`${n}_${t}`}function mr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,vr=(n,t,o,e)=>{for(var r=e>1?void 0:e?hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&gr(t,o,r),r},Ge=(n,t)=>(o,e)=>t(o,e,n);const Sr=[Re.id,Ce.id,Ie.id,we.id],fr=[be.id,Te.id];function Uo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[r];if(t===s.Dimension.ROWS)for(let c=a;c<=i;c++){const l={startRow:c,endRow:c,startColumn:u,endColumn:d};e.push(l)}else if(t===s.Dimension.COLUMNS)for(let c=u;c<=d;c++){const l={startRow:a,endRow:i,startColumn:c,endColumn:c};e.push(l)}}o=e}return o}h.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,u){super();W(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),S=[{id:F.id,params:m}],v=[{id:j.id,params:g}];return{redos:S,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case P.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case P.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,r,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Bt.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(r.id===j.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(f=>{if(m<=f.startRow&&g>=f.endRow){d.ranges.push(f);const C=Jt({id:P.MoveRowsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveColsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(f=>{if(m<=f.startColumn&&g>=f.endColumn){d.ranges.push(f);const C=Zt({id:P.MoveColsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveRangeCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>s.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>s.Rectangle.intersects(v,o.toRange)),l=d.map(v=>s.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>s.Rectangle.getPositionRange(v,o.toRange)),m=Uo(l).filter(v=>!u.some(f=>s.Rectangle.equals(v,f))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}}],S=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:d}}];return{redos:g,undos:S}}_handleInsertRowCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>(d>p.startRow&&d<=p.endRow&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>{if(d>p.startRow&&d<=p.endRow){const w=c-d+1;p.endRow+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>(d>p.startColumn&&d<=p.endColumn&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>{if(d>p.startColumn&&d<=p.endColumn){const w=c-d+1;p.endColumn+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(u,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(u,M)){if(d<=M.startColumn&&c>=M.endColumn)return w;d>=M.startColumn&&c<=M.endColumn?M.endColumn-=c-d+1:d<M.startColumn?(M.startColumn=d,M.endColumn-=c-d+1):c>M.endColumn&&(M.endColumn=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(a,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(a,M)){if(d<=M.startRow&&c>=M.endRow)return w;d>=M.startRow&&c<=M.endRow?M.endRow-=c-d+1:d<M.startRow?(M.startRow=d,M.endRow-=c-d+1):c>M.endRow&&(M.endRow=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1;m.push({startRow:R.startRow+N,startColumn:R.startColumn,endRow:R.endRow+N,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1,A=s.Rectangle.moveVertical(R,-N);m.push(A)}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(fr.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,c=u?a.startRow:a.startColumn,l=u?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M}=C;s.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<p&&l>w?(p-=d,w-=d):c>w&&l<=p&&(p+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:v}=o.params,f=C=>this.refRangeHandle(C,S,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,f,S,v))})}if(Sr.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:u}=i,d=o.id.includes("row"),c=o.id.includes("insert"),l=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-l+1,S=[];a.forEach(I=>{let{startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y}=I;c?d?l<=R&&(R+=g,p+=g):l<=w&&(w+=g,M+=g):d?m<R&&(R-=g,p-=g):m<w&&(w-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||S.push({startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:v,subUnitId:f}=o.params,C=I=>this.refRangeHandle(I,v,f);S.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,f))})}}))}},h.MergeCellController=vr([s.OnLifecycle(s.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(s.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(s.IUniverInstanceService)),Ge(3,z.Inject(z.Injector)),Ge(4,z.Inject(h.SheetInterceptorService)),Ge(5,z.Inject(h.SelectionManagerService))],h.MergeCellController);function ge(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Cr={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},_o={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},Rr={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ir=Object.defineProperty,Mr=Object.getOwnPropertyDescriptor,pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Mr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ir(t,o,r),r},on=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,r);if(d!=null&&d.s){const c=u.get(d.s);if(c!=null&&c.n)return c.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(u=>{s.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,S={...m&&i.get(m)||{}};delete S.n;const v=i.setValue(S);l.s=v})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{s.Range.foreach(c,(l,m)=>{const g=a.getCellRaw(l,m);if(g){const v={...g.s&&i.get(g.s)||{},n:{pattern:d.pattern}},f=i.setValue(v);g.s=f}else{const S={n:{pattern:d.pattern}},v=i.setValue(S);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=pr([on(0,s.IResourceManagerService),on(1,s.IUniverInstanceService),on(2,s.ILogService)],h.NumfmtService);const bo="univer.sheet.editable";class Je extends s.PermissionPoint{constructor(o,e){super();W(this,"id",bo);W(this,"value",!0);W(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${bo}_${o}_${e}`}}var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,Ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&wr(t,o,r),r},To=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();W(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=r||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Ur([s.OnLifecycle(s.LifecycleStages.Ready,h.SheetPermissionService),To(0,z.Inject(s.IPermissionService)),To(1,z.Inject(s.IUniverInstanceService))],h.SheetPermissionService);function _r(n){var a,i,u;const t=n.get(s.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,r))==null?void 0:u.pipe(ke.map(d=>!d.value))}var br=Object.defineProperty,Tr=Object.getOwnPropertyDescriptor,Er=(n,t,o,e)=>{for(var r=e>1?void 0:e?Tr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&br(t,o,r),r},pt=(n,t)=>(o,e)=>t(o,e,n);const Nr="SHEET_DEFINED_NAME_PLUGIN";let wt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Nr,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Er([s.OnLifecycle(s.LifecycleStages.Ready,wt),pt(0,s.ICommandService),pt(1,s.IUniverInstanceService),pt(2,ne.IDefinedNamesService),pt(3,s.IResourceManagerService)],wt);var Dr=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,Pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Or(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Dr(t,o,r),r},sn=(n,t)=>(o,e)=>t(o,e,n);const kr="SHEET_PLUGIN";h.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[St],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ft],[Rt]),o.forEach(r=>{t.add(r)})}},W(yt,"pluginName",kr),W(yt,"type",s.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Pr([sn(1,s.ICommandService),sn(2,z.Inject(s.LocaleService)),sn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Ar=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,je.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],Vr=[q.id,Ve.id,F.id,j.id],Lr=1.5,Br="rgba(255, 255, 255, 0.01)";function Wr(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function jr(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=Eo(o)),r}function Eo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Fr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Hr=(n,t,o)=>{const r=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:S,startColumn:v,endRow:f,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const w=o.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);w&&(C=w.endColumn,S=w.startRow,f=w.endRow)}else if(a===s.Dimension.ROWS){const w=o.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);w&&(f=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:S,startColumn:v,endRow:f,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:S===g&&v===m},R=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),p={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:p}}return null}return null},$r=(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:r,subUnitId:a,pluginName:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=Hr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=$r,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Ar,h.COMMAND_LISTENER_VALUE_CHANGE=Vr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=_t,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=hn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=jt,h.DeltaRowHeightCommand=to,h.EffectRefRangId=P,h.EmptyMutation=io,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=yn,h.InsertColBeforeCommand=wn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=uo,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Mn,h.InsertRowBeforeCommand=In,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=Un,h.InsertSheetMutation=_e,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=go,h.MoveColsCommand=Pt,h.MoveColsMutation=Te,h.MoveRangeCommand=st,h.MoveRangeMutation=Ve,h.MoveRowsCommand=Ot,h.MoveRowsMutation=be,h.NORMAL_SELECTION_PLUGIN_NAME=X,h.OperatorType=k,h.RangeMergeUtil=ks,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=lo,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=gn,h.RemoveWorksheetMergeCommand=Nn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=zn,h.ResetTextColorCommand=$n,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Br,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Lr,h.ScrollToCellOperation=mo,h.SelectionMoveType=un,h.SetBackgroundColorCommand=Gn,h.SetBoldCommand=Ms,h.SetBorderBasicCommand=Dn,h.SetBorderColorCommand=kn,h.SetBorderCommand=We,h.SetBorderPositionCommand=On,h.SetBorderStyleCommand=Pn,h.SetColHiddenCommand=Vn,h.SetColHiddenMutation=je,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=co,h.SetFontFamilyCommand=Us,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Bn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=xn,h.SetItalicCommand=ps,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=Se,h.SetRowHeightCommand=no,h.SetRowHiddenCommand=jn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=An,h.SetSelectedRowsVisibleCommand=Wn,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ys,h.SetStyleCommand=J,h.SetTabColorCommand=Xn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Hn,h.SetTextRotationCommand=Kn,h.SetTextWrapCommand=Yn,h.SetUnderlineCommand=ws,h.SetVerticalTextAlignCommand=qn,h.SetWorkbookNameCommand=Xt,h.SetWorkbookNameMutation=Kt,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=Wt,h.SetWorksheetHideCommand=Zn,h.SetWorksheetHideMutation=Ue,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Qn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Os,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=oo,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=Eo,h.convertSelectionDataToRange=jr,h.createTopMatrixFromMatrix=ro,h.createTopMatrixFromRanges=so,h.enUS=Cr,h.factoryRemoveNumfmtUndoMutation=Bs,h.factorySetNumfmtUndoMutation=Ls,h.findAllRectangle=qt,h.followSelectionOperation=fe,h.getAddMergeMutationRangeByType=Uo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=_r,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Wr,h.getPrimaryForRange=oe,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=mn,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=sr,h.handleDefaultRangeChangeWithEffectRefCommands=or,h.handleDeleteRangeMoveLeft=Ro,h.handleDeleteRangeMoveUp=Io,h.handleDeleteRangeMutation=rs,h.handleIRemoveCol=Qt,h.handleIRemoveRow=en,h.handleInsertCol=nn,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=Co,h.handleInsertRangeMutation=ss,h.handleInsertRow=tn,h.handleMoveCols=Zt,h.handleMoveRange=So,h.handleMoveRows=Jt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.ruRU=Rr,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Fr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|