@univerjs/sheets 0.1.2 → 0.1.4

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
- (function(h,r){typeof exports=="object"&&typeof module<"u"?r(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"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,r,V,_e,vt,ho,vo){"use strict";var lr=Object.defineProperty;var mr=(h,r,V)=>r in h?lr(h,r,{enumerable:!0,configurable:!0,writable:!0,value:V}):h[r]=V;var B=(h,r,V)=>(mr(h,typeof r!="symbol"?r+"":r,V),V);var zt;var So=Object.defineProperty,Co=Object.getOwnPropertyDescriptor,Io=(n,e,o,t)=>{for(var s=t>1?void 0:t?Co(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&So(e,o,s),s},fo=(n,e)=>(o,t)=>e(o,t,n);const x="normalSelectionPluginName";var Yt=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(Yt||{});h.SelectionManagerService=class{constructor(e){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new _e.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new _e.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:x,unitId:(e=this._currentSelection)==null?void 0:e.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(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,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 e=this.getSelections();return e==null?!1:e.some(({range:o},t)=>e.some(({range:s},a)=>t===a?!1:o.startRow<=s.endRow&&o.endRow>=s.startRow&&o.startColumn<=s.endColumn&&o.endColumn>=s.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:s}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(s)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:t,unitId:s,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const u=this._selectionInfo.get(t);u.has(s)||u.set(s,new Map);const c=u.get(s);if(!c.has(a))c.set(a,[...i]);else{let l=c.get(a);l==null&&(l=[],c.set(a,l)),l.push(...i)}o&&this._refresh({pluginName:t,unitId:s,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:s,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(t)||i.set(t,new Map);const u=i.get(t);if(!u.has(s))u.set(s,a);else{let c=u.get(s);c==null&&(c=[],u.set(s,c)),c.splice(0,c.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const t=this._getSelectionDatas(o);t==null||t.splice(e,1),this._refresh(o)}},h.SelectionManagerService=Io([fo(0,V.Inject(r.ThemeService))],h.SelectionManagerService);const Ro=r.createInterceptorKey("CELL_CONTENT"),Mo=r.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:Ro,PERMISSION:Mo};var wo=Object.defineProperty,po=Object.getOwnPropertyDescriptor,yo=(n,e,o,t)=>{for(var s=t>1?void 0:t?po(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&wo(e,o,s),s},Uo=(n,e)=>(o,t)=>e(o,t,n);h.SheetInterceptorService=class extends r.Disposable{constructor(o){super();B(this,"_interceptorsByName",new Map);B(this,"_commandInterceptors",[]);B(this,"_workbookDisposables",new Map);B(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,s){const a=s.worksheet.getCellRaw(s.row,s.col);return t?{...a,...t}:a}}),this.intercept(be.PERMISSION,{priority:-1,handler:()=>!0})}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((t,s)=>{var a,i;return((a=s.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(s=>s.getMutations(o));return{undos:t.map(s=>s.undos).flat(),redos:t.map(s=>s.redos).flat()}}intercept(o,t){const s=o;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const a=this._interceptorsByName.get(s);return a.push(t),this._interceptorsByName.set(s,a.sort((i,u)=>{var c,l;return((c=u.priority)!=null?c:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),t)))}fetchThroughInterceptors(o){const t=o,s=this._interceptorsByName.get(t);return r.composeInterceptors(s||[])}_interceptWorkbook(o){const t=new r.DisposableCollection,s=o.getUnitId(),a=this,i=u=>{const c=u.getSheetId();u.__interceptViewModel(l=>{const d=new r.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(be.CELL_CONTENT)(u.getCellRaw(g,v),{unitId:s,subUnitId:c,row:g,col:v,worksheet:u,workbook:o})}});d.add(m),a._worksheetDisposables.set(xt(s,u),d)})};o.getSheets().forEach(u=>i(u)),t.add(r.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),t.add(r.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),t.add(r.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),s=this._workbookDisposables.get(t);s&&(s.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const s=xt(o,t),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},h.SheetInterceptorService=yo([r.OnLifecycle(r.LifecycleStages.Starting,h.SheetInterceptorService),Uo(0,r.IUniverInstanceService)],h.SheetInterceptorService);function xt(n,e){return`${n}|${e.getSheetId()}`}const ce=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const c=u.getCellMatrix(),l=i.getStyles(),d=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,v,S)=>{const C=r.Tools.deepClone(c==null?void 0:c.getValue(g,v))||{},I=l.getStyleByCell(C),f=To(I,S&&S.s?S.s:null);C.s=f,d.setValue(g,v,_o(C))}),{...e,options:{},cellValue:d.getMatrix()}};function _o(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)}const z={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(t);if(!u)return!1;const c=u.getCellMatrix(),l=i.getStyles();return new r.ObjectMatrix(o).forValue((m,g,v)=>{if(!v)c==null||c.setValue(m,g,{});else{const S=c.getValue(m,g)||{},C=v.t===r.CellValueType.FORCE_STRING?v.t:bo(v.v===void 0?S.v:v.v);if(v.f!==void 0&&(S.f=v.f),v.si!==void 0&&(S.si=v.si),v.p!==void 0&&(S.p=v.p),v.v!==void 0&&(S.v=C===r.CellValueType.NUMBER?Number(v.v):v.v),S.v!==void 0&&(S.t=C),v.s!==void 0){const I=l.getStyleByCell(S);I==null&&delete S.s,typeof v.s=="string"&&(v.s=l.get(v.s));const f=Ye(I,v.s?v.s:null);f&&r.Tools.removeNull(f),r.Tools.isEmptyObject(f)?delete S.s:S.s=l.setValue(f),!v.p&&S.p&&Oo(S.p,v.s?v.s:null)}c.setValue(m,g,r.Tools.removeNull(S))}}),!0}};function bo(n){return n===null?null:typeof n=="string"?No(n)?r.CellValueType.NUMBER:Po(n)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof n=="number"?r.CellValueType.NUMBER:typeof n=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function To(n,e){return Eo(n,e)}function Eo(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Do(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Do(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Ye(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=r.Tools.deepClone(n)||{};if(t){for(const s in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in t&&s==="bd"?t[s]=Object.assign(t[s],e[s]):t[s]=e[s]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function Oo(n,e){if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[];for(const a of n.body.textRuns){const{st:i,ed:u,ts:c={}}=a;if(o!==i){const l={st:o,ed:i},d=Ye({},e,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(l.ts=d),t.push(l)}else{const l=Ye(c,e,!0);l&&r.Tools.removeNull(l),r.Tools.isEmptyObject(l)?delete a.ts:a.ts=l,t.push(a)}o=u}const s=n.body.dataStream.endsWith(`\r
2
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o!==s){const a={st:o,ed:s},i=Ye({},e,!0);i&&r.Tools.removeNull(i),r.Tools.isEmptyObject(i)||(a.ts=i),t.push(a)}n.body.textRuns=t}function Ao(n){return/^-?\d+(\.\d+)?$/.test(n)}function No(n){return Ao(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Po(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const xe={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:ko(d)},S=ce(n,v);m.push({id:z.id,params:v}),g.push({id:z.id,params:S});const C=a.onCommandExecute({id:xe.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function ko(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,null)}),e.getData()}const St={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:u,cellValue:Lo(d)},g=ce(n,m),v=a.onCommandExecute({id:St.id}),S=[{id:z.id,params:m},...v.redos],C=[...v.undos,{id:z.id,params:g}];return r.sequenceExecute(S,o).result?(s.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function Lo(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,{v:null,p:null,f:null,si:null})}),e.getData()}const Ke={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Bo(d)},S=ce(n,v);m.push({id:z.id,params:v}),g.push({id:z.id,params:S});const C=a.onCommandExecute({id:Ke.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Bo(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,{s:null})}),e.getData()}const Ct=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Se={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService),{sheet:t,index:s,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,s,t):!1}},Kt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:s,unitId:a}=e,i=t.getSheetBySheetId(s).getConfig();return{index:t.getConfig().sheetOrder.findIndex(l=>l===s),sheet:i,unitId:a}},Le={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:t,unitId:s}=e,a=o.getUniverSheetInstance(s);return a?a.removeSheet(t):!1}},Jt={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var C,I;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(C=e.unitId)!=null?C:i,u=(I=e.subUnitId)!=null?I:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(u);if(!l)return!1;const d=r.Tools.deepClone(l.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=r.Tools.generateRandomId();const g={index:c.getSheetIndex(l)+1,sheet:d,unitId:i},v=Ct(n,g);return o.syncExecuteCommand(Se.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:v}],redoMutations:[{id:Se.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),u=a.getSheetBySheetId(e.to.subUnitId);if(!i||!u)return!1;const c=i.getCellMatrix(),l=u.getCellMatrix();return new r.ObjectMatrix(o.value).forValue((d,m,g)=>{c.setValue(d,m,g)}),new r.ObjectMatrix(t.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},q={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(h.SelectionManagerService);if(!e)return!1;const{selections:t,type:s}=e;return o.replace(t,s),!0}};function Ve(n,e,o=!0){const t=e.getMatrixWithMergedCells(...r.selectionToArray(n)),s=[];if(t.forValue((i,u,c)=>{if(c.colSpan!==void 0&&c.rowSpan!==void 0){const l={startRow:i,startColumn:u,endRow:i+c.rowSpan-1,endColumn:u+c.colSpan-1};r.Rectangle.contains(n,l)||s.push(l)}}),s.length===0)return n;const a=r.Rectangle.union(n,...s);return o?Ve(a,e,o):a}function Vo(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,u)=>(t={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:r.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function X(n,e){const o=e.getMergedCell(n.startRow,n.startColumn);return o?{...o,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.startColumn,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const de=(n,e,o)=>({id:q.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:x,selections:[{range:n,primary:X(n,o)}]}}),Xt="sheet.command.move-range",Je={type:r.CommandType.COMMAND,id:Xt,handler:(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=s.getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),l=u.getSheetId(),d=It(n,{unitId:c,subUnitId:l,range:e.fromRange},{unitId:c,subUnitId:l,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(h.SheetInterceptorService).onCommandExecute({id:Je.id,params:{...e}}),v=[...d.redos,...g.redos,{id:q.id,params:{unitId:c,subUnitId:l,pluginName:x,selections:[{range:e.toRange,primary:X(e.toRange,u)}]}}],S=[{id:q.id,params:{unitId:c,subUnitId:l,pluginName:x,selections:[{range:e.fromRange,primary:X(e.fromRange,u)}]}},...d.undos,...g.undos];return r.sequenceExecute(v,o).result?(t.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function It(n,e,o,t=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:c}=e,{range:l,subUnitId:d}=o,g=n.get(r.IUniverInstanceService).getUniverSheetInstance(c),v=g==null?void 0:g.getSheetBySheetId(d),S=g==null?void 0:g.getSheetBySheetId(u),C=v==null?void 0:v.getCellMatrix(),I=S==null?void 0:S.getCellMatrix();if(v&&S&&C&&I){const f=Ve(l,v,!1);if(!r.Rectangle.equals(l,f)&&!t)return null;const M=new r.ObjectMatrix,w=new r.ObjectMatrix,p=(b,U)=>({startRow:b,endRow:b,startColumn:U,endColumn:U});r.Range.foreach(i,(b,U)=>{M.setValue(b,U,I.getValue(b,U)),w.setValue(b,U,null)});const T=new r.ObjectMatrix;r.Range.foreach(l,(b,U)=>{T.setValue(b,U,C.getValue(b,U))});const y=new r.ObjectMatrix;r.Range.foreach(i,(b,U)=>{const L=p(b,U),R=r.Rectangle.getRelativeRange(L,i),Y=r.Rectangle.getPositionRange(R,l);y.setValue(Y.startRow,Y.startColumn,I.getValue(b,U))});const E={from:{value:w.getMatrix(),subUnitId:u},to:{value:y.getMatrix(),subUnitId:d},unitId:c},_={from:{value:M.getMatrix(),subUnitId:u},to:{value:T.getMatrix(),subUnitId:d},unitId:c};s.push({id:Be.id,params:E}),a.push({id:Be.id,params:_})}return{redos:s,undos:a}}const Ce={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),{value:u,range:c,unitId:l=s.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,m=c?[c]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new r.ObjectMatrix;let v;if(r.Tools.isArray(u))for(let p=0;p<m.length;p++){const{startRow:T,startColumn:y,endRow:E,endColumn:_}=m[p];for(let b=0;b<=E-T;b++)for(let U=0;U<=_-y;U++)g.setValue(b+T,U+y,u[b][U])}else if(r.isICellData(u))for(let p=0;p<m.length;p++){const{startRow:T,startColumn:y,endRow:E,endColumn:_}=m[p];for(let b=T;b<=E;b++)for(let U=y;U<=_;U++)g.setValue(b,U,u)}else v=u;const S={subUnitId:d,unitId:l,cellValue:v!=null?v:g.getMatrix()},C=ce(n,S);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ce.id,params:S}))return!1;const I=o.syncExecuteCommand(z.id,S),{undos:f,redos:M}=i.onCommandExecute({id:Ce.id,params:{...S,range:m}}),w=await r.sequenceExecute([...M],o);return I&&w.result?(t.pushUndoRedo({unitID:l,undoMutations:[{id:z.id,params:C},...f],redoMutations:[{id:z.id,params:S},...M]}),!0):!1}};function ft(n,e){const o=[],t=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:c={}}=e,l=n.get(r.IUniverInstanceService),d=n.get(h.SheetInterceptorService),m=l.getUniverSheetInstance(s),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),S=v.getDataRange();if(i.startColumn<=S.endColumn||i.startRow<=S.endRow){let w,p;if(u===r.Dimension.COLUMNS){const y=Math.min(i.endRow,S.endRow);let E=0;for(let b=i.startRow;b<=y;b++){const U=v.getRow(b),L=U?r.getArrayLength(U)-1:0;E=Math.max(E,L)}w={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:E};const _=i.endColumn-i.startColumn+1;p={startRow:i.startRow,startColumn:w.startColumn+_,endRow:y,endColumn:w.endColumn+_}}else{const y=Math.min(i.endColumn,S.endColumn),E=S.endRow;w={startRow:i.startRow,startColumn:i.startColumn,endRow:E,endColumn:y};const _=i.endRow-i.startRow+1;p={startRow:w.startRow+_,startColumn:i.startColumn,endRow:w.endRow+_,endColumn:y}}const T=It(n,{unitId:s,subUnitId:a,range:w},{unitId:s,subUnitId:a,range:p},!0);T&&(o.push(...T.redos),t.push(...T.undos))}if(Object.entries(c).length===0)for(let w=i.startRow;w<=i.endRow;w++){c[w]||(c[w]={});for(let p=i.startColumn;p<=i.endColumn;p++)c[w][p]=null}const C={subUnitId:a,unitId:s,cellValue:c},I=ce(n,C),{undos:f,redos:M}=d.onCommandExecute({id:Ce.id,params:{...C,range:i}});o.push({id:z.id,params:C},...M),t.push({id:z.id,params:I},...f)}return{redo:o,undo:t}}function Rt(n,e){const o=[],t=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=e,c=n.get(r.IUniverInstanceService),l=n.get(h.SheetInterceptorService),d=c.getUniverSheetInstance(s),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),S={subUnitId:a,unitId:s,cellValue:Fo([i])},C=ce(n,S),I=l.onCommandExecute({id:Ce.id,params:S});if(o.push({id:z.id,params:S},...I.redos),t.push(...I.undos,{id:z.id,params:C}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let f=null,M=null;if(u===r.Dimension.COLUMNS&&i.endColumn<v.endColumn){const w=Math.min(i.endRow,v.endRow);let p=0;for(let y=i.startRow;y<=w;y++){const E=g.getRow(y),_=E?r.getArrayLength(E)-1:0;p=Math.max(p,_)}f={startRow:i.startRow,startColumn:i.endColumn+1,endRow:w,endColumn:p};const T=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:f.startColumn-T,endRow:w,endColumn:f.endColumn-T}}if(u===r.Dimension.ROWS&&i.endRow<v.endRow){const w=Math.min(i.endColumn,v.endColumn),p=v.endRow;f={startRow:i.endRow+1,startColumn:i.startColumn,endRow:p,endColumn:w};const T=i.endRow-i.startRow+1;M={startRow:f.startRow-T,startColumn:i.startColumn,endRow:f.endRow-T,endColumn:w}}if(f&&M){const w=It(n,{unitId:s,subUnitId:a,range:f},{unitId:s,subUnitId:a,range:M},!0);w&&(o.push(...w.redos),t.push(...w.undos))}}}return{redo:o,undo:t}}function jo(n,e,o,t,s,a){const{startRow:i,endRow:u,startColumn:c,endColumn:l}=e;if(s===r.Dimension.ROWS){const d=u-i+1;for(let m=o;m>=i;m--)for(let g=c;g<=l;g++){const v=n.getValue(m,g);v==null?n.realDeleteValue(m+d,g):n.setValue(m+d,g,v)}for(let m=u;m>=i;m--)for(let g=c;g<=l;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const d=l-c+1;for(let m=i;m<=u;m++)for(let g=t;g>=c;g--){const v=n.getValue(m,g);v==null?n.realDeleteValue(m,g+d):n.setValue(m,g+d,v)}for(let m=i;m<=u;m++)for(let g=l;g>=c;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function Wo(n,e,o,t,s){const{startRow:a,endRow:i,startColumn:u,endColumn:c}=e,l=i-a+1,d=c-u+1;if(s===r.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=c;g++){const v=n.getValue(m+l,g);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}else if(s===r.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=t;g++){const v=n.getValue(m,g+d);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}}function Fo(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,null)}),e.getData()}const Zt="sheet.command.delete-range-move-left",Xe={type:r.CommandType.COMMAND,id:Zt,handler:async(n,e)=>{var w;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(w=a.getLast())==null?void 0:w.range),!l)return!1;const d=s.getUniverSheetInstance(u);if(!d)return!1;const m=d.getSheetBySheetId(c);if(!m)return!1;const g={range:l,subUnitId:c,unitId:u,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:Xe.id,params:{range:l}}),{redo:S,undo:C}=Rt(n,g),I=[...S],f=[...C];return I.push(...v.redos),I.push(de(l,d,m)),f.push(...v.undos),r.sequenceExecute(I,o).result?(t.pushUndoRedo({unitID:u,undoMutations:f.reverse(),redoMutations:I}),!0):!1}},Qt="sheet.command.delete-range-move-up",Ze={type:r.CommandType.COMMAND,id:Qt,handler:async(n,e)=>{var w;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=e==null?void 0:e.range;if(l||(l=(w=a.getLast())==null?void 0:w.range),!l)return!1;const d=s.getUniverSheetInstance(u);if(!d)return!1;const m=d.getSheetBySheetId(c);if(!m)return!1;const g={range:l,subUnitId:c,unitId:u,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:Ze.id,params:{range:l}}),{redo:S,undo:C}=Rt(n,g),I=[...S],f=[...C];return I.push(...v.redos),I.push(de(l,d,m)),f.push(...v.undos),await r.sequenceExecute(I,o).result?(t.pushUndoRedo({unitID:u,undoMutations:f.reverse(),redoMutations:I}),!0):!1}},Mt=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Ie={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(n,e)=>{var S;const{unitId:o,subUnitId:t,range:s,rowInfo:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const c=u.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const l=c.getRowManager().getRowData(),d={h:c.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let C=m;C<m+g;C++)a?r.insertMatrixArray(C,(S=a[C-s.startRow])!=null?S:d,l):r.insertMatrixArray(C,d,l);return c.setRowCount(c.getRowCount()+s.endRow-s.startRow+1),c.getCellMatrix().insertRows(s.startRow,g),!0}},wt=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(n,e)=>{var S;const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getColumnManager(),{range:i,colInfo:u}=e,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let C=d;C<d+m;C++){const I={w:g,hd:0};u?r.insertMatrixArray(C,(S=u[C-i.startColumn])!=null?S:I,l):r.insertMatrixArray(C,I,l)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,m),!0}},Ho=(n,e)=>{const s=e.getRowManager().getRowData(),a={},i=n.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),c=r.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:c}},Re={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=e.range,u=s.getRowManager().getRowData(),c=a.endRow-a.startRow+1;return r.spliceArray(a.startRow,c,u),s.getCellMatrix().removeRows(a.startRow,c),s.setRowCount(s.getRowCount()-c),!0}},$o=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),c={},l=e.range,d=r.sliceMatrixArray(l.startColumn,l.endColumn,u),m=r.concatMatrixArray(c,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:m}},Me={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=e.range,u=s.getColumnManager().getColumnData(),c=a.endColumn-a.startColumn+1;return r.spliceArray(a.startColumn,c,u),s.setColumnCount(s.getColumnCount()-c),s.getCellMatrix().removeColumns(a.startColumn,c),!0}},Go="sheet.command.insert-range-move-down",Qe={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var U;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ILogService),i=n.get(h.SelectionManagerService),u=n.get(h.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const c=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(U=i.getLast())==null?void 0:U.range),!d)return!1;const m=s.getUniverSheetInstance(c);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],S=[],C=g.getCellMatrix(),I=C.getDataRange(),M=C.getSlice(I.startRow,I.endRow,d.startColumn,d.endColumn).getDataRange().endRow,w=Math.max(M+(d.endRow-d.startRow+1)-I.endRow,0);if(w>0){const L=d.startRow-1,R=g.getRowHeight(L),Y={unitId:c,subUnitId:l,range:{startRow:I.endRow+1,endRow:I.endRow+w,startColumn:I.startColumn,endColumn:I.endColumn},rowInfo:new Array(w).fill(void 0).map(()=>({h:R,hd:r.BooleanNumber.FALSE}))};v.push({id:Ie.id,params:Y});const Ue=Mt(n,Y);S.push({id:Re.id,params:Ue})}const p={};r.Range.foreach(d,(L,R)=>{const Y=g.getCell(L,R);Y&&(p[L]||(p[L]={}),p[L][R]={s:Y.s})});const T={range:d,subUnitId:l,unitId:c,shiftDimension:r.Dimension.ROWS,cellValue:p},{redo:y,undo:E}=ft(n,T);v.push(...y),S.push(...E);const _=u.onCommandExecute({id:Qe.id,params:{range:d}});return v.push(..._.redos),v.push(de(d,m,g)),S.push(..._.undos),r.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:c,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},en="sheet.command.insert-range-move-right",et={type:r.CommandType.COMMAND,id:en,handler:async(n,e)=>{var U;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ILogService),i=n.get(h.SelectionManagerService),u=n.get(h.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const c=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(U=i.getLast())==null?void 0:U.range),!d)return!1;const m=s.getUniverSheetInstance(c);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],S=[],C=g.getCellMatrix(),I=C.getDataRange(),M=C.getSlice(d.startRow,d.endRow,I.startColumn,I.endColumn).getDataRange().endColumn,w=Math.max(M+(d.endColumn-d.startColumn+1)-I.endColumn,0);if(w>0){const L=d.startColumn-1,R=g.getColumnWidth(L),Y={unitId:c,subUnitId:l,range:{startRow:I.startRow+1,endRow:I.endRow,startColumn:I.endColumn+1,endColumn:I.endColumn+w},colInfo:new Array(w).fill(void 0).map(()=>({w:R,hd:r.BooleanNumber.FALSE}))};v.push({id:fe.id,params:Y});const Ue=wt(n,Y);S.push({id:Me.id,params:Ue})}const p={};r.Range.foreach(d,(L,R)=>{const Y=g.getCell(L,R);!Y||!Y.s||(p[L]||(p[L]={}),p[L][R]={s:Y.s})});const T={range:d,subUnitId:l,unitId:c,shiftDimension:r.Dimension.COLUMNS,cellValue:p},{redo:y,undo:E}=ft(n,T);v.push(...y),S.push(...E);const _=u.onCommandExecute({id:et.id,params:{range:d}});return v.push(..._.redos),v.push(de(d,m,g)),S.push(..._.undos),r.sequenceExecute(v,o).result?(t.pushUndoRedo({unitID:c,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},tn="sheet.command.insert-row",Te={type:r.CommandType.COMMAND,id:tn,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=s.getUniverSheetInstance(e.unitId),u=i.getSheetBySheetId(e.subUnitId),{range:c,direction:l,unitId:d,subUnitId:m}=e,{startRow:g,endRow:v}=c,S=l===r.Direction.UP?g:g-1,C=u.getRowHeight(S),I={unitId:d,subUnitId:m,range:c,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:C,hd:r.BooleanNumber.FALSE}))},f=Mt(n,I),M=a.onCommandExecute({id:Te.id,params:e});return r.sequenceExecute([{id:Ie.id,params:I},...M.redos,de(c,i,u)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:Re.id,params:f}],redoMutations:[{id:Ie.id,params:I},...M.redos]}),!0):!1}},nn={type:r.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(v=>v.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),l=t.endRow-t.startRow+1,d={};r.Range.foreach(t,(v,S)=>{const C=i.getCell(v,S);!C||!C.s||(d[v]||(d[v]={}),d[v][S]={s:C.s})});const m={unitId:u,subUnitId:c,direction:r.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(r.ICommandService).executeCommand(Te.id,m)}},on={type:r.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 t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),l=t.endRow-t.startRow+1,d={unitId:u,subUnitId:c,direction:r.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(r.ICommandService).executeCommand(Te.id,d)}},sn="sheet.command.insert-col",Ee={type:r.CommandType.COMMAND,id:sn,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:c,unitId:l,cellValue:d}=e,{startColumn:m,endColumn:g}=e.range,v=s.getUniverSheetInstance(e.unitId),S=v.getSheetBySheetId(e.subUnitId),C=u===r.Direction.LEFT?m:m-1,I=S.getColumnWidth(C),f={unitId:l,subUnitId:c,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:I,hd:r.BooleanNumber.FALSE}))},M=wt(n,f);e.unitId,e.subUnitId,e.range,r.Dimension.COLUMNS;const w=a.onCommandExecute({id:Ee.id,params:e});return r.sequenceExecute([{id:fe.id,params:f},...w.redos,de(i,v,S)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...w.undos,{id:Me.id,params:M}],redoMutations:[{id:fe.id,params:f},...w.redos]}),!0):!1}},rn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),l=t.endColumn-t.startColumn+1,d={};r.Range.foreach(t,(g,v)=>{const S=i.getCell(g,v);!S||!S.s||(d[g]||(d[g]={}),d[g][v]={s:S.s})});const m={unitId:u,subUnitId:c,direction:r.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(r.ICommandService).executeCommand(Ee.id,m)}},an={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),l=t.endColumn-t.startColumn+1,d={unitId:u,subUnitId:c,direction:r.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(r.ICommandService).executeCommand(Ee.id,d)}},un={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(n,e)=>{var v,S;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=(v=e==null?void 0:e.unitId)!=null?v:s.getCurrentUniverSheetInstance().getUnitId(),u=s.getUniverSheetInstance(i);if(!u)return!1;let c=u.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});e?(c=(S=e.index)!=null?S:c,e.sheet?l=e.sheet:(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:c,sheet:l,unitId:i},m=Ct(n,d);return o.syncExecuteCommand(Se.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:m}],redoMutations:[{id:Se.id,params:d}]}),!0):!1}};function zo(n,e){const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:o,subUnitId:t,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const je={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const c=u.getSheetBySheetId(t);if(!c)throw new Error("[MoveRowMutation] worksheet is null!");const l=s.startRow,d=s.endRow-s.startRow+1,m=a.startRow,g=c.getRowManager().getRowData();return r.moveMatrixArray(l,d,m,g),c.getCellMatrix().moveRows(l,d,m),!0}};function qo(n,e){const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:o,subUnitId:t,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const We={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const c=u.getSheetBySheetId(t);if(!c)throw new Error("[MoveColumnMutation] worksheet is null!");const l=s.startColumn,d=s.endColumn-s.startColumn+1,m=a.startColumn,g=c.getColumnManager().getColumnData();return r.moveMatrixArray(l,d,m,g),c.getCellMatrix().moveColumns(l,d,m),!0}};function Yo(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function xo(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const cn="sheet.command.move-rows",pt={id:cn,type:r.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=e,i=t==null?void 0:t.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.ROW&&ae.range.startRow<=s&&s<=ae.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),l=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(r.ErrorService),S=i[0].range,C=i[0].primary,I=Ve(S,d,!1);if(!r.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(Yo(a,d))return v.emit("Across a merged cell."),!1;const f={...S,startRow:a,endRow:a+S.endRow-S.startRow},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:f},w=zo(n,M),T=a-s<0,y=S.endRow-S.startRow+1,E=T?f:{...f,startRow:f.startRow-y,endRow:f.endRow-y},_={unitId:m,subUnitId:g,pluginName:x,selections:[{range:E,primary:X(E,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:x,selections:[{range:S,primary:C,style:null}]},U=n.get(r.ICommandService),L=u.onCommandExecute({id:pt.id,params:e}),R=[{id:je.id,params:M},{id:q.id,params:_},...L.redos],Y=[{id:je.id,params:w},{id:q.id,params:b},...L.undos];return r.sequenceExecute(R,U).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Y,redoMutations:R}),!0):!1}},dn="sheet.command.move-cols",yt={id:dn,type:r.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=e,i=t==null?void 0:t.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.COLUMN&&ae.range.startColumn<=s&&s<=ae.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),l=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(r.ErrorService),S=i[0].range,C=i[0].primary,I=Ve(S,d,!1);if(!r.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(xo(a,d))return v.emit("Across a merged cell."),!1;const f={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:f},w=qo(n,M),p=S.endColumn-S.startColumn+1,E=a-s<0?f:{...f,startColumn:f.startColumn-p,endColumn:f.endColumn-p},_={unitId:m,subUnitId:g,pluginName:x,selections:[{range:E,primary:X(E,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:x,selections:[{range:S,primary:C,style:null}]},U=n.get(r.ICommandService),L=u.onCommandExecute({id:yt.id,params:e}),R=[{id:We.id,params:M},{id:q.id,params:_},...L.redos],Y=[{id:We.id,params:w},{id:q.id,params:b},...L.undos];return r.sequenceExecute(R,U).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Y,redoMutations:R}),!0}},ln="sheet.command.remove-row",tt={type:r.CommandType.COMMAND,id:ln,handler:async(n,e)=>{var C;const o=n.get(h.SelectionManagerService),t=n.get(h.SheetInterceptorService);let s=e==null?void 0:e.range;if(s||(s=(C=o.getLast())==null?void 0:C.range),!s)return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),l=u.getSheetId();s={...s,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const d={unitId:c,subUnitId:l,range:s},m=Ho(d,u),g=t.onCommandExecute({id:tt.id,params:{range:s}}),v=n.get(r.ICommandService);return r.sequenceExecute([{id:Re.id,params:d},...g.redos,de(s,i,u)],v).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...g.undos,{id:Ie.id,params:m}],redoMutations:[{id:Re.id,params:d},...g.redos]}),!0):!1}},mn="sheet.command.remove-col",nt={type:r.CommandType.COMMAND,id:mn,handler:async(n,e)=>{var C;const o=n.get(h.SelectionManagerService),t=n.get(h.SheetInterceptorService);let s=e==null?void 0:e.range;if(s||(s=(C=o.getLast())==null?void 0:C.range),!s)return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),l=u.getSheetId();s={...s,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const d={unitId:c,subUnitId:l,range:s},m=$o(n,d),g=t.onCommandExecute({id:nt.id,params:{range:s}}),v=n.get(r.ICommandService);return r.sequenceExecute([{id:Me.id,params:d},...g.redos,de(s,i,u)],v).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...g.undos,{id:fe.id,params:m}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Ut={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(n,e)=>{var f,M;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(f=e.unitId)!=null?f:i,u=(M=e.subUnitId)!=null?M:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(u);if(!l||c.getSheets().length<=1)return!1;const d=c.getSheetIndex(l);c.getConfig().sheetOrder[d+1];const m={subUnitId:u,unitId:i,subUnitName:l.getName()},g=Kt(n,m),v=a.onCommandExecute({id:Ut.id,params:{unitId:i,subUnitId:u}}),S=[{id:Le.id,params:m},...v.redos],C=[...v.undos,{id:Se.id,params:g}];return r.sequenceExecute(S,o)?(t.pushUndoRedo({unitID:i,undoMutations:C,redoMutations:S}),!0):!1}},se=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=e.ranges;for(let c=0;c<u.length;c++)i.push(u[c]);return!0}},Q=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().mergeData,u=e.ranges,c=[];for(let l=0;l<u.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=u[l];r.Rectangle.intersects(m,g)&&c.push(i[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:c}},W={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=e.ranges;for(let c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=u[c];r.Rectangle.intersects(d,m)&&i.splice(l,1)}return!0}},gn={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=s.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(u);if(!l)return!1;const d={unitId:i,subUnitId:u,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(C=>{g.forEach(I=>{r.Rectangle.intersects(C,I)&&(m=!0)})}),!m)return!1;const v=Q(n,d);return o.syncExecuteCommand(W.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:j.id,params:v}],redoMutations:[{id:W.id,params:d}]}),!0):!1}};class we{constructor(){B(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));B(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function Ko(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const s=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!s)throw new Error;return{workbook:t,worksheet:s,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:s.getSheetId()}}function ot(n,e){const{startRow:o,startColumn:t,endRow:s,endColumn:a}=n;for(let i=o;i<=s;i++)for(let u=t;u<=a;u++)e(i,u)}const hn={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:s}=e,{type:a,color:i,style:u}=s,c=n.get(r.ICommandService),l=n.get(we);return l.setType(a),l.setColor(i),l.setStyle(u),c.executeCommand(De.id,{unitId:o,subUnitId:t})}},vn={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(r.ICommandService);return n.get(we).setType(e.value),o.executeCommand(De.id)}},Sn={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService);return n.get(we).setStyle(e.value),o.executeCommand(De.id)}},Cn={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService);return n.get(we).setColor(e.value),o.executeCommand(De.id)}},De={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(we),{worksheet:u,unitId:c,subUnitId:l}=Ko(s,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),m=u.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:v,type:S,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=S===r.BorderType.TOP||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,f=S===r.BorderType.LEFT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,M=S===r.BorderType.BOTTOM||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,w=S===r.BorderType.RIGHT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,p=S===r.BorderType.VERTICAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,T=S===r.BorderType.HORIZONTAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,y=S.indexOf("tlbr")>-1,E=S.indexOf("tlbc")>-1,_=S.indexOf("tlmr")>-1,b=S.indexOf("bltr")>-1,U=S.indexOf("mltr")>-1,L=S.indexOf("bctr")>-1,R=d[0],Y={startRow:R.startRow-1,startColumn:R.startColumn,endRow:R.startRow-1,endColumn:R.endColumn},Ue={startRow:R.startRow,startColumn:R.startColumn-1,endRow:R.endRow,endColumn:R.startColumn-1},ae={startRow:R.endRow+1,startColumn:R.startColumn,endRow:R.endRow+1,endColumn:R.endColumn},cr={startRow:R.startRow,startColumn:R.endColumn+1,endRow:R.endRow,endColumn:R.endColumn+1},uo={startRow:R.startRow,startColumn:R.startColumn,endRow:R.startRow,endColumn:R.endColumn},co={startRow:R.startRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.startColumn},lo={startRow:R.endRow,startColumn:R.startColumn,endRow:R.endRow,endColumn:R.endColumn},mo={startRow:R.startRow,startColumn:R.endColumn,endRow:R.endRow,endColumn:R.endColumn},P=new r.ObjectMatrix,H={s:g,cl:{rgb:v}},ht=(A,O)=>{let k=null;return m.forEach(J=>{r.Rectangle.intersects(J,{startColumn:O,endColumn:O,startRow:A,endRow:A})&&(k=J)}),k};function G(A,O,k){A.startRow<0||A.startColumn<0||ot(A,(J,ne)=>{var D,qe;const Z=ht(J,ne);let ee=O;if(Z){if(k){const oe=r.Tools.deepClone((D=P.getValue(Z.startRow,Z.startColumn))==null?void 0:D.s);ee=oe!=null&&oe.bd?Object.assign(oe.bd,O):O}P.setValue(Z.startRow,Z.startColumn,{s:{bd:ee}})}else{if(k){const oe=r.Tools.deepClone((qe=P.getValue(J,ne))==null?void 0:qe.s);ee=oe!=null&&oe.bd?Object.assign(oe.bd,O):O}P.setValue(J,ne,{s:{bd:ee}})}})}I&&G(uo,{t:r.Tools.deepClone(H)},!0),M&&G(lo,{b:r.Tools.deepClone(H)},!0),f&&G(co,{l:r.Tools.deepClone(H)},!0),w&&G(mo,{r:r.Tools.deepClone(H)},!0),y&&G(R,{tl_br:r.Tools.deepClone(H)},!0),E&&G(R,{tl_bc:r.Tools.deepClone(H)},!0),_&&G(R,{tl_mr:r.Tools.deepClone(H)},!0),b&&G(R,{bl_tr:r.Tools.deepClone(H)},!0),U&&G(R,{ml_tr:r.Tools.deepClone(H)},!0),L&&G(R,{bc_tr:r.Tools.deepClone(H)},!0),p&&ot(R,(A,O)=>{var J,ne,Z,ee;const k=ht(A,O);if(k){if(k.endColumn!==R.endColumn){const D=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:r.Tools.deepClone(H)}):{r:r.Tools.deepClone(H)}}})}if(k.startColumn!==R.startColumn){const D=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:r.Tools.deepClone(H)}):{l:r.Tools.deepClone(H)}}})}}else{if(O!==R.endColumn){const D=(Z=P.getValue(A,O))==null?void 0:Z.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:r.Tools.deepClone(H)}):{r:r.Tools.deepClone(H)}}})}if(O!==R.startColumn){const D=(ee=P.getValue(A,O))==null?void 0:ee.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:r.Tools.deepClone(H)}):{l:r.Tools.deepClone(H)}}})}}}),T&&ot(R,(A,O)=>{var J,ne,Z,ee;const k=ht(A,O);if(k){if(k.endRow!==R.endRow){const D=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:r.Tools.deepClone(H)}):{b:r.Tools.deepClone(H)}}})}if(k.startRow!==R.startRow){const D=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:r.Tools.deepClone(H)}):{t:r.Tools.deepClone(H)}}})}}else{if(A!==R.endRow){const D=(Z=P.getValue(A,O))==null?void 0:Z.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:r.Tools.deepClone(H)}):{b:r.Tools.deepClone(H)}}})}if(A!==R.startRow){const D=(ee=P.getValue(A,O))==null?void 0:ee.s;P.setValue(A,O,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:r.Tools.deepClone(H)}):{t:r.Tools.deepClone(H)}}})}}}),!I&&!M&&!f&&!w&&!p&&!T&&!y&&!E&&!_&&!b&&!U&&!L&&(G(Y,{b:null}),G(uo,{t:null},!0),G(ae,{t:null}),G(lo,{b:null},!0),G(Ue,{r:null}),G(co,{l:null},!0),G(cr,{l:null}),G(mo,{r:null},!0),G(R,{tl_br:null},!0),G(R,{tl_bc:null},!0),G(R,{tl_mr:null},!0),G(R,{bl_tr:null},!0),G(R,{ml_tr:null},!0),G(R,{bc_tr:null},!0),ot(R,(A,O)=>{var J,ne,Z,ee,D,qe,oe,go;const k=ht(A,O);if(k){if(k.endColumn!==R.endColumn){const N=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(k.startColumn!==R.startColumn){const N=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(k.endRow!==R.endRow){const N=(Z=P.getValue(k.startRow,k.startColumn))==null?void 0:Z.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(k.startRow!==R.startRow){const N=(ee=P.getValue(k.startRow,k.startColumn))==null?void 0:ee.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}else{if(O!==R.endColumn){const N=(D=P.getValue(A,O))==null?void 0:D.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(O!==R.startColumn){const N=(qe=P.getValue(A,O))==null?void 0:qe.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(A!==R.endRow){const N=(oe=P.getValue(A,O))==null?void 0:oe.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(A!==R.startRow){const N=(go=P.getValue(A,O))==null?void 0:go.s;P.setValue(A,O,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}}));const qt={unitId:c,subUnitId:l,cellValue:P.getData()},dr=ce(n,qt);return o.syncExecuteCommand(z.id,qt)?(t.pushUndoRedo({unitID:c,undoMutations:[{id:z.id,params:dr}],redoMutations:[{id:z.id,params:qt}]}),!0):!1}},Jo=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const s=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const c=s.getColumnOrCreate(u);c!=null&&(c.hd=r.BooleanNumber.TRUE)}}return!0}},Xo=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ae={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const s=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const c=s.getColumnOrCreate(u);c!=null&&(c.hd=r.BooleanNumber.FALSE)}}return!0}},_t={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:s},u=Xo(n,i),c={unitId:o,subUnitId:t,pluginName:x,selections:s.map(g=>({range:g,primary:X(g,a),style:null}))},l={unitId:o,subUnitId:t,pluginName:x,selections:Rn(s).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(r.ICommandService);return r.sequenceExecute([{id:Ae.id,params:i},{id:q.id,params:c}],d).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:u},{id:q.id,params:l}],redoMutations:[{id:Ae.id,params:i},{id:q.id,params:c}]}),!0}},In={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var l;const o=(l=n.get(h.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(r.ICommandService).executeCommand(_t.id,{unitId:i,subUnitId:u,ranges:c})}},fn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var v;const o=(v=n.get(h.SelectionManagerService).getSelections())==null?void 0:v.map(S=>S.range).filter(S=>S.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c={unitId:i,subUnitId:u,ranges:o},l={unitId:i,subUnitId:u,pluginName:x,selections:Rn(o).map(S=>({range:S,primary:X(S,a),style:null}))},d={unitId:i,subUnitId:u,pluginName:x,selections:o.map(S=>({range:S,primary:X(S,a),style:null}))},m=n.get(r.ICommandService);if(r.sequenceExecute([{id:Oe.id,params:c},{id:q.id,params:l}],m).result){const S=n.get(r.IUndoRedoService),C=Jo(n,c);return S.pushUndoRedo({unitID:i,undoMutations:[{id:Ae.id,params:C},{id:q.id,params:d}],redoMutations:[{id:Oe.id,params:c},{id:q.id,params:l}]}),!0}return!1}};function Rn(n){return Zo(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function Zo(n){const e=[];let o;return n.sort((t,s)=>t.startColumn-s.startColumn).forEach(t=>{if(!o){o=t;return}o.endColumn===t.startColumn-1?o.endColumn=t.endColumn:(e.push(o),o=t)}),e.push(o),e}const bt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},he={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getConfig(),{startRow:i,startColumn:u,ySplit:c,xSplit:l}=e;return a.freeze={startRow:i,startColumn:u,ySplit:c,xSplit:l},!0}},Mn={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u)return!1;const c=u.getSheetBySheetId(i);if(!c)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=e;if(d>=c.getRowCount()||l>=c.getColumnCount()||m>=c.getColumnCount()||g>=c.getRowCount())return!1;const v={unitId:a,subUnitId:i,...e},S=bt(n,v);return o.syncExecuteCommand(he.id,v)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:S}],redoMutations:[{id:he.id,params:v}]}),!0):!1}},Qo={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(r.ICommandService),o=n.get(r.IUndoRedoService),t=n.get(r.IUniverInstanceService),s=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(s);if(!i||!i.getSheetBySheetId(a))return!1;const c={unitId:s,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=bt(n,c);return e.syncExecuteCommand(he.id,c)?(o.pushUndoRedo({unitID:s,undoMutations:[{id:he.id,params:l}],redoMutations:[{id:he.id,params:c}]}),!0):!1}},es=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ne={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const c=s.getRowOrCreate(u);c!=null&&(c.hd=0)}}return!0}},ts=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Pe={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const c=s.getRowOrCreate(u);c!=null&&(c.hd=1)}}return!0}},Tt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,a=n.get(r.ICommandService),i=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),c={unitId:o,subUnitId:t,ranges:s},l=es(n,c),d={unitId:o,subUnitId:t,pluginName:x,selections:s.map(v=>({range:v,primary:X(v,u),style:null}))},m={unitId:o,subUnitId:t,pluginName:x,selections:yn(s).map(v=>({range:v,primary:X(v,u),style:null}))};return r.sequenceExecute([{id:Ne.id,params:c},{id:q.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Pe.id,params:l},{id:q.id,params:m}],redoMutations:[{id:Ne.id,params:c},{id:q.id,params:d}]}),!0}},wn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const e=n.get(h.SelectionManagerService),o=n.get(r.IUniverInstanceService),t=(l=e.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===r.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const s=o.getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(r.ICommandService).executeCommand(Tt.id,{unitId:i,subUnitId:u,ranges:c})}},pn={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var C;const e=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=(C=e.getSelections())==null?void 0:C.map(I=>I.range).filter(I=>I.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=s.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(u);if(!l)return!1;const d={unitId:i,subUnitId:u,ranges:a},m={unitId:i,subUnitId:u,pluginName:x,selections:yn(a).map(I=>({range:I,primary:X(I,l),style:null}))},g={unitId:i,subUnitId:u,pluginName:x,selections:a.map(I=>({range:I,primary:X(I,l),style:null}))},v=ts(n,d);return r.sequenceExecute([{id:Pe.id,params:d},{id:q.id,params:m}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:Ne.id,params:v},{id:q.id,params:g}],redoMutations:[{id:Pe.id,params:d},{id:q.id,params:m}]}),!0}};function yn(n){return ns(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function ns(n){const e=[];let o;return n.sort((t,s)=>t.startRow-s.startRow).forEach(t=>{if(!o){o=t;return}t.startRow===o.endRow+1?o.endRow=t.endRow:(e.push(o),o=t)}),e.push(o),e}const K={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(r.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:s=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,u=n.get(r.ICommandService),c=n.get(r.IUndoRedoService),l=n.get(h.SelectionManagerService),d=a?[a]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=o.getUniverSheetInstance(t);if((m==null?void 0:m.getSheetBySheetId(s))==null)return!1;const v=new r.ObjectMatrix;if(r.Tools.isArray(i.value))for(let p=0;p<d.length;p++){const{startRow:T,endRow:y,startColumn:E,endColumn:_}=d[p];for(let b=0;b<=y-T;b++)for(let U=0;U<=_-E;U++)v.setValue(b+T,U+E,{s:{[i.type]:i.value[b][U]}})}else for(let p=0;p<d.length;p++){const{startRow:T,endRow:y,startColumn:E,endColumn:_}=d[p],b={s:{[i.type]:i.value}};for(let U=T;U<=y;U++)for(let L=E;L<=_;L++)v.setValue(U,L,b)}const S={subUnitId:s,unitId:t,cellValue:v.getMatrix()},C=ce(n,S),I=u.syncExecuteCommand(z.id,S),{undos:f,redos:M}=n.get(h.SheetInterceptorService).onCommandExecute({id:K.id,params:e}),w=r.sequenceExecute([...M],u);return I&&w.result?(c.pushUndoRedo({unitID:t,undoMutations:[{id:z.id,params:C},...f],redoMutations:[{id:z.id,params:S},...M]}),!0):!1}},os={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:s}=e.primary,i={style:{type:"bl",value:o.getRange(t,s).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,i)}},ss={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===r.FontItalic.ITALIC}const s={style:{type:"it",value:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,s)}},rs={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const s={style:{type:"ul",value:{s:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}},is={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const s={style:{type:"st",value:{s:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}};r.CommandType.COMMAND;const as={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(K.id,t)}},us={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(K.id,t)}},Un={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(r.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(K.id,t)}},_n={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(r.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(K.id,o)}},bn={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(r.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(K.id,t)}},Tn={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(r.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(K.id,o)}},En={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(K.id,t)}},Dn={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(K.id,t)}},On={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(K.id,t)}},An={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:r.BooleanNumber.TRUE},t=n.get(r.ICommandService),s={style:{type:"tr",value:o}};return t.executeCommand(K.id,s)}},cs=(n,e)=>{const a=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(e),color:a}},Fe={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},Nn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const l={color:e.value,unitId:a,subUnitId:i},d=cs(n,l);return o.syncExecuteCommand(Fe.id,l)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Fe.id,params:d}],redoMutations:[{id:Fe.id,params:l}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,s]of t)if(s.getSheetId()===e.subUnitId)return o.setActiveSheet(s),!0;return!1}},Et={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e)=>{var u,c;const o=n.get(r.ICommandService),t=n.get(r.IUniverInstanceService);let s=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(s=(u=e.unitId)!=null?u:s,a=(c=e.subUnitId)!=null?c:a);const i={unitId:s,subUnitId:a};return o.syncExecuteCommand(He.id,i)}},Dt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("universheet is null error!");const a={},i=s.getColumnManager(),u=e.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},le={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(n,e)=>{var c;const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=e.ranges;for(let l=0;l<u.length;l++){const d=u[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(c=e.colWidth[m-d.startColumn])!=null?c:a}}return!0}},Ot={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const s=n.get(r.ICommandService),a=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),c=u.getActiveSheet(),l=u.getUnitId(),d=c.getSheetId(),{anchorCol:m,deltaX:g}=e,S=c.getColumnWidth(m)+g,C=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,I=t.filter(_=>_.range.rangeType===r.RANGE_TYPE.COLUMN),f=C?r.RANGE_TYPE.ALL:I.some(({range:_})=>{const{startColumn:b,endColumn:U}=_;return b<=m&&m<=U})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let M;if(f===r.RANGE_TYPE.ALL){const _=c.getRowCount(),b=new Array(c.getColumnCount()).fill(void 0).map((U,L)=>({startRow:0,endRow:_-1,startColumn:L,endColumn:L}));M={subUnitId:d,unitId:l,colWidth:S,ranges:b}}else f===r.RANGE_TYPE.COLUMN?M={subUnitId:d,unitId:l,ranges:I.map(_=>r.Rectangle.clone(_.range)),colWidth:S}:M={subUnitId:d,unitId:l,colWidth:S,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:m,endColumn:m}]};const w=Dt(n,M),p=s.syncExecuteCommand(le.id,M),{undos:T,redos:y}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ot.id,params:M}),E=r.sequenceExecute([...y],s);return p&&E.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:le.id,params:w},...T],redoMutations:[{id:le.id,params:M},...y]}),!0}},At={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(h.SelectionManagerService),t=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:i,colWidth:e.value},d=Dt(n,l),m=t.syncExecuteCommand(le.id,l),{undos:g,redos:v}=n.get(h.SheetInterceptorService).onCommandExecute({id:At.id,params:l}),S=r.sequenceExecute([...v],t);return m&&S.result?(s.pushUndoRedo({unitID:u,undoMutations:[{id:le.id,params:d},...g],redoMutations:[{id:le.id,params:l},...v]}),!0):!1}},Pn=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},ve={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var I;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=s.getCurrentUniverSheetInstance().getUnitId();let u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(u=(I=e.subUnitId)!=null?I:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const l=c.getSheetBySheetId(u);if(!l||l.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:u,hidden:r.BooleanNumber.TRUE},g=Pn(n,m);return c.getSheets().filter(f=>f.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ve.id,m)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:m}]}),!0):!1}},ds=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},st={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},Nt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=e.unitId||s.getCurrentUniverSheetInstance().getUnitId(),c={subUnitId:e.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},l=ds(n,c),d=a.onCommandExecute({id:Nt.id,params:e}),m=[{id:st.id,params:c},...d.redos],g=[...d.undos,{id:st.id,params:l}];return await r.sequenceExecute(m,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},ls=(n,e)=>{const s=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(a=>a===e.subUnitId);return{...r.Tools.deepClone(e),order:s}},$e={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig(),s=t.sheetOrder.filter(a=>a!==e.subUnitId);return s.splice(e.order,0,e.subUnitId),t.sheetOrder=s,!0}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=e.unitId||s.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const l={order:e.order,unitId:a,subUnitId:i},d=ls(n,l);return o.syncExecuteCommand($e.id,l)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:$e.id,params:d}],redoMutations:[{id:$e.id,params:l}]}),!0):!1}},ms=2e3,Bn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const c={},l=u.getRowManager();for(const{startRow:d,endRow:m}of s)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);c[g]=v.h}return{unitId:o,subUnitId:t,ranges:s,rowHeight:c}},Pt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),c={},l=u.getRowManager();for(const{startRow:d,endRow:m}of s)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);c[g]=v.ia}return{unitId:o,subUnitId:t,ranges:s,autoHeightInfo:c}},gs=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t),c=[],l=u.getRowManager();for(const d of s){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);c.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:t,rowsAutoHeightInfo:c}},me={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:o,subUnitId:t,ranges:s,rowHeight:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),c=u==null?void 0:u.getSheetBySheetId(t);if(!c)return!1;const l=c.getConfig().defaultRowHeight,d=c.getRowManager();for(const{startRow:g,endRow:v}of s)for(let S=g;S<=v;S++){const C=d.getRowOrCreate(S);typeof a=="number"?C.h=a:C.h=(m=a[S])!=null?m:l,C.h=Math.min(ms,C.h)}return!0}},te={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(n,e)=>{var m;const{unitId:o,subUnitId:t,ranges:s,autoHeightInfo:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),c=u==null?void 0:u.getSheetBySheetId(t);if(!c)return!1;const l=void 0,d=c.getRowManager();for(const{startRow:g,endRow:v}of s)for(let S=g;S<=v;S++){const C=d.getRowOrCreate(S);typeof a=="number"?C.ia=a:C.ia=(m=a[S-g])!=null?m:l}return!0}},kt={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t);if(!u||!i)return!1;const c=u.getRowManager();for(const{row:l,autoHeight:d}of s){const m=c.getRowOrCreate(l);m.ah=d}return!0}},Vn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),u=a.getUnitId(),c=i.getSheetId(),{anchorRow:l,deltaY:d}=e,g=i.getRowHeight(l)+d,v=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,S=t.filter(E=>E.range.rangeType===r.RANGE_TYPE.ROW),C=v?r.RANGE_TYPE.ALL:S.some(({range:E})=>{const{startRow:_,endRow:b}=E;return _<=l&&l<=b})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let I;if(C===r.RANGE_TYPE.ALL){const E=i.getRowCount(),_=new Array(i.getColumnCount()).fill(void 0).map((b,U)=>({startRow:U,endRow:U,startColumn:0,endColumn:E-1}));I={subUnitId:c,unitId:u,rowHeight:g,ranges:_}}else C===r.RANGE_TYPE.ROW?I={subUnitId:c,unitId:u,ranges:S.map(E=>r.Rectangle.clone(E.range)),rowHeight:g}:I={subUnitId:c,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const f=Bn(n,I),M={unitId:u,subUnitId:c,ranges:I.ranges,autoHeightInfo:r.BooleanNumber.FALSE},w=Pt(n,M),p=n.get(r.ICommandService),T=n.get(r.IUndoRedoService);return r.sequenceExecute([{id:me.id,params:I},{id:te.id,params:M}],p).result?(T.pushUndoRedo({unitID:u,undoMutations:[{id:me.id,params:f},{id:te.id,params:w}],redoMutations:[{id:me.id,params:I},{id:te.id,params:M}]}),!0):!1}},jn={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(h.SelectionManagerService),t=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance(),c=u.getUnitId(),l=u.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:c,ranges:i,rowHeight:e.value},m=Bn(n,d),g={unitId:c,subUnitId:l,ranges:d.ranges,autoHeightInfo:r.BooleanNumber.FALSE},v=Pt(n,g);return r.sequenceExecute([{id:me.id,params:d},{id:te.id,params:g}],t).result?(s.pushUndoRedo({unitID:c,undoMutations:[{id:me.id,params:m},{id:te.id,params:v}],redoMutations:[{id:me.id,params:d},{id:te.id,params:g}]}),!0):!1}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(h.SelectionManagerService),a=n.get(r.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),u=a.getCurrentUniverSheetInstance().getActiveSheet(),c=u.getSheetId(),{anchorRow:l}=e!=null?e:{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:u.getMaxColumns()-1}]:s.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:i,subUnitId:c,ranges:d,autoHeightInfo:r.BooleanNumber.TRUE},g=Pt(n,m),v=o.syncExecuteCommand(te.id,m),{undos:S,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:Lt.id,params:m}),I=r.sequenceExecute([...C],o);return v&&I.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:te.id,params:g},...S],redoMutations:[{id:te.id,params:m},...C]}),!0):!1}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var C;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId();let i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(C=e.value)!=null?C:i);const u=s.getUniverSheetInstance(a);if(!u)return!1;const c=u.getSheetBySheetId(i);if(!c||c.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:r.BooleanNumber.FALSE},m=Pn(n,d),g=o.syncExecuteCommand(ve.id,d),v={unitId:a,subUnitId:i},S=o.syncExecuteCommand(He.id,v);return g&&S?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:m}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},hs=n=>{const e=new r.ObjectMatrix;return n.forEach(o=>{r.Range.foreach(o,(t,s)=>{e.setValue(t,s,1)})}),e.forValue((o,t)=>{const s=e.getValue(o-1,t);s&&e.setValue(o,t,s+1)}),e},Fn=n=>{const e={area:0},o=(t,s)=>e.area<t?(e.area=t,e.range=s,!0):!1;return n.forValue((t,s,a)=>{let i=1,u=a;o(i*u,{startRow:t-u+1,endRow:t,startColumn:s,endColumn:s});const c={startRow:t-u+1,endRow:t,startColumn:0,endColumn:s};for(let l=s-1;l>=0&&n.getValue(t,l);l--){u=Math.min(n.getValue(t,l)||0,u),i++;const d=u*i;c.startColumn=l,c.startRow=t-u+1,o(d,c)}}),e},vs=(n,e)=>(r.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let s=o+1,a=n.getValue(s,t)||0;for(;a>1;)n.setValue(s,t,a-1),s+=1,a=n.getValue(s,t)||0}),n),Ss=n=>{const e=[];let o=Fn(n);for(;o.area>0;)o.range&&(e.push(o.range),vs(n,o.range)),o=Fn(n);return e},Bt=n=>{const e=hs(n);return Ss(e)},Cs=(n,e,o="")=>n.reduce((t,s)=>{const a=s&&s[e];return typeof a!="string"?(console.warn(s,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(s)):t[o].push(s),t)},{}),Is=(n=0)=>{let e=n;return function(){return e++}},pe=V.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Rendered,pe);const fs=(n,e)=>{const o=n.get(pe),{values:t,unitId:s,subUnitId:a}=e,i=[],u=[],c=o.getModel(s,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{r.Range.foreach(g,(v,S)=>{const C=o.getValue(s,a,v,S,c);C?i.push({pattern:C.pattern,type:C.type,row:v,col:S}):u.push({startColumn:S,endColumn:S,startRow:v,endRow:v})})})});const l=[];if(i.length){const d=it(s,a,i);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=Bt(g.ranges)}),l.push({id:rt.id,params:it(s,a,i)})}return u.length&&l.push({id:Vt.id,params:{unitId:s,subUnitId:a,ranges:u}}),l},rt={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,s=n.get(pe),a=e.unitId,i=e.subUnitId,u=Object.keys(o).reduce((c,l)=>{const d=t[l],m=o[l].ranges;return d&&c.push({...d,ranges:m}),c},[]);return s.setValues(a,i,u),!0}},Vt={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:s}=e;return n.get(pe).deleteValues(o,t,s),!0}},Rs=(n,e)=>{const o=n.get(pe),{ranges:t,unitId:s,subUnitId:a}=e,i=[],u=o.getModel(s,a)||void 0;if(t.forEach(l=>{r.Range.foreach(l,(d,m)=>{const g=o.getValue(s,a,d,m,u);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!i.length)return[];const c=it(s,a,i);return Object.keys(c.values).forEach(l=>{const d=c.values[l];d.ranges=Bt(d.ranges)}),[{id:rt.id,params:c}]},it=(n,e,o)=>{const t=Cs(o,"pattern"),s={},a={},i=Is();return Object.keys(t).forEach(u=>{const c=t[u],l=c[0],d=i();s[d]={pattern:u,type:l.type},c.forEach(m=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(Ms(m.row,m.col))})}),{unitId:n,subUnitId:e,refMap:s,values:a}},Ms=(n,e)=>({startRow:n,endRow:n,startColumn:e,endColumn:e}),Hn="maxCellsPerSheet",ws=3e6;var ps=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Us=(n,e,o,t)=>{for(var s=t>1?void 0:t?ys(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&ps(e,o,s),s},$n=(n,e)=>(o,t)=>e(o,t,n);let at=class extends r.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[j,xe,St,Ke,Jt,Xe,Ze,Ot,Vn,an,rn,Ee,fe,Qe,et,on,nn,Te,Ie,un,Se,yt,We,Je,Be,pt,je,nt,Me,tt,Re,Ut,Le,gn,W,Tn,_n,bn,hn,Cn,De,vn,Sn,fn,Oe,Ae,At,Qo,Mn,he,Dn,Ce,z,jn,pn,Pe,Ne,In,wn,_t,Tt,K,Nn,Fe,Un,An,On,En,Et,He,le,kn,ve,Nt,st,Ln,$e,kt,me,Lt,te,Wn,rt,q,Vt].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(Hn,ws)}};at=Us([r.OnLifecycle(r.LifecycleStages.Starting,at),$n(0,r.ICommandService),$n(1,r.IConfigService)],at);var _s=Object.defineProperty,bs=Object.getOwnPropertyDescriptor,Ts=(n,e,o,t)=>{for(var s=t>1?void 0:t?bs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&_s(e,o,s),s},Es=(n,e)=>(o,t)=>e(o,t,n);let ut=class extends r.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==vt.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,s=Object.keys(o),a=[];return s.forEach(u=>{const c=o[u];if(c==null)return!0;Object.keys(c).forEach(d=>{const m=c[d];if(m==null)return!0;const g={subUnitId:d,unitId:u,cellValue:m.getData()};a.push({id:z.id,params:g})})}),a.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};ut=Ts([r.OnLifecycle(r.LifecycleStages.Ready,ut),Es(0,r.ICommandService)],ut);var Ds=Object.defineProperty,Os=Object.getOwnPropertyDescriptor,As=(n,e,o,t)=>{for(var s=t>1?void 0:t?Os(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Ds(e,o,s),s},ct=(n,e)=>(o,t)=>e(o,t,n);let dt=class extends r.Disposable{constructor(n,e,o,t){super(),this._commandService=n,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=t}_initialize(){const n="test",e="workbook-01",o="sheet-0011",t={[e]:{[o]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:s})})}};dt=As([r.OnLifecycle(r.LifecycleStages.Ready,dt),ct(0,r.ICommandService),ct(1,vt.IFeatureCalculationManagerService),ct(2,r.IUniverInstanceService),ct(3,V.Inject(vt.FormulaDataModel))],dt);const F={MoveRangeCommandId:Xt,InsertRowCommandId:tn,InsertColCommandId:sn,RemoveColCommandId:mn,RemoveRowCommandId:ln,DeleteRangeMoveLeftCommandId:Zt,DeleteRangeMoveUpCommandId:Qt,InsertRangeMoveDownCommandId:Go,InsertRangeMoveRightCommandId:en,MoveColsCommandId:dn,MoveRowsCommandId:cn};var $=(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))($||{}),Ns=Object.defineProperty,Ps=Object.getOwnPropertyDescriptor,ks=(n,e,o,t)=>{for(var s=t>1?void 0:t?Ps(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Ns(e,o,s),s},jt=(n,e)=>(o,t)=>e(o,t,n);const Ls=r.createInterceptorKey("MERGE_REDO"),Bs=r.createInterceptorKey("MERGE_UNDO");h.RefRangeService=class extends r.Disposable{constructor(o,t,s){super();B(this,"interceptor",new r.InterceptorManager({MERGE_REDO:Ls,MERGE_UNDO:Bs}));B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",Vs());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=Gn(this._univerInstanceService),a=zn(this._univerInstanceService),c=((()=>{switch(o.id){case F.MoveColsCommandId:{const m=o.params,g=Math.min(m.fromRange.startColumn,m.toRange.startColumn);return this._checkRange([{...m.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],s,a)}case F.MoveRowsCommandId:{const m=o.params,g=Math.min(m.fromRange.startRow,m.toRange.startRow);return this._checkRange([{...m.fromRange,startRow:g,endRow:t.getRowCount()-1}],s,a)}case F.MoveRangeCommandId:{const m=o;return this._checkRange([m.params.fromRange,m.params.toRange],s,a)}case F.InsertRowCommandId:{const v={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case F.InsertColCommandId:{const g=o.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case F.RemoveRowCommandId:{const v={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case F.RemoveColCommandId:{const g=o.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case F.DeleteRangeMoveUpCommandId:case F.InsertRangeMoveDownCommandId:{const g=o.params.range||qn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([v],s,a)}case F.DeleteRangeMoveLeftCommandId:case F.InsertRangeMoveRightCommandId:{const g=o.params.range||qn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([v],s,a)}}})()||[]).reduce((m,g)=>{const v=g(o);return m.push(v),m},[]).reduce((m,g)=>(m.redos.push(...g.redos),m.undos.push(...g.undos),m),{redos:[],undos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(c.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(c.undos,null)||[];return{redos:l,undos:d}}})});B(this,"_checkRange",(o,t,s)=>{const a=Yn(t,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);o.some(g=>r.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{u.add(g)})}),[...u]}return[]});B(this,"registerRefRange",(o,t,s,a)=>{const i=s||Gn(this._univerInstanceService),u=a||zn(this._univerInstanceService),c=Yn(i,u),l=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(c);d||(d=new Map,this._refRangeManagerMap.set(c,d));const m=d.get(l);return m?m.add(t):d.set(l,new Set([t])),r.toDisposable(()=>{const g=d.get(l);g&&(g.delete(t),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(c)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=s,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}},h.RefRangeService=ks([r.OnLifecycle(r.LifecycleStages.Steady,h.RefRangeService),jt(0,V.Inject(h.SheetInterceptorService)),jt(1,V.Inject(r.IUniverInstanceService)),jt(2,V.Inject(h.SelectionManagerService))],h.RefRangeService);function Gn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function zn(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function qn(n){return n.getSelectionRanges()||[]}function Yn(n,e){return`${n}_${e}`}function Vs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(e).reduce((a,i,u)=>{const c=String(u);return i&&t[c]&&(a[t[c]]=i),a},{})},serialize:o=>n.reduce((t,s,a)=>{const i=o[s];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const lt=Number.MAX_SAFE_INTEGER,ue=n=>{const e={...n};return e.rangeType===r.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=lt),e.rangeType===r.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=lt),e.rangeType===r.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=lt,e.startRow=0,e.endRow=lt),e},ge=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Wt=(n,e,o)=>{const t={...o},s={...e},a=(C,I)=>{const f=Math.max(C.start,I.start),M=Math.min(C.end,I.end);return M<f?null:{start:f,end:M}},i=C=>C.end-C.start+1,u=(C,I)=>({start:C.start-I.start,end:C.start-I.start+C.end-C.start}),c=(C,I)=>({start:I.start+C.start,end:I.start+C.start+C.end-C.start}),l=e.start>n.start;if(l){const C=Math.min(n.end,e.start)-n.start+1;s.start-=C,s.end-=C}const d=i(n),m=d,g=a(n,t),v=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const C=i(g);if(v){const I=u(t,n),f=c(I,s);t.start=f.start,t.end=f.end}else g.start>n.start||l?t.end-=C:(t.start-=d,t.end-=d+C)}const S=a(s,t);if(s.start<=t.start&&!v)t.start+=m,t.end+=m;else if(S){const C=s.start;if(i(S)<=i(t))return{step:t.start-o.start,length:0};C<t.start?(t.start+=m,t.end+=m):C>=t.start&&C<=t.end&&(t.end+=m,t.start+=m)}return{step:t.start-o.start,length:i(t)-i(o)}},Ft=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const s=ue(o),a=ue(t),i=ue(e),u=Wt({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:$.Delete}]:[{type:$.VerticalMove,step:u.step||0,length:u.length||0}]},Ht=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const s=ue(o),a=ue(t),i=ue(e),u=Wt({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:$.Delete}]:[{type:$.HorizontalMove,step:u.step||0,length:u.length||0}]},xn=(n,e)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,t=(i=n.params)==null?void 0:i.fromRange;if(!o||!t)return[];const s=[];if(r.Rectangle.contains(o,e)&&s.push({type:$.Delete}),r.Rectangle.contains(t,e)){s.push({type:$.Delete});const u=r.Rectangle.getRelativeRange(e,t),c=r.Rectangle.getPositionRange(u,o);return[{type:$.Set,range:c}]}return s},Ge=(n,e)=>{const o=ue(n),t=ue(e),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn){const i=r.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-s(i)}}if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn&&a(o)>=a(t))return null;if(t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn){const i=r.Rectangle.getIntersects(t,o);if(i){const u=-s(i);return{step:-(s(o)-s(i)),length:u}}}if(t.startColumn>o.endColumn)return{step:-s(o),length:0}}return{step:0,length:0}},Kn=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(o,e);if(!s)t.push({type:$.Delete});else{const{step:i,length:u}=s;t.push({type:$.HorizontalMove,step:i,length:u})}return t},Jn=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(ge(o),ge(e));if(!s)t.push({type:$.Delete});else{const{step:i,length:u}=s;t.push({type:$.VerticalMove,step:i,length:u})}return t},ze=(n,e)=>{const o=ue(n),t=ue(e),s=a=>a.endColumn-a.startColumn+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn)return{step:0,length:s(o)};if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn||t.startColumn>=o.endColumn)return{step:s(o),length:0}}return{step:0,length:0}},Xn=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(ge(o),ge(e)),{step:a,length:i}=s;return t.push({type:$.VerticalMove,step:a,length:i}),t},Zn=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(o,e),{step:a,length:i}=s;return t.push({type:$.HorizontalMove,step:a,length:i}),t},Qn=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(ge(o),ge(e)),{step:a,length:i}=s;return t.push({type:$.VerticalMove,step:a,length:i}),t},eo=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(o,e),{step:a,length:i}=s;return t.push({type:$.HorizontalMove,step:a,length:i}),t},to=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(o,e);if(!s)t.push({type:$.Delete});else{const{step:i,length:u}=s;t.push({type:$.HorizontalMove,step:i,length:u})}return t},no=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(ge(o),ge(e));if(!s)t.push({type:$.Delete});else{const{step:i,length:u}=s;t.push({type:$.VerticalMove,step:i,length:u})}return t},mt=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case $.Delete:{o=null;break}case $.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case $.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case $.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},js=(n,e)=>{let o=[];switch(e.id){case F.DeleteRangeMoveLeftCommandId:{o=to(e,n);break}case F.DeleteRangeMoveUpCommandId:{o=no(e,n);break}case F.InsertColCommandId:{o=Zn(e,n);break}case F.InsertRangeMoveDownCommandId:{o=Qn(e,n);break}case F.InsertRangeMoveRightCommandId:{o=eo(e,n);break}case F.InsertRowCommandId:{o=Xn(e,n);break}case F.MoveColsCommandId:{o=Ht(e,n);break}case F.MoveRangeCommandId:{o=xn(e,n);break}case F.MoveRowsCommandId:{o=Ft(e,n);break}case F.RemoveColCommandId:{o=Kn(e,n);break}case F.RemoveRowCommandId:{o=Jn(e,n);break}}return mt(o,n)};var Ws=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Fs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Ws(e,o,s),s},ke=(n,e)=>(o,t)=>e(o,t,n);function oo(n,e){let o=n;if(e!==void 0){const t=[];for(let s=0;s<o.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:c}=o[s];if(e===r.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:u,endColumn:c};t.push(d)}else if(e===r.Dimension.COLUMNS)for(let l=u;l<=c;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};t.push(d)}}o=t}return o}h.MergeCellController=class extends r.Disposable{constructor(e,o,t,s,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=s,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case xe.id:case Ke.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),s=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),u=a.getConfig().mergeData,c=e._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(d=>u.some(m=>r.Rectangle.intersects(m,d)))){const d={unitId:s,subUnitId:i,ranges:c},m=Q(e._injector,d),g=[{id:W.id,params:d}],v=[{id:j.id,params:m}];return{redos:g,undos:v}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new r.DisposableCollection,o=(a,i)=>{const u=this._univerInstanceService.getUniverSheetInstance(a);if(!u)return;const c=u==null?void 0:u.getSheetBySheetId(i);if(!c)return;e.dispose();const l=c.getMergeData(),d=m=>{switch(m.id){case Je.id:{const g=m.params;return this._handleMoveRangeCommand(g,a,i)}case Te.id:{const g=m.params,v=g.unitId||a,S=g.subUnitId||i;return this._handleInsertRowCommand(g,v,S)}case Ee.id:{const g=m.params,v=g.unitId||a,S=g.subUnitId||i;return this._handleInsertColCommand(g,v,S)}case nt.id:{const g=m.params;return this._handleRemoveColCommand(g,a,i)}case tt.id:{const g=m.params;return this._handleRemoveRowCommand(g,a,i)}case et.id:{const g=m.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case Qe.id:{const g=m.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case Ze.id:{const g=m.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case Xe.id:{const g=m.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case F.MoveColsCommandId:{const g=m.params;return this._handleMoveColsCommand(g,a,i)}case F.MoveRowsCommandId:{const g=m.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};l.forEach(m=>{e.add(this._refRangeService.registerRefRange(m,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Et.id){const i=a.params,u=i.subUnitId,c=i.unitId;if(!u||!c)return;o(c,u)}if(a.id===j.id){const i=a.params,u=i.subUnitId,c=i.unitId;if(!u||!c)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t.getActiveSheet();o(t.getUnitId(),s.getSheetId())}_handleMoveRowsCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],u={unitId:o,subUnitId:t,ranges:i},c={unitId:o,subUnitId:t,ranges:[]};i.forEach(m=>{const g=Ft({id:F.MoveRowsCommandId,params:e},m),v=mt(g,m);v&&c.ranges.push(v)});const l=Q(this._injector,u),d=se(this._injector,c);return{redos:[{id:W.id,params:u},{id:j.id,params:c}],undos:[{id:W.id,params:d},{id:j.id,params:l}]}}_handleMoveColsCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],u={unitId:o,subUnitId:t,ranges:i},c={unitId:o,subUnitId:t,ranges:[]};i.forEach(m=>{const g=Ht({id:F.MoveColsCommandId,params:e},m),v=mt(g,m);v&&c.ranges.push(v)});const l=Q(this._injector,u),d=se(this._injector,c);return{redos:[{id:W.id,params:u},{id:j.id,params:c}],undos:[{id:W.id,params:d},{id:j.id,params:l}]}}_handleMoveRangeCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=a.getMergeData(),u=i.filter(v=>r.Rectangle.intersects(v,e.fromRange)),c=i.filter(v=>r.Rectangle.intersects(v,e.toRange)),l=u.map(v=>r.Rectangle.getRelativeRange(v,e.fromRange)).map(v=>r.Rectangle.getPositionRange(v,e.toRange)),d=oo(l).filter(v=>!i.some(S=>r.Rectangle.equals(v,S))),m=[{id:W.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:W.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:W.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:u}}];return{redos:m,undos:g}}_handleInsertRowCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:u,endRow:c}=i,l=r.Tools.deepClone(a.getMergeData()),d=r.Tools.deepClone(a.getMergeData()).map(f=>{const M=c-u+1;return u>f.endRow?f:u<=f.startRow?r.Rectangle.moveVertical(f,M):(f.endRow+=M,f)}),m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v),C=[{id:W.id,params:m},{id:j.id,params:v}],I=[{id:W.id,params:S},{id:j.id,params:g}];return{redos:C,undos:I}}_handleInsertColCommand(e,o,t){const{range:s}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=ie(a,t);if(!i)return this._handleNull();const{startColumn:u,endColumn:c}=s,l=r.Tools.deepClone(i.getMergeData()),d=r.Tools.deepClone(i.getMergeData()).map(f=>{const M=c-u+1;return u>f.endColumn?f:u<=f.startColumn?r.Rectangle.moveHorizontal(f,M):(f.endColumn+=M,f)}),m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v),C=[{id:W.id,params:m},{id:j.id,params:v}],I=[{id:W.id,params:S},{id:j.id,params:g}];return{redos:C,undos:I}}_handleRemoveColCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const{range:i}=e,u=r.Tools.deepClone(a.getMergeData());for(let S=0;S<u.length;S++){const C=u[S],{startColumn:I,endColumn:f}=C,M=f-I+1,{startColumn:w,endColumn:p}=i,T=p-w+1;if(p<C.startColumn)C.startColumn-=T,C.endColumn-=T;else{if(w>C.endColumn)continue;if(w<=C.startColumn&&p>=C.endColumn)u.splice(S,1),S--;else{const y=r.Rectangle.getIntersects(i,C),E=y.endColumn-y.startColumn+1,_=y.endRow-y.startRow===0;E===M-1&&_?(u.splice(S,1),S--):C.endColumn-=y.endColumn-y.startColumn+1}}}const c={unitId:o,subUnitId:t,ranges:r.Tools.deepClone(a.getMergeData())},l=Q(this._injector,c),d={unitId:o,subUnitId:t,ranges:u},m=se(this._injector,d),g=[{id:W.id,params:c},{id:j.id,params:d}],v=[{id:W.id,params:m},{id:j.id,params:l}];return{redos:g,undos:v}}_handleRemoveRowCommand(e,o,t){const{range:s}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=ie(a,t);if(!i)return this._handleNull();const u=r.Tools.deepClone(i.getMergeData());for(let S=0;S<u.length;S++){const C=u[S],{startRow:I,endRow:f}=C,M=f-I+1,{startRow:w,endRow:p}=s,T=p-w+1;if(p<I)C.startRow-=T,C.endRow-=T;else{if(w>f)continue;if(w<=I&&p>=f)u.splice(S,1),S--;else{const y=r.Rectangle.getIntersects(s,C),E=y.endRow-y.startRow+1,_=y.endColumn-y.startColumn===0;E===M-1&&_?(u.splice(S,1),S--):C.endRow-=y.endRow-y.startRow+1}}}const c={unitId:o,subUnitId:t,ranges:r.Tools.deepClone(i.getMergeData())},l=Q(this._injector,c),d={unitId:o,subUnitId:t,ranges:u},m=se(this._injector,d),g=[{id:W.id,params:c},{id:j.id,params:d}],v=[{id:W.id,params:m},{id:j.id,params:l}];return{redos:g,undos:v}}_handleInsertRangeMoveRightCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxColumns()-1,c=a.getMergeData(),l=[],d=[];c.forEach(C=>{const{startRow:I,endRow:f,startColumn:M,endColumn:w}=i;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:f,endColumn:u},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:f,endColumn:u},C))){const y=w-M+1;d.push({startRow:C.startRow,startColumn:C.startColumn+y,endRow:C.endRow,endColumn:C.endColumn+y})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v);return{redos:[{id:W.id,params:m},{id:j.id,params:v}],undos:[{id:j.id,params:g},{id:W.id,params:S}]}}_handleInsertRangeMoveDownCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxRows()-1,c=a.getMergeData(),l=[],d=[];c.forEach(f=>{const{startRow:M,startColumn:w,endColumn:p,endRow:T}=i;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:u,endColumn:p},f)&&(l.push(f),r.Rectangle.contains({startRow:M,startColumn:w,endRow:u,endColumn:p},f))){const _=T-M+1;d.push({startRow:f.startRow+_,startColumn:f.startColumn,endRow:f.endRow+_,endColumn:f.endColumn})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v),C=[{id:W.id,params:m},{id:j.id,params:v}],I=[{id:j.id,params:g},{id:W.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxRows()-1,c=a.getMergeData(),l=[],d=[];c.forEach(f=>{const{startRow:M,startColumn:w,endColumn:p,endRow:T}=i;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:u,endColumn:p},f)&&(l.push(f),r.Rectangle.contains({startRow:M,startColumn:w,endRow:u,endColumn:p},f))){const _=T-M+1,b=r.Rectangle.moveVertical(f,-_);d.push(b)}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v),C=[{id:W.id,params:m},{id:j.id,params:v}],I=[{id:j.id,params:g},{id:W.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(e,o,t){const s=re(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ie(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxColumns()-1,c=a.getMergeData(),l=[],d=[];c.forEach(C=>{const{startRow:I,endRow:f,startColumn:M,endColumn:w}=i;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:f,endColumn:u},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:f,endColumn:u},C))){const y=w-M+1;d.push({startRow:C.startRow,startColumn:C.startColumn-y,endRow:C.endRow,endColumn:C.endColumn-y})}});const m={unitId:o,subUnitId:t,ranges:l},g=Q(this._injector,m),v={unitId:o,subUnitId:t,ranges:d},S=se(this._injector,v);return{redos:[{id:W.id,params:m},{id:j.id,params:v}],undos:[{id:j.id,params:g},{id:W.id,params:S}]}}_handleNull(){return{redos:[],undos:[]}}},h.MergeCellController=Hs([r.OnLifecycle(r.LifecycleStages.Steady,h.MergeCellController),ke(0,V.Inject(r.ICommandService)),ke(1,V.Inject(h.RefRangeService)),ke(2,V.Inject(r.IUniverInstanceService)),ke(3,V.Inject(V.Injector)),ke(4,V.Inject(h.SheetInterceptorService)),ke(5,V.Inject(h.SelectionManagerService))],h.MergeCellController);function re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function ie(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const $s={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},so={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Gs=Object.defineProperty,zs=Object.getOwnPropertyDescriptor,qs=(n,e,o,t)=>{for(var s=t>1?void 0:t?zs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Gs(e,o,s),s},gt=(n,e)=>(o,t)=>e(o,t,n);const ro="SHEET_NUMFMT_PLUGIN";h.NumfmtService=class extends r.Disposable{constructor(o,t,s,a){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new _e.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=s,this._logService=a,this._initModel(),this.disposeWithMe(r.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,ro,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,u)=>{const{model:c,refModel:l}=u;if(c){const d=Object.keys(c).reduce((m,g)=>(m.set(g,new r.ObjectMatrix(c[g])),m),new Map);this._numfmtModel.set(i,d)}l&&this._refAliasModel.set(i,new r.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,ro)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),s=this._refAliasModel.get(o);if(!t||!s)return"";const a=[...t.keys()].reduce((c,l)=>{const d=t.get(l);return c[l]=d.toJSON(),c},{}),i=s.getValues().filter(c=>c.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,s,a,i){let u=this.getModel(o,t);if(!u){const c=this._numfmtModel.get(o)||new Map,l=c.get(t)||new r.ObjectMatrix;c.set(t,l),this._numfmtModel.set(o,c),u=l}if(i)u.setValue(s,a,i);else if(u.realDeleteValue(s,a),!u.getSizeOf()){const l=this._numfmtModel.get(o);l==null||l.delete(t)}}_getUniqueRefId(o){const t=this._refAliasModel.get(o);if(!t)return"0";const s=t.getKeyMap("i");return`${Math.max(...s.map(i=>Number(i||0)),0)+1}`}getValue(o,t,s,a,i){const u=i||this.getModel(o,t);if(!u)return null;const c=this._refAliasModel.get(o),l=u.getValue(s,a);if(l&&c){const d=c.getValue(l==null?void 0:l.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,t,s){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),s.forEach(u=>{r.Range.foreach(u,(c,l)=>{const d=this.getValue(o,t,c,l,i);if(d&&d.pattern){const m=a.getValue(d.pattern);m&&m.count--}this._setValue(o,t,c,l,null)})})}setValues(o,t,s){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),s.forEach(u=>{let c=i.getValue(u.pattern);c||(c={count:0,i:this._getUniqueRefId(o),pattern:u.pattern,type:s[0].type},i.addValue(c)),u.ranges.forEach(l=>{r.Range.foreach(l,(d,m)=>{if(a){const g=this.getValue(o,t,d,m,a);if(g&&g.pattern){const v=i.getValue(g.pattern);v&&v.count--}}this._setValue(o,t,d,m,{i:c.i}),c.count++})})})}getModel(o,t){const s=this._numfmtModel.get(o);return s==null?void 0:s.get(t)}getRefModel(o){return this._refAliasModel.get(o)}},h.NumfmtService=qs([r.OnLifecycle(r.LifecycleStages.Starting,h.NumfmtService),gt(0,V.Inject(r.ICommandService)),gt(1,V.Inject(r.IResourceManagerService)),gt(2,V.Inject(r.IUniverInstanceService)),gt(3,V.Inject(r.ILogService))],h.NumfmtService);const io="univer.sheet.editable";class ye extends r.PermissionPoint{constructor(o,t){super();B(this,"id",io);B(this,"value",!0);B(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${io}_${o}_${t}`}}var Ys=Object.defineProperty,xs=Object.getOwnPropertyDescriptor,Ks=(n,e,o,t)=>{for(var s=t>1?void 0:t?xs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Ys(e,o,s),s},$t=(n,e)=>(o,t)=>e(o,t,n);h.SheetPermissionService=class extends r.Disposable{constructor(e,o,t){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=t,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(t=>{const s=t.getSheetId(),a=new ye(o,s);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(r.toDisposable(e.sheetCreated$.subscribe(t=>{const s=t.getSheetId(),a=new ye(o,s);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(r.toDisposable(e.sheetDisposed$.subscribe(t=>{const s=t.getSheetId(),a=new ye(o,s);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=s==null?void 0:s.getActiveSheet(),i=s==null?void 0:s.getUnitId(),u=a==null?void 0:a.getSheetId();if(!i||!u)return!1;switch(o.id){case Ce.id:return this.getSheetEditable(i,u)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),u=new ye(s,i);return this._permissionService.composePermission$(s,[r.UniverEditablePermissionPoint,u.id]).pipe(ho.map(([c,l])=>{const d=c.value&&l.value,m=r.getTypeFromPermissionItemList([c,l]);return{value:d,status:m}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),u=new ye(s,i);return this._permissionService.composePermission(s,[r.UniverEditablePermissionPoint,u.id]).every(c=>c.value)}setSheetEditable(e,o,t){const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||s.getUnitId(),i=s.getActiveSheet(),u=t||i.getSheetId(),c=new ye(a,u);this._permissionService.updatePermissionPoint(a,c.id,e)}},h.SheetPermissionService=Ks([r.OnLifecycle(r.LifecycleStages.Ready,h.SheetPermissionService),$t(0,V.Inject(r.IPermissionService)),$t(1,V.Inject(r.IUniverInstanceService)),$t(2,V.Inject(h.SheetInterceptorService))],h.SheetPermissionService);function Js(n){const e=n.get(r.IUniverInstanceService),o=n.get(h.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),s=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var u;const i=(u=o.getEditable$(t,s))==null?void 0:u.subscribe(c=>{a.next(!c.value)});return()=>{i==null||i.unsubscribe()}})}var Xs=Object.defineProperty,Zs=Object.getOwnPropertyDescriptor,Qs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Zs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Xs(e,o,s),s},Gt=(n,e)=>(o,t)=>e(o,t,n);const er="sheet";h.UniverSheetsPlugin=(zt=class extends r.Plugin{constructor(e,o,t,s){super(er),this._config=e,this._commandService=o,this._localeService=t,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:so})}_initializeDependencies(e){var t;const o=[[we],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[pe,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[at],[h.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([ut],[dt]),o.forEach(s=>{e.add(s)})}},B(zt,"type",r.PluginType.Sheet),zt),h.UniverSheetsPlugin=Qs([Gt(1,r.ICommandService),Gt(2,V.Inject(r.LocaleService)),Gt(3,V.Inject(V.Injector))],h.UniverSheetsPlugin);const tr=[me.id,te.id,kt.id,le.id,He.id,je.id,We.id,Oe.id,Ae.id,Pe.id,Ne.id,fe.id,Ie.id,Me.id,Re.id],nr=[z.id,Be.id,W.id,j.id],or=1.5,sr="rgba(255,255,255, 0.01)";function rr(n){const e=n.getCurrentTheme(),o=new r.ColorKit(e.colorBlack).setAlpha(.1).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function ir(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,s={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(s.primary=ao(o)),s}function ao(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:s}=n,{startRow:a,startColumn:i,endRow:u,endColumn:c}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:c}}function ar(n,e,o){const t=vo.getCellInfoInMergeData(n,e,o),s=r.makeCellRangeToRangeData(t);if(s)return{range:s,primary:t,style:null}}const ur={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0};h.AddMergeUndoMutationFactory=se,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=we,h.COMMAND_LISTENER_SKELETON_CHANGE=tr,h.COMMAND_LISTENER_VALUE_CHANGE=nr,h.ClearSelectionAllCommand=xe,h.ClearSelectionContentCommand=St,h.ClearSelectionFormatCommand=Ke,h.CopySheetCommand=Jt,h.DeleteRangeMoveLeftCommand=Xe,h.DeleteRangeMoveUpCommand=Ze,h.DeltaColumnWidthCommand=Ot,h.DeltaRowHeightCommand=Vn,h.EffectRefRangId=F,h.EmptyMutation=ur,h.INTERCEPTOR_POINT=be,h.INumfmtService=pe,h.InsertColAfterCommand=an,h.InsertColBeforeCommand=rn,h.InsertColCommand=Ee,h.InsertColMutation=fe,h.InsertColMutationUndoFactory=wt,h.InsertRangeMoveDownCommand=Qe,h.InsertRangeMoveRightCommand=et,h.InsertRowAfterCommand=on,h.InsertRowBeforeCommand=nn,h.InsertRowCommand=Te,h.InsertRowMutation=Ie,h.InsertRowMutationUndoFactory=Mt,h.InsertSheetCommand=un,h.InsertSheetMutation=Se,h.InsertSheetUndoMutationFactory=Ct,h.MAX_CELL_PER_SHEET_KEY=Hn,h.MoveColsCommand=yt,h.MoveColsMutation=We,h.MoveRangeCommand=Je,h.MoveRangeMutation=Be,h.MoveRowsCommand=pt,h.MoveRowsMutation=je,h.NORMAL_SELECTION_PLUGIN_NAME=x,h.OperatorType=$,h.RemoveColCommand=nt,h.RemoveColMutation=Me,h.RemoveMergeUndoMutationFactory=Q,h.RemoveNumfmtMutation=Vt,h.RemoveRowCommand=tt,h.RemoveRowMutation=Re,h.RemoveSheetCommand=Ut,h.RemoveSheetMutation=Le,h.RemoveSheetUndoMutationFactory=Kt,h.RemoveWorksheetMergeCommand=gn,h.RemoveWorksheetMergeMutation=W,h.ResetBackgroundColorCommand=Tn,h.ResetTextColorCommand=_n,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=sr,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=or,h.SelectionMoveType=Yt,h.SetBackgroundColorCommand=bn,h.SetBoldCommand=os,h.SetBorderBasicCommand=hn,h.SetBorderColorCommand=Cn,h.SetBorderCommand=De,h.SetBorderPositionCommand=vn,h.SetBorderStyleCommand=Sn,h.SetColHiddenCommand=fn,h.SetColHiddenMutation=Oe,h.SetColVisibleMutation=Ae,h.SetColWidthCommand=At,h.SetFontFamilyCommand=as,h.SetFontSizeCommand=us,h.SetFrozenCommand=Mn,h.SetFrozenMutation=he,h.SetFrozenMutationFactory=bt,h.SetHorizontalTextAlignCommand=Dn,h.SetItalicCommand=ss,h.SetNumfmtMutation=rt,h.SetRangeValuesCommand=Ce,h.SetRangeValuesMutation=z,h.SetRangeValuesUndoMutationFactory=ce,h.SetRowHeightCommand=jn,h.SetRowHiddenCommand=pn,h.SetRowHiddenMutation=Pe,h.SetRowVisibleMutation=Ne,h.SetSelectedColsVisibleCommand=In,h.SetSelectedRowsVisibleCommand=wn,h.SetSelectionsOperation=q,h.SetSpecificColsVisibleCommand=_t,h.SetSpecificRowsVisibleCommand=Tt,h.SetStrikeThroughCommand=is,h.SetStyleCommand=K,h.SetTabColorCommand=Nn,h.SetTabColorMutation=Fe,h.SetTextColorCommand=Un,h.SetTextRotationCommand=An,h.SetTextWrapCommand=On,h.SetUnderlineCommand=rs,h.SetVerticalTextAlignCommand=En,h.SetWorksheetActivateCommand=Et,h.SetWorksheetActiveOperation=He,h.SetWorksheetColWidthMutation=le,h.SetWorksheetColWidthMutationFactory=Dt,h.SetWorksheetHideCommand=kn,h.SetWorksheetHideMutation=ve,h.SetWorksheetNameCommand=Nt,h.SetWorksheetNameMutation=st,h.SetWorksheetOrderCommand=Ln,h.SetWorksheetOrderMutation=$e,h.SetWorksheetRowAutoHeightMutation=kt,h.SetWorksheetRowAutoHeightMutationFactory=gs,h.SetWorksheetRowHeightMutation=me,h.SetWorksheetRowIsAutoHeightCommand=Lt,h.SetWorksheetRowIsAutoHeightMutation=te,h.SetWorksheetShowCommand=Wn,h.SheetEditablePermission=ye,h.alignToMergedCellsBorders=Ve,h.convertPrimaryWithCoordToPrimary=ao,h.convertSelectionDataToRange=ir,h.enUS=$s,h.factoryRemoveNumfmtUndoMutation=Rs,h.factorySetNumfmtUndoMutation=fs,h.followSelectionOperation=de,h.getAddMergeMutationRangeByType=oo,h.getCellAtRowCol=Vo,h.getCurrentSheetDisabled$=Js,h.getInsertRangeMutations=ft,h.getNormalSelectionStyle=rr,h.getPrimaryForRange=X,h.getRemoveRangeMutations=Rt,h.handleBaseInsertRange=ze,h.handleBaseMoveRowsCols=Wt,h.handleBaseRemoveRange=Ge,h.handleDefaultRangeChangeWithEffectRefCommands=js,h.handleDeleteRangeMoveLeft=to,h.handleDeleteRangeMoveUp=no,h.handleDeleteRangeMutation=Wo,h.handleIRemoveCol=Kn,h.handleIRemoveRow=Jn,h.handleInsertCol=Zn,h.handleInsertRangeMoveDown=Qn,h.handleInsertRangeMoveRight=eo,h.handleInsertRangeMutation=jo,h.handleInsertRow=Xn,h.handleMoveCols=Ht,h.handleMoveRange=xn,h.handleMoveRows=Ft,h.rangeMerge=Bt,h.rotateRange=ge,h.runRefRangeMutations=mt,h.transformCellDataToSelectionData=ar,h.transformCellsToRange=it,h.zhCN=so,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,r){typeof exports=="object"&&typeof module<"u"?r(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"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,r,V,_e,vt,Ro,Mo){"use strict";var Cr=Object.defineProperty;var Ir=(h,r,V)=>r in h?Cr(h,r,{enumerable:!0,configurable:!0,writable:!0,value:V}):h[r]=V;var B=(h,r,V)=>(Ir(h,typeof r!="symbol"?r+"":r,V),V);var qt;var wo=Object.defineProperty,po=Object.getOwnPropertyDescriptor,yo=(n,e,o,t)=>{for(var s=t>1?void 0:t?po(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&wo(e,o,s),s},Uo=(n,e)=>(o,t)=>e(o,t,n);const x="normalSelectionPluginName";var xt=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(xt||{});h.SelectionManagerService=class{constructor(e){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new _e.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new _e.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(this,"_dirty",!0);this._themeService=e}getCurrent(){return this._currentSelection}getLastByPlugin(e){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:e})}changePlugin(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(e){var o,t;this._currentSelection!=null&&(this._currentSelection={pluginName:e,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(t=this._currentSelection)==null?void 0:t.sheetId})}reset(){var e,o;this._currentSelection!=null&&(this._currentSelection={pluginName:x,unitId:(e=this._currentSelection)==null?void 0:e.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(e=!0){this._dirty=e}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(e){this._dirty!==!1&&(this._currentSelection=e,this._refresh(e))}setCurrentSelectionNotRefresh(e){this._currentSelection=e}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(e){return this._getSelectionDatas(e)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const e=this.getSelections();if(e!=null)return e.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e},!1)}add(e){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:e})}replace(e,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:e}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(e){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:e})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(e){this._currentSelection!=null&&this._removeByParam(e,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 e=this.getSelections();return e==null?!1:e.some(({range:o},t)=>e.some(({range:s},a)=>t===a?!1:o.startRow<=s.endRow&&o.endRow>=s.startRow&&o.startColumn<=s.endColumn&&o.endColumn>=s.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:s}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(s)}_refresh(e){this._selectionMoveEnd$.next(this._getSelectionDatas(e))}_refreshStart(e){this._selectionMoveStart$.next(this._getSelectionDatas(e))}_refreshMoving(e){this._selectionMoving$.next(this._getSelectionDatas(e))}_getFirstByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[0]}_getLastByParam(e){const o=this._getSelectionDatas(e);return o==null?void 0:o[o.length-1]}_addByParam(e,o=!0){const{pluginName:t,unitId:s,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const u=this._selectionInfo.get(t);u.has(s)||u.set(s,new Map);const c=u.get(s);if(!c.has(a))c.set(a,[...i]);else{let m=c.get(a);m==null&&(m=[],c.set(a,m)),m.push(...i)}o&&this._refresh({pluginName:t,unitId:s,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:s,selectionDatas:a}=e;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(t)||i.set(t,new Map);const u=i.get(t);if(!u.has(s))u.set(s,a);else{let c=u.get(s);c==null&&(c=[],u.set(s,c)),c.splice(0,c.length,...a)}}_clearByParam(e){const o=this._getSelectionDatas(e);o==null||o.splice(0),this._refresh(e)}_removeByParam(e,o){const t=this._getSelectionDatas(o);t==null||t.splice(e,1),this._refresh(o)}},h.SelectionManagerService=yo([Uo(0,V.Inject(r.ThemeService))],h.SelectionManagerService);const _o=r.createInterceptorKey("CELL_CONTENT"),bo=r.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:_o,PERMISSION:bo};var To=Object.defineProperty,Eo=Object.getOwnPropertyDescriptor,Do=(n,e,o,t)=>{for(var s=t>1?void 0:t?Eo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&To(e,o,s),s},Oo=(n,e)=>(o,t)=>e(o,t,n);h.SheetInterceptorService=class extends r.Disposable{constructor(o){super();B(this,"_interceptorsByName",new Map);B(this,"_commandInterceptors",[]);B(this,"_workbookDisposables",new Map);B(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,s){const a=s.worksheet.getCellRaw(s.row,s.col);return t?{...a,...t}:a}}),this.intercept(be.PERMISSION,{priority:-1,handler:()=>!0})}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((t,s)=>{var a,i;return((a=s.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(s=>s.getMutations(o));return{undos:t.map(s=>s.undos).flat(),redos:t.map(s=>s.redos).flat()}}intercept(o,t){const s=o;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const a=this._interceptorsByName.get(s);return a.push(t),this._interceptorsByName.set(s,a.sort((i,u)=>{var c,m;return((c=u.priority)!=null?c:0)-((m=i.priority)!=null?m:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),t)))}fetchThroughInterceptors(o){const t=o,s=this._interceptorsByName.get(t);return r.composeInterceptors(s||[])}_interceptWorkbook(o){const t=new r.DisposableCollection,s=o.getUnitId(),a=this,i=u=>{const c=u.getSheetId();u.__interceptViewModel(m=>{const d=new r.DisposableCollection,l=m.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(be.CELL_CONTENT)(u.getCellRaw(g,v),{unitId:s,subUnitId:c,row:g,col:v,worksheet:u,workbook:o})}});d.add(l),a._worksheetDisposables.set(Kt(s,u),d)})};o.getSheets().forEach(u=>i(u)),t.add(r.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),t.add(r.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),t.add(r.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),s=this._workbookDisposables.get(t);s&&(s.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const s=Kt(o,t),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},h.SheetInterceptorService=Do([r.OnLifecycle(r.LifecycleStages.Starting,h.SheetInterceptorService),Oo(0,r.IUniverInstanceService)],h.SheetInterceptorService);function Kt(n,e){return`${n}|${e.getSheetId()}`}const ce=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const c=u.getCellMatrix(),m=i.getStyles(),d=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,v,S)=>{const C=r.Tools.deepClone(c==null?void 0:c.getValue(g,v))||{},I=m.getStyleByCell(C),f=Po(I,S&&S.s?S.s:null);C.s=f,d.setValue(g,v,Ao(C))}),{...e,options:{},cellValue:d.getMatrix()}};function Ao(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)}const z={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(t);if(!u)return!1;const c=u.getCellMatrix(),m=i.getStyles();return new r.ObjectMatrix(o).forValue((l,g,v)=>{if(!v)c==null||c.setValue(l,g,{});else{const S=c.getValue(l,g)||{},C=v.t===r.CellValueType.FORCE_STRING?v.t:No(v.v===void 0?S.v:v.v);if(v.f!==void 0&&(S.f=v.f),v.si!==void 0&&(S.si=v.si),v.p!==void 0&&(S.p=v.p),v.v!==void 0&&(S.v=C===r.CellValueType.NUMBER?Number(v.v):C===r.CellValueType.BOOLEAN?v.v.toString().toUpperCase()==="TRUE"?1:0:v.v),S.v!==void 0&&(S.t=C),v.s!==void 0){const I=m.getStyleByCell(S);I==null&&delete S.s,typeof v.s=="string"&&(v.s=m.get(v.s));const f=Ye(I,v.s?v.s:null);f&&r.Tools.removeNull(f),r.Tools.isEmptyObject(f)?delete S.s:S.s=m.setValue(f),!v.p&&S.p&&Bo(S.p,v.s?v.s:null)}c.setValue(l,g,r.Tools.removeNull(S))}}),!0}};function No(n){return n===null?null:typeof n=="string"?jo(n)?r.CellValueType.NUMBER:Wo(n)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof n=="number"?r.CellValueType.NUMBER:typeof n=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function Po(n,e){return ko(n,e)}function ko(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Lo(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Lo(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Ye(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=r.Tools.deepClone(n)||{};if(t){for(const s in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in t&&s==="bd"?t[s]=Object.assign(t[s],e[s]):t[s]=e[s]);return"cl"in t&&("ul"in t&&t.ul&&(t.ul.cl=t.cl),"ol"in t&&t.ol&&(t.ol.cl=t.cl),"st"in t&&t.st&&(t.st.cl=t.cl)),t}}function Jt(n,e){return n.some(o=>o.startIndex===e)?Jt(n,e+1):e}function Bo(n,e){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[],s=((i=n.body)==null?void 0:i.paragraphs)||[];for(const u of n.body.textRuns){const{st:c,ed:m,ts:d={}}=u;if(o<c){const g={st:o,ed:c},v=Ye({},e,!0);v&&r.Tools.removeNull(v),r.Tools.isEmptyObject(v)||(g.ts=v),t.push(g)}const l=Ye(d,e,!0);l&&r.Tools.removeNull(l),r.Tools.isEmptyObject(l)?delete u.ts:u.ts=l,t.push(u),o=Jt(s,m)}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},c=Ye({},e,!0);c&&r.Tools.removeNull(c),r.Tools.isEmptyObject(c)||(u.ts=c),t.push(u)}n.body.textRuns=t}function Vo(n){return/^-?\d+(\.\d+)?$/.test(n)}function jo(n){return Vo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Wo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const xe={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],v={subUnitId:m,unitId:u,cellValue:Fo(d)},S=ce(n,v);l.push({id:z.id,params:v}),g.push({id:z.id,params:S});const C=a.onCommandExecute({id:xe.id});return l.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(l,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:l}),!0):!1}};function Fo(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,null)}),e.getData()}const St={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={subUnitId:m,unitId:u,cellValue:Ho(d)},g=ce(n,l),v=a.onCommandExecute({id:St.id}),S=[{id:z.id,params:l},...v.redos],C=[...v.undos,{id:z.id,params:g}];return r.sequenceExecute(S,o).result?(s.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}};function Ho(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,{v:null,p:null,f:null,si:null})}),e.getData()}const Ke={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async n=>{const e=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),t=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),u=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],v={subUnitId:m,unitId:u,cellValue:$o(d)},S=ce(n,v);l.push({id:z.id,params:v}),g.push({id:z.id,params:S});const C=a.onCommandExecute({id:Ke.id});return l.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(l,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:l}),!0):!1}};function $o(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,{s:null})}),e.getData()}const Ct=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Ce={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService),{sheet:t,index:s,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,s,t):!1}},Xt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:s,unitId:a}=e,i=t.getSheetBySheetId(s).getConfig();return{index:t.getConfig().sheetOrder.findIndex(m=>m===s),sheet:i,unitId:a}},Le={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:t,unitId:s}=e,a=o.getUniverSheetInstance(s);return a?a.removeSheet(t):!1}},Zt={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var C,I;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(C=e.unitId)!=null?C:i,u=(I=e.subUnitId)!=null?I:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const m=c.getSheetBySheetId(u);if(!m)return!1;const d=r.Tools.deepClone(m.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=r.Tools.generateRandomId();const g={index:c.getSheetIndex(m)+1,sheet:d,unitId:i},v=Ct(n,g);return o.syncExecuteCommand(Ce.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:v}],redoMutations:[{id:Ce.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),u=a.getSheetBySheetId(e.to.subUnitId);if(!i||!u)return!1;const c=i.getCellMatrix(),m=u.getCellMatrix();return new r.ObjectMatrix(o.value).forValue((d,l,g)=>{c.setValue(d,l,g)}),new r.ObjectMatrix(t.value).forValue((d,l,g)=>{m.setValue(d,l,g)}),!0}},q={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(h.SelectionManagerService);if(!e)return!1;const{selections:t,type:s}=e;return o.replace(t,s),!0}};function Ve(n,e,o=!0){const t=e.getMatrixWithMergedCells(...r.selectionToArray(n)),s=[];if(t.forValue((i,u,c)=>{if(c.colSpan!==void 0&&c.rowSpan!==void 0){const m={startRow:i,startColumn:u,endRow:i+c.rowSpan-1,endColumn:u+c.colSpan-1};r.Rectangle.contains(n,m)||s.push(m)}}),s.length===0)return n;const a=r.Rectangle.union(n,...s);return o?Ve(a,e,o):a}function Go(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,u)=>(t={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:r.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function X(n,e){const o=e.getMergedCell(n.startRow,n.startColumn);return o?{...o,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n.startRow,startColumn:n.startColumn,endRow:n.startRow,endColumn:n.startColumn,actualRow:n.startRow,actualColumn:n.startColumn,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const de=(n,e,o)=>({id:q.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:x,selections:[{range:n,primary:X(n,o)}]}}),Qt="sheet.command.move-range",Je={type:r.CommandType.COMMAND,id:Qt,handler:(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=s.getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),m=u.getSheetId(),d=It(n,{unitId:c,subUnitId:m,range:e.fromRange},{unitId:c,subUnitId:m,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(h.SheetInterceptorService).onCommandExecute({id:Je.id,params:{...e}}),v=[...d.redos,...g.redos,{id:q.id,params:{unitId:c,subUnitId:m,pluginName:x,selections:[{range:e.toRange,primary:X(e.toRange,u)}]}}],S=[{id:q.id,params:{unitId:c,subUnitId:m,pluginName:x,selections:[{range:e.fromRange,primary:X(e.fromRange,u)}]}},...d.undos,...g.undos];return r.sequenceExecute(v,o).result?(t.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function It(n,e,o,t=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:c}=e,{range:m,subUnitId:d}=o,g=n.get(r.IUniverInstanceService).getUniverSheetInstance(c),v=g==null?void 0:g.getSheetBySheetId(d),S=g==null?void 0:g.getSheetBySheetId(u),C=v==null?void 0:v.getCellMatrix(),I=S==null?void 0:S.getCellMatrix();if(v&&S&&C&&I){const f=Ve(m,v,!1);if(!r.Rectangle.equals(m,f)&&!t)return null;const R=new r.ObjectMatrix,M=new r.ObjectMatrix,w=(T,_)=>({startRow:T,endRow:T,startColumn:_,endColumn:_});r.Range.foreach(i,(T,_)=>{R.setValue(T,_,I.getValue(T,_)),M.setValue(T,_,null)});const U=new r.ObjectMatrix;r.Range.foreach(m,(T,_)=>{U.setValue(T,_,C.getValue(T,_))});const y=new r.ObjectMatrix;r.Range.foreach(i,(T,_)=>{const L=w(T,_),p=r.Rectangle.getRelativeRange(L,i),Y=r.Rectangle.getPositionRange(p,m);y.setValue(Y.startRow,Y.startColumn,I.getValue(T,_))});const E={from:{value:M.getMatrix(),subUnitId:u},to:{value:y.getMatrix(),subUnitId:d},unitId:c},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:U.getMatrix(),subUnitId:d},unitId:c};s.push({id:Be.id,params:E}),a.push({id:Be.id,params:b})}return{redos:s,undos:a}}const Ie={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),{value:u,range:c,unitId:m=s.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,l=c?[c]:a.getSelectionRanges();if(!l||!l.length)return!1;const g=new r.ObjectMatrix;let v;if(r.Tools.isArray(u))for(let w=0;w<l.length;w++){const{startRow:U,startColumn:y,endRow:E,endColumn:b}=l[w];for(let T=0;T<=E-U;T++)for(let _=0;_<=b-y;_++)g.setValue(T+U,_+y,u[T][_])}else if(r.isICellData(u))for(let w=0;w<l.length;w++){const{startRow:U,startColumn:y,endRow:E,endColumn:b}=l[w];for(let T=U;T<=E;T++)for(let _=y;_<=b;_++)g.setValue(T,_,u)}else v=u;const S={subUnitId:d,unitId:m,cellValue:v!=null?v:g.getMatrix()},C=ce(n,S);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ie.id,params:S}))return!1;const I=o.syncExecuteCommand(z.id,S),{undos:f,redos:R}=i.onCommandExecute({id:Ie.id,params:{...S,range:l}}),M=r.sequenceExecute([...R],o);return I&&M.result?(t.pushUndoRedo({unitID:m,undoMutations:[{id:z.id,params:C},...f],redoMutations:[{id:z.id,params:S},...R]}),!0):!1}};function ft(n,e){const o=[],t=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:c={}}=e,m=n.get(r.IUniverInstanceService),d=n.get(h.SheetInterceptorService),l=m.getUniverSheetInstance(s),g=l==null?void 0:l.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),S=v.getDataRange();if(i.startColumn<=S.endColumn||i.startRow<=S.endRow){let M,w;if(u===r.Dimension.COLUMNS){const y=Math.min(i.endRow,S.endRow);let E=0;for(let T=i.startRow;T<=y;T++){const _=v.getRow(T),L=_?r.getArrayLength(_)-1:0;E=Math.max(E,L)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:E};const b=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:M.startColumn+b,endRow:y,endColumn:M.endColumn+b}}else{const y=Math.min(i.endColumn,S.endColumn),E=S.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:E,endColumn:y};const b=i.endRow-i.startRow+1;w={startRow:M.startRow+b,startColumn:i.startColumn,endRow:M.endRow+b,endColumn:y}}const U=It(n,{unitId:s,subUnitId:a,range:M},{unitId:s,subUnitId:a,range:w},!0);U&&(o.push(...U.redos),t.push(...U.undos))}if(Object.entries(c).length===0)for(let M=i.startRow;M<=i.endRow;M++){c[M]||(c[M]={});for(let w=i.startColumn;w<=i.endColumn;w++)c[M][w]=null}const C={subUnitId:a,unitId:s,cellValue:c},I=ce(n,C),{undos:f,redos:R}=d.onCommandExecute({id:Ie.id,params:{...C,range:i}});o.push({id:z.id,params:C},...R),t.push({id:z.id,params:I},...f)}return{redo:o,undo:t}}function Rt(n,e){const o=[],t=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=e,c=n.get(r.IUniverInstanceService),m=n.get(h.SheetInterceptorService),d=c.getUniverSheetInstance(s),l=d==null?void 0:d.getSheetBySheetId(a);if(l){const g=l.getCellMatrix(),v=g.getDataRange(),S={subUnitId:a,unitId:s,cellValue:Yo([i])},C=ce(n,S),I=m.onCommandExecute({id:Ie.id,params:S});if(o.push({id:z.id,params:S},...I.redos),t.push(...I.undos,{id:z.id,params:C}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let f=null,R=null;if(u===r.Dimension.COLUMNS&&i.endColumn<v.endColumn){const M=Math.min(i.endRow,v.endRow);let w=0;for(let y=i.startRow;y<=M;y++){const E=g.getRow(y),b=E?r.getArrayLength(E)-1:0;w=Math.max(w,b)}f={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:w};const U=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:f.startColumn-U,endRow:M,endColumn:f.endColumn-U}}if(u===r.Dimension.ROWS&&i.endRow<v.endRow){const M=Math.min(i.endColumn,v.endColumn),w=v.endRow;f={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:M};const U=i.endRow-i.startRow+1;R={startRow:f.startRow-U,startColumn:i.startColumn,endRow:f.endRow-U,endColumn:M}}if(f&&R){const M=It(n,{unitId:s,subUnitId:a,range:f},{unitId:s,subUnitId:a,range:R},!0);M&&(o.push(...M.redos),t.push(...M.undos))}}}return{redo:o,undo:t}}function zo(n,e,o,t,s,a){const{startRow:i,endRow:u,startColumn:c,endColumn:m}=e;if(s===r.Dimension.ROWS){const d=u-i+1;for(let l=o;l>=i;l--)for(let g=c;g<=m;g++){const v=n.getValue(l,g);v==null?n.realDeleteValue(l+d,g):n.setValue(l+d,g,v)}for(let l=u;l>=i;l--)for(let g=c;g<=m;g++)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}else if(s===r.Dimension.COLUMNS){const d=m-c+1;for(let l=i;l<=u;l++)for(let g=t;g>=c;g--){const v=n.getValue(l,g);v==null?n.realDeleteValue(l,g+d):n.setValue(l,g+d,v)}for(let l=i;l<=u;l++)for(let g=m;g>=c;g--)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}}function qo(n,e,o,t,s){const{startRow:a,endRow:i,startColumn:u,endColumn:c}=e,m=i-a+1,d=c-u+1;if(s===r.Dimension.ROWS)for(let l=a;l<=o;l++)for(let g=u;g<=c;g++){const v=n.getValue(l+m,g);v==null?n.realDeleteValue(l,g):n.setValue(l,g,v)}else if(s===r.Dimension.COLUMNS)for(let l=a;l<=i;l++)for(let g=u;g<=t;g++){const v=n.getValue(l,g+d);v==null?n.realDeleteValue(l,g):n.setValue(l,g,v)}}function Yo(n){const e=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:s,endRow:a,endColumn:i}=o;for(let u=t;u<=a;u++)for(let c=s;c<=i;c++)e.setValue(u,c,null)}),e.getData()}const en="sheet.command.delete-range-move-left",Xe={type:r.CommandType.COMMAND,id:en,handler:async(n,e)=>{var M;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=s.getUniverSheetInstance(u);if(!d)return!1;const l=d.getSheetBySheetId(c);if(!l)return!1;const g={range:m,subUnitId:c,unitId:u,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:Xe.id,params:{range:m}}),{redo:S,undo:C}=Rt(n,g),I=[...S],f=[...C];return I.push(...v.redos),I.push(de(m,d,l)),f.push(...v.undos),r.sequenceExecute(I,o).result?(t.pushUndoRedo({unitID:u,undoMutations:f.reverse(),redoMutations:I}),!0):!1}},tn="sheet.command.delete-range-move-up",Ze={type:r.CommandType.COMMAND,id:tn,handler:async(n,e)=>{var M;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let m=e==null?void 0:e.range;if(m||(m=(M=a.getLast())==null?void 0:M.range),!m)return!1;const d=s.getUniverSheetInstance(u);if(!d)return!1;const l=d.getSheetBySheetId(c);if(!l)return!1;const g={range:m,subUnitId:c,unitId:u,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:Ze.id,params:{range:m}}),{redo:S,undo:C}=Rt(n,g),I=[...S],f=[...C];return I.push(...v.redos),I.push(de(m,d,l)),f.push(...v.undos),await r.sequenceExecute(I,o).result?(t.pushUndoRedo({unitID:u,undoMutations:f.reverse(),redoMutations:I}),!0):!1}},Mt=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},fe={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(n,e)=>{var S;const{unitId:o,subUnitId:t,range:s,rowInfo:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const c=u.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const m=c.getRowManager().getRowData(),d={h:c.getConfig().defaultRowHeight,hd:0},l=s.startRow,g=s.endRow-s.startRow+1;for(let C=l;C<l+g;C++)a?r.insertMatrixArray(C,(S=a[C-s.startRow])!=null?S:d,m):r.insertMatrixArray(C,d,m);return c.setRowCount(c.getRowCount()+s.endRow-s.startRow+1),c.getCellMatrix().insertRows(s.startRow,g),!0}},wt=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range}},Re={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(n,e)=>{var S;const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getColumnManager(),{range:i,colInfo:u}=e,m=a.getColumnData(),d=i.startColumn,l=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let C=d;C<d+l;C++){const I={w:g,hd:0};u?r.insertMatrixArray(C,(S=u[C-i.startColumn])!=null?S:I,m):r.insertMatrixArray(C,I,m)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,l),!0}},xo=(n,e)=>{const s=e.getRowManager().getRowData(),a={},i=n.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),c=r.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:c}},Me={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=e.range,u=s.getRowManager().getRowData(),c=a.endRow-a.startRow+1;return r.spliceArray(a.startRow,c,u),s.getCellMatrix().removeRows(a.startRow,c),s.setRowCount(s.getRowCount()-c),!0}},Ko=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),c={},m=e.range,d=r.sliceMatrixArray(m.startColumn,m.endColumn,u),l=r.concatMatrixArray(c,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:l}},we={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=e.range,u=s.getColumnManager().getColumnData(),c=a.endColumn-a.startColumn+1;return r.spliceArray(a.startColumn,c,u),s.setColumnCount(s.getColumnCount()-c),s.getCellMatrix().removeColumns(a.startColumn,c),!0}},Jo="sheet.command.insert-range-move-down",Qe={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var _;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ILogService),i=n.get(h.SelectionManagerService),u=n.get(h.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const c=s.getCurrentUniverSheetInstance().getUnitId(),m=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(_=i.getLast())==null?void 0:_.range),!d)return!1;const l=s.getUniverSheetInstance(c);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const v=[],S=[],C=g.getCellMatrix(),I=C.getDataRange(),R=C.getSlice(I.startRow,I.endRow,d.startColumn,d.endColumn).getDataRange().endRow,M=Math.max(R+(d.endRow-d.startRow+1)-I.endRow,0);if(M>0){const L=d.startRow-1,p=g.getRowHeight(L),Y={unitId:c,subUnitId:m,range:{startRow:I.endRow+1,endRow:I.endRow+M,startColumn:I.startColumn,endColumn:I.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:p,hd:r.BooleanNumber.FALSE}))};v.push({id:fe.id,params:Y});const Se=Mt(n,Y);S.push({id:Me.id,params:Se})}const w={};r.Range.foreach(d,(L,p)=>{const Y=g.getCell(L,p);Y&&(w[L]||(w[L]={}),w[L][p]={s:Y.s})});const U={range:d,subUnitId:m,unitId:c,shiftDimension:r.Dimension.ROWS,cellValue:w},{redo:y,undo:E}=ft(n,U);v.push(...y),S.push(...E);const b=u.onCommandExecute({id:Qe.id,params:{range:d}});return v.push(...b.redos),v.push(de(d,l,g)),S.push(...b.undos),r.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:c,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},nn="sheet.command.insert-range-move-right",et={type:r.CommandType.COMMAND,id:nn,handler:async(n,e)=>{var _;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ILogService),i=n.get(h.SelectionManagerService),u=n.get(h.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const c=s.getCurrentUniverSheetInstance().getUnitId(),m=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(_=i.getLast())==null?void 0:_.range),!d)return!1;const l=s.getUniverSheetInstance(c);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const v=[],S=[],C=g.getCellMatrix(),I=C.getDataRange(),R=C.getSlice(d.startRow,d.endRow,I.startColumn,I.endColumn).getDataRange().endColumn,M=Math.max(R+(d.endColumn-d.startColumn+1)-I.endColumn,0);if(M>0){const L=d.startColumn-1,p=g.getColumnWidth(L),Y={unitId:c,subUnitId:m,range:{startRow:I.startRow+1,endRow:I.endRow,startColumn:I.endColumn+1,endColumn:I.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:p,hd:r.BooleanNumber.FALSE}))};v.push({id:Re.id,params:Y});const Se=wt(n,Y);S.push({id:we.id,params:Se})}const w={};r.Range.foreach(d,(L,p)=>{const Y=g.getCell(L,p);!Y||!Y.s||(w[L]||(w[L]={}),w[L][p]={s:Y.s})});const U={range:d,subUnitId:m,unitId:c,shiftDimension:r.Dimension.COLUMNS,cellValue:w},{redo:y,undo:E}=ft(n,U);v.push(...y),S.push(...E);const b=u.onCommandExecute({id:et.id,params:{range:d}});return v.push(...b.redos),v.push(de(d,l,g)),S.push(...b.undos),r.sequenceExecute(v,o).result?(t.pushUndoRedo({unitID:c,undoMutations:S.reverse(),redoMutations:v}),!0):!1}},on="sheet.command.insert-row",Te={type:r.CommandType.COMMAND,id:on,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=s.getUniverSheetInstance(e.unitId),u=i.getSheetBySheetId(e.subUnitId),{range:c,direction:m,unitId:d,subUnitId:l}=e,{startRow:g,endRow:v}=c,S=m===r.Direction.UP?g:g-1,C=u.getRowHeight(S),I={unitId:d,subUnitId:l,range:c,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:C,hd:r.BooleanNumber.FALSE}))},f=Mt(n,I),R=a.onCommandExecute({id:Te.id,params:e});return r.sequenceExecute([{id:fe.id,params:I},...R.redos,de(c,i,u)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...R.undos,{id:Me.id,params:f}],redoMutations:[{id:fe.id,params:I},...R.redos]}),!0):!1}},sn={type:r.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(v=>v.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),m=t.endRow-t.startRow+1,d={};r.Range.foreach(t,(v,S)=>{const C=i.getCell(v,S);!C||!C.s||(d[v]||(d[v]={}),d[v][S]={s:C.s})});const l={unitId:u,subUnitId:c,direction:r.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+m-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(r.ICommandService).executeCommand(Te.id,l)}},rn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var l;const o=(l=n.get(h.SelectionManagerService).getSelections())==null?void 0:l.map(g=>g.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),m=t.endRow-t.startRow+1,d={unitId:u,subUnitId:c,direction:r.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+m,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(r.ICommandService).executeCommand(Te.id,d)}},an="sheet.command.insert-col",Ee={type:r.CommandType.COMMAND,id:an,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:c,unitId:m,cellValue:d}=e,{startColumn:l,endColumn:g}=e.range,v=s.getUniverSheetInstance(e.unitId),S=v.getSheetBySheetId(e.subUnitId),C=u===r.Direction.LEFT?l:l-1,I=S.getColumnWidth(C),f={unitId:m,subUnitId:c,range:i,colInfo:new Array(g-l+1).fill(void 0).map(()=>({w:I,hd:r.BooleanNumber.FALSE}))},R=wt(n,f);e.unitId,e.subUnitId,e.range,r.Dimension.COLUMNS;const M=a.onCommandExecute({id:Ee.id,params:e});return r.sequenceExecute([{id:Re.id,params:f},...M.redos,de(i,v,S)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:we.id,params:R}],redoMutations:[{id:Re.id,params:f},...M.redos]}),!0):!1}},un={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={};r.Range.foreach(t,(g,v)=>{const S=i.getCell(g,v);!S||!S.s||(d[g]||(d[g]={}),d[g][v]={s:S.s})});const l={unitId:u,subUnitId:c,direction:r.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+m-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(r.ICommandService).executeCommand(Ee.id,l)}},cn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),c=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={unitId:u,subUnitId:c,direction:r.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+m,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(r.ICommandService).executeCommand(Ee.id,d)}},dn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(n,e)=>{var v,S;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=(v=e==null?void 0:e.unitId)!=null?v:s.getCurrentUniverSheetInstance().getUnitId(),u=s.getUniverSheetInstance(i);if(!u)return!1;let c=u.getSheets().length,m=r.mergeWorksheetSnapshotWithDefault({});e?(c=(S=e.index)!=null?S:c,e.sheet?m=e.sheet:(m.id=r.Tools.generateRandomId(),m.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`))):(m.id=r.Tools.generateRandomId(),m.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:c,sheet:m,unitId:i},l=Ct(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:l}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function Xo(n,e){const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:o,subUnitId:t,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const je={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const c=u.getSheetBySheetId(t);if(!c)throw new Error("[MoveRowMutation] worksheet is null!");const m=s.startRow,d=s.endRow-s.startRow+1,l=a.startRow,g=c.getRowManager().getRowData();return r.moveMatrixArray(m,d,l,g),c.getCellMatrix().moveRows(m,d,l),!0}};function Zo(n,e){const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:o,subUnitId:t,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const We={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:s,targetRange:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const c=u.getSheetBySheetId(t);if(!c)throw new Error("[MoveColumnMutation] worksheet is null!");const m=s.startColumn,d=s.endColumn-s.startColumn+1,l=a.startColumn,g=c.getColumnManager().getColumnData();return r.moveMatrixArray(m,d,l,g),c.getCellMatrix().moveColumns(m,d,l),!0}};function Qo(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function es(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const ln="sheet.command.move-rows",pt={id:ln,type:r.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=e,i=t==null?void 0:t.filter(ne=>ne.range.rangeType===r.RANGE_TYPE.ROW&&ne.range.startRow<=s&&s<=ne.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),m=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),v=n.get(r.ErrorService),S=i[0].range,C=i[0].primary,I=Ve(S,d,!1);if(!r.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(Qo(a,d))return v.emit("Across a merged cell."),!1;const f={...S,startRow:a,endRow:a+S.endRow-S.startRow},R={unitId:l,subUnitId:g,sourceRange:S,targetRange:f},M=Xo(n,R),U=a-s<0,y=S.endRow-S.startRow+1,E=U?f:{...f,startRow:f.startRow-y,endRow:f.endRow-y},b={unitId:l,subUnitId:g,pluginName:x,selections:[{range:E,primary:X(E,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:x,selections:[{range:S,primary:C,style:null}]},_=n.get(r.ICommandService),L=u.onCommandExecute({id:pt.id,params:e}),p=[{id:je.id,params:R},{id:q.id,params:b},...L.redos],Y=[{id:je.id,params:M},{id:q.id,params:T},...L.undos];return r.sequenceExecute(p,_).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:Y,redoMutations:p}),!0):!1}},mn="sheet.command.move-cols",yt={id:mn,type:r.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=e,i=t==null?void 0:t.filter(ne=>ne.range.rangeType===r.RANGE_TYPE.COLUMN&&ne.range.startColumn<=s&&s<=ne.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),m=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),v=n.get(r.ErrorService),S=i[0].range,C=i[0].primary,I=Ve(S,d,!1);if(!r.Rectangle.equals(S,I))return v.emit("Only part of a merged cell is selected."),!1;if(es(a,d))return v.emit("Across a merged cell."),!1;const f={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},R={unitId:l,subUnitId:g,sourceRange:S,targetRange:f},M=Zo(n,R),w=S.endColumn-S.startColumn+1,E=a-s<0?f:{...f,startColumn:f.startColumn-w,endColumn:f.endColumn-w},b={unitId:l,subUnitId:g,pluginName:x,selections:[{range:E,primary:X(E,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:x,selections:[{range:S,primary:C,style:null}]},_=n.get(r.ICommandService),L=u.onCommandExecute({id:yt.id,params:e}),p=[{id:We.id,params:R},{id:q.id,params:b},...L.redos],Y=[{id:We.id,params:M},{id:q.id,params:T},...L.undos];return r.sequenceExecute(p,_).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:Y,redoMutations:p}),!0}},gn="sheet.command.remove-row",tt={type:r.CommandType.COMMAND,id:gn,handler:async(n,e)=>{var C;const o=n.get(h.SelectionManagerService),t=n.get(h.SheetInterceptorService);let s=e==null?void 0:e.range;if(s||(s=(C=o.getLast())==null?void 0:C.range),!s)return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),m=u.getSheetId();s={...s,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const d={unitId:c,subUnitId:m,range:s},l=xo(d,u),g=t.onCommandExecute({id:tt.id,params:{range:s}}),v=n.get(r.ICommandService);return r.sequenceExecute([{id:Me.id,params:d},...g.redos,de(s,i,u)],v).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...g.undos,{id:fe.id,params:l}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},hn="sheet.command.remove-col",nt={type:r.CommandType.COMMAND,id:hn,handler:async(n,e)=>{var C;const o=n.get(h.SelectionManagerService),t=n.get(h.SheetInterceptorService);let s=e==null?void 0:e.range;if(s||(s=(C=o.getLast())==null?void 0:C.range),!s)return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),c=i.getUnitId(),m=u.getSheetId();s={...s,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const d={unitId:c,subUnitId:m,range:s},l=Ko(n,d),g=t.onCommandExecute({id:nt.id,params:{range:s}}),v=n.get(r.ICommandService);return r.sequenceExecute([{id:we.id,params:d},...g.redos,de(s,i,u)],v).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:[...g.undos,{id:Re.id,params:l}],redoMutations:[{id:we.id,params:d},...g.redos]}),!0):!1}},Ut={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(n,e)=>{var f,R;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(f=e.unitId)!=null?f:i,u=(R=e.subUnitId)!=null?R:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const m=c.getSheetBySheetId(u);if(!m||c.getSheets().length<=1)return!1;const d=c.getSheetIndex(m);c.getConfig().sheetOrder[d+1];const l={subUnitId:u,unitId:i,subUnitName:m.getName()},g=Xt(n,l),v=a.onCommandExecute({id:Ut.id,params:{unitId:i,subUnitId:u}}),S=[{id:Le.id,params:l},...v.redos],C=[...v.undos,{id:Ce.id,params:g}];return r.sequenceExecute(S,o)?(t.pushUndoRedo({unitID:i,undoMutations:C,redoMutations:S}),!0):!1}},re=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=e.ranges;for(let c=0;c<u.length;c++)i.push(u[c]);return!0}},Q=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().mergeData,u=e.ranges,c=[];for(let m=0;m<u.length;m++)for(let d=i.length-1;d>=0;d--){const l=i[d],g=u[m];r.Rectangle.intersects(l,g)&&c.push(i[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:c}},W={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=e.ranges;for(let c=0;c<u.length;c++)for(let m=i.length-1;m>=0;m--){const d=i[m],l=u[c];r.Rectangle.intersects(d,l)&&i.splice(m,1)}return!0}},vn={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=s.getUniverSheetInstance(i);if(!c)return!1;const m=c.getSheetBySheetId(u);if(!m)return!1;const d={unitId:i,subUnitId:u,ranges:a};let l=!1;const g=m.getConfig().mergeData;if(a.forEach(C=>{g.forEach(I=>{r.Rectangle.intersects(C,I)&&(l=!0)})}),!l)return!1;const v=Q(n,d);return o.syncExecuteCommand(W.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:j.id,params:v}],redoMutations:[{id:W.id,params:d}]}),!0):!1}};class pe{constructor(){B(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));B(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(e){this._borderInfo.type=e,this.setActiveBorderType(!0),this.refresh()}setColor(e){this._borderInfo.color=e,this.refresh()}setStyle(e){this._borderInfo.style=e,this.refresh()}setActiveBorderType(e){this._borderInfo.activeBorderType=e}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function ts(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const s=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!s)throw new Error;return{workbook:t,worksheet:s,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:s.getSheetId()}}function ot(n,e){const{startRow:o,startColumn:t,endRow:s,endColumn:a}=n;for(let i=o;i<=s;i++)for(let u=t;u<=a;u++)e(i,u)}const Sn={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:s}=e,{type:a,color:i,style:u}=s,c=n.get(r.ICommandService),m=n.get(pe);return m.setType(a),m.setColor(i),m.setStyle(u),c.executeCommand(De.id,{unitId:o,subUnitId:t})}},Cn={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(r.ICommandService);return n.get(pe).setType(e.value),o.executeCommand(De.id)}},In={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService);return n.get(pe).setStyle(e.value),o.executeCommand(De.id)}},fn={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService);return n.get(pe).setColor(e.value),o.executeCommand(De.id)}},De={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(pe),{worksheet:u,unitId:c,subUnitId:m}=ts(s,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),l=u.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:v,type:S,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=S===r.BorderType.TOP||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,f=S===r.BorderType.LEFT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,R=S===r.BorderType.BOTTOM||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,M=S===r.BorderType.RIGHT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,w=S===r.BorderType.VERTICAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,U=S===r.BorderType.HORIZONTAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,y=S.indexOf("tlbr")>-1,E=S.indexOf("tlbc")>-1,b=S.indexOf("tlmr")>-1,T=S.indexOf("bltr")>-1,_=S.indexOf("mltr")>-1,L=S.indexOf("bctr")>-1,p=d[0],Y={startRow:p.startRow-1,startColumn:p.startColumn,endRow:p.startRow-1,endColumn:p.endColumn},Se={startRow:p.startRow,startColumn:p.startColumn-1,endRow:p.endRow,endColumn:p.startColumn-1},ne={startRow:p.endRow+1,startColumn:p.startColumn,endRow:p.endRow+1,endColumn:p.endColumn},ho={startRow:p.startRow,startColumn:p.endColumn+1,endRow:p.endRow,endColumn:p.endColumn+1},vo={startRow:p.startRow,startColumn:p.startColumn,endRow:p.startRow,endColumn:p.endColumn},So={startRow:p.startRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.startColumn},Co={startRow:p.endRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.endColumn},Io={startRow:p.startRow,startColumn:p.endColumn,endRow:p.endRow,endColumn:p.endColumn},P=new r.ObjectMatrix,$={s:g,cl:{rgb:v}},ht=(A,D)=>{let k=null;return l.forEach(J=>{r.Rectangle.intersects(J,{startColumn:D,endColumn:D,startRow:A,endRow:A})&&(k=J)}),k};function F(A,D,k){A.startRow<0||A.startColumn<0||ot(A,(J,oe)=>{var O,qe;const Z=ht(J,oe);let ee=D;if(Z&&(D.bc_tr||D.ml_tr||D.bl_tr||D.tl_mr||D.tl_bc||D.tl_br)){if(k){const se=r.Tools.deepClone((O=P.getValue(Z.startRow,Z.startColumn))==null?void 0:O.s);ee=se!=null&&se.bd?Object.assign(se.bd,D):D}P.setValue(Z.startRow,Z.startColumn,{s:{bd:ee}})}else{if(k){const se=r.Tools.deepClone((qe=P.getValue(J,oe))==null?void 0:qe.s);ee=se!=null&&se.bd?Object.assign(se.bd,D):D}P.setValue(J,oe,{s:{bd:ee}})}})}I&&(F(Y,{b:null}),F(vo,{t:r.Tools.deepClone($)},!0)),R&&(F(ne,{t:null}),F(Co,{b:r.Tools.deepClone($)},!0)),f&&(F(Se,{r:null}),F(So,{l:r.Tools.deepClone($)},!0)),M&&(F(ho,{l:null}),F(Io,{r:r.Tools.deepClone($)},!0)),y&&F(p,{tl_br:r.Tools.deepClone($)},!0),E&&F(p,{tl_bc:r.Tools.deepClone($)},!0),b&&F(p,{tl_mr:r.Tools.deepClone($)},!0),T&&F(p,{bl_tr:r.Tools.deepClone($)},!0),_&&F(p,{ml_tr:r.Tools.deepClone($)},!0),L&&F(p,{bc_tr:r.Tools.deepClone($)},!0),w&&ot(p,(A,D)=>{var J,oe,Z,ee;const k=ht(A,D);if(k){if(k.endColumn!==p.endColumn){const O=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:r.Tools.deepClone($)}):{r:r.Tools.deepClone($)}}})}if(k.startColumn!==p.startColumn){const O=(oe=P.getValue(k.startRow,k.startColumn))==null?void 0:oe.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:r.Tools.deepClone($)}):{l:r.Tools.deepClone($)}}})}}else{if(D!==p.endColumn){const O=(Z=P.getValue(A,D))==null?void 0:Z.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:r.Tools.deepClone($)}):{r:r.Tools.deepClone($)}}})}if(D!==p.startColumn){const O=(ee=P.getValue(A,D))==null?void 0:ee.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:r.Tools.deepClone($)}):{l:r.Tools.deepClone($)}}})}}}),U&&ot(p,(A,D)=>{var J,oe,Z,ee;const k=ht(A,D);if(k){if(k.endRow!==p.endRow){const O=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:r.Tools.deepClone($)}):{b:r.Tools.deepClone($)}}})}if(k.startRow!==p.startRow){const O=(oe=P.getValue(k.startRow,k.startColumn))==null?void 0:oe.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:r.Tools.deepClone($)}):{t:r.Tools.deepClone($)}}})}}else{if(A!==p.endRow){const O=(Z=P.getValue(A,D))==null?void 0:Z.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:r.Tools.deepClone($)}):{b:r.Tools.deepClone($)}}})}if(A!==p.startRow){const O=(ee=P.getValue(A,D))==null?void 0:ee.s;P.setValue(A,D,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:r.Tools.deepClone($)}):{t:r.Tools.deepClone($)}}})}}}),!I&&!R&&!f&&!M&&!w&&!U&&!y&&!E&&!b&&!T&&!_&&!L&&(F(Y,{b:null}),F(vo,{t:null},!0),F(ne,{t:null}),F(Co,{b:null},!0),F(Se,{r:null}),F(So,{l:null},!0),F(ho,{l:null}),F(Io,{r:null},!0),F(p,{tl_br:null},!0),F(p,{tl_bc:null},!0),F(p,{tl_mr:null},!0),F(p,{bl_tr:null},!0),F(p,{ml_tr:null},!0),F(p,{bc_tr:null},!0),ot(p,(A,D)=>{var J,oe,Z,ee,O,qe,se,fo;const k=ht(A,D);if(k){if(k.endColumn!==p.endColumn){const N=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(k.startColumn!==p.startColumn){const N=(oe=P.getValue(k.startRow,k.startColumn))==null?void 0:oe.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(k.endRow!==p.endRow){const N=(Z=P.getValue(k.startRow,k.startColumn))==null?void 0:Z.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(k.startRow!==p.startRow){const N=(ee=P.getValue(k.startRow,k.startColumn))==null?void 0:ee.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}else{if(D!==p.endColumn){const N=(O=P.getValue(A,D))==null?void 0:O.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(D!==p.startColumn){const N=(qe=P.getValue(A,D))==null?void 0:qe.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(A!==p.endRow){const N=(se=P.getValue(A,D))==null?void 0:se.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(A!==p.startRow){const N=(fo=P.getValue(A,D))==null?void 0:fo.s;P.setValue(A,D,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}}));const Yt={unitId:c,subUnitId:m,cellValue:P.getData()},Sr=ce(n,Yt);return o.syncExecuteCommand(z.id,Yt)?(t.pushUndoRedo({unitID:c,undoMutations:[{id:z.id,params:Sr}],redoMutations:[{id:z.id,params:Yt}]}),!0):!1}},ns=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Oe={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const s=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const c=s.getColumnOrCreate(u);c!=null&&(c.hd=r.BooleanNumber.TRUE)}}return!0}},os=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ae={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const s=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const c=s.getColumnOrCreate(u);c!=null&&(c.hd=r.BooleanNumber.FALSE)}}return!0}},_t={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:s},u=os(n,i),c={unitId:o,subUnitId:t,pluginName:x,selections:s.map(g=>({range:g,primary:X(g,a),style:null}))},m={unitId:o,subUnitId:t,pluginName:x,selections:wn(s).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(r.ICommandService);return r.sequenceExecute([{id:Ae.id,params:i},{id:q.id,params:c}],d).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:u},{id:q.id,params:m}],redoMutations:[{id:Ae.id,params:i},{id:q.id,params:c}]}),!0}},Rn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(r.ICommandService).executeCommand(_t.id,{unitId:i,subUnitId:u,ranges:c})}},Mn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var v;const o=(v=n.get(h.SelectionManagerService).getSelections())==null?void 0:v.map(S=>S.range).filter(S=>S.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c={unitId:i,subUnitId:u,ranges:o},m={unitId:i,subUnitId:u,pluginName:x,selections:wn(o).map(S=>({range:S,primary:X(S,a),style:null}))},d={unitId:i,subUnitId:u,pluginName:x,selections:o.map(S=>({range:S,primary:X(S,a),style:null}))},l=n.get(r.ICommandService);if(r.sequenceExecute([{id:Oe.id,params:c},{id:q.id,params:m}],l).result){const S=n.get(r.IUndoRedoService),C=ns(n,c);return S.pushUndoRedo({unitID:i,undoMutations:[{id:Ae.id,params:C},{id:q.id,params:d}],redoMutations:[{id:Oe.id,params:c},{id:q.id,params:m}]}),!0}return!1}};function wn(n){return ss(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function ss(n){const e=[];let o;return n.sort((t,s)=>t.startColumn-s.startColumn).forEach(t=>{if(!o){o=t;return}o.endColumn===t.startColumn-1?o.endColumn=t.endColumn:(e.push(o),o=t)}),e.push(o),e}const bt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},he={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getConfig(),{startRow:i,startColumn:u,ySplit:c,xSplit:m}=e;return a.freeze={startRow:i,startColumn:u,ySplit:c,xSplit:m},!0}},pn={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u)return!1;const c=u.getSheetBySheetId(i);if(!c)return!1;const{startColumn:m,startRow:d,xSplit:l,ySplit:g}=e;if(d>=c.getRowCount()||m>=c.getColumnCount()||l>=c.getColumnCount()||g>=c.getRowCount())return!1;const v={unitId:a,subUnitId:i,...e},S=bt(n,v);return o.syncExecuteCommand(he.id,v)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:S}],redoMutations:[{id:he.id,params:v}]}),!0):!1}},rs={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(r.ICommandService),o=n.get(r.IUndoRedoService),t=n.get(r.IUniverInstanceService),s=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(s);if(!i||!i.getSheetBySheetId(a))return!1;const c={unitId:s,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},m=bt(n,c);return e.syncExecuteCommand(he.id,c)?(o.pushUndoRedo({unitID:s,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:c}]}),!0):!1}},is=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ne={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const c=s.getRowOrCreate(u);c!=null&&(c.hd=0)}}return!0}},as=(n,e)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Pe={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const c=s.getRowOrCreate(u);c!=null&&(c.hd=1)}}return!0}},Tt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,a=n.get(r.ICommandService),i=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),c={unitId:o,subUnitId:t,ranges:s},m=is(n,c),d={unitId:o,subUnitId:t,pluginName:x,selections:s.map(v=>({range:v,primary:X(v,u),style:null}))},l={unitId:o,subUnitId:t,pluginName:x,selections:_n(s).map(v=>({range:v,primary:X(v,u),style:null}))};return r.sequenceExecute([{id:Ne.id,params:c},{id:q.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Pe.id,params:m},{id:q.id,params:l}],redoMutations:[{id:Ne.id,params:c},{id:q.id,params:d}]}),!0}},yn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var m;const e=n.get(h.SelectionManagerService),o=n.get(r.IUniverInstanceService),t=(m=e.getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===r.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const s=o.getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),c=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(r.ICommandService).executeCommand(Tt.id,{unitId:i,subUnitId:u,ranges:c})}},Un={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var C;const e=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=(C=e.getSelections())==null?void 0:C.map(I=>I.range).filter(I=>I.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=s.getUniverSheetInstance(i);if(!c)return!1;const m=c.getSheetBySheetId(u);if(!m)return!1;const d={unitId:i,subUnitId:u,ranges:a},l={unitId:i,subUnitId:u,pluginName:x,selections:_n(a).map(I=>({range:I,primary:X(I,m),style:null}))},g={unitId:i,subUnitId:u,pluginName:x,selections:a.map(I=>({range:I,primary:X(I,m),style:null}))},v=as(n,d);return r.sequenceExecute([{id:Pe.id,params:d},{id:q.id,params:l}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:Ne.id,params:v},{id:q.id,params:g}],redoMutations:[{id:Pe.id,params:d},{id:q.id,params:l}]}),!0}};function _n(n){return us(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function us(n){const e=[];let o;return n.sort((t,s)=>t.startRow-s.startRow).forEach(t=>{if(!o){o=t;return}t.startRow===o.endRow+1?o.endRow=t.endRow:(e.push(o),o=t)}),e.push(o),e}const K={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(r.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:s=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,u=n.get(r.ICommandService),c=n.get(r.IUndoRedoService),m=n.get(h.SelectionManagerService),d=a?[a]:m.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=o.getUniverSheetInstance(t);if((l==null?void 0:l.getSheetBySheetId(s))==null)return!1;const v=new r.ObjectMatrix;if(r.Tools.isArray(i.value))for(let w=0;w<d.length;w++){const{startRow:U,endRow:y,startColumn:E,endColumn:b}=d[w];for(let T=0;T<=y-U;T++)for(let _=0;_<=b-E;_++)v.setValue(T+U,_+E,{s:{[i.type]:i.value[T][_]}})}else for(let w=0;w<d.length;w++){const{startRow:U,endRow:y,startColumn:E,endColumn:b}=d[w],T={s:{[i.type]:i.value}};for(let _=U;_<=y;_++)for(let L=E;L<=b;L++)v.setValue(_,L,T)}const S={subUnitId:s,unitId:t,cellValue:v.getMatrix()},C=ce(n,S),I=u.syncExecuteCommand(z.id,S),{undos:f,redos:R}=n.get(h.SheetInterceptorService).onCommandExecute({id:K.id,params:e}),M=r.sequenceExecute([...R],u);return I&&M.result?(c.pushUndoRedo({unitID:t,undoMutations:[{id:z.id,params:C},...f],redoMutations:[{id:z.id,params:S},...R]}),!0):!1}},cs={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:s}=e.primary,i={style:{type:"bl",value:o.getRange(t,s).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,i)}},ds={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===r.FontItalic.ITALIC}const s={style:{type:"it",value:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,s)}},ls={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const s={style:{type:"ul",value:{s:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}},ms={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(h.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const s={style:{type:"st",value:{s:t?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}};r.CommandType.COMMAND;const gs={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(K.id,t)}},hs={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(K.id,t)}},bn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(r.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(K.id,t)}},Tn={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(r.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(K.id,o)}},En={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(r.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(K.id,t)}},Dn={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(r.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(K.id,o)}},On={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(K.id,t)}},An={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(K.id,t)}},Nn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(r.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(K.id,t)}},Pn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,e)=>{if(!e)return!1;const o=typeof e.value=="number"?{a:e.value}:{a:0,v:r.BooleanNumber.TRUE},t=n.get(r.ICommandService),s={style:{type:"tr",value:o}};return t.executeCommand(K.id,s)}},vs=(n,e)=>{const a=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(e),color:a}},Fe={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const m={color:e.value,unitId:a,subUnitId:i},d=vs(n,m);return o.syncExecuteCommand(Fe.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Fe.id,params:d}],redoMutations:[{id:Fe.id,params:m}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,s]of t)if(s.getSheetId()===e.subUnitId)return o.setActiveSheet(s),!0;return!1}},Ss=4,Et={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,o)=>{var u,c;const t=n.get(r.ICommandService),s=n.get(r.IUniverInstanceService);let a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return e&&(a=(u=e.unitId)!=null?u:a,i=(c=e.subUnitId)!=null?c:i),new Promise(m=>{setTimeout(()=>{const d=t.syncExecuteCommand(He.id,{unitId:a,subUnitId:i},o);m(d)},Ss)})}},Dt=(n,e)=>{const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(s==null)throw new Error("universheet is null error!");const a={},i=s.getColumnManager(),u=e.ranges;for(let c=0;c<u.length;c++){const m=u[c];for(let d=m.startColumn;d<m.endColumn+1;d++){const l=i.getColumnOrCreate(d);a[d]=l.w}}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges,colWidth:a}},le={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(n,e)=>{var c;const t=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const s=t.getSheetBySheetId(e.subUnitId);if(!s)return!1;const a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=e.ranges;for(let m=0;m<u.length;m++){const d=u[m];for(let l=d.startColumn;l<d.endColumn+1;l++){const g=i.getColumnOrCreate(l);typeof e.colWidth=="number"?g.w=e.colWidth:g.w=(c=e.colWidth[l-d.startColumn])!=null?c:a}}return!0}},Ot={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const s=n.get(r.ICommandService),a=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),c=u.getActiveSheet(),m=u.getUnitId(),d=c.getSheetId(),{anchorCol:l,deltaX:g}=e,S=c.getColumnWidth(l)+g,C=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,I=t.filter(b=>b.range.rangeType===r.RANGE_TYPE.COLUMN),f=C?r.RANGE_TYPE.ALL:I.some(({range:b})=>{const{startColumn:T,endColumn:_}=b;return T<=l&&l<=_})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let R;if(f===r.RANGE_TYPE.ALL){const b=c.getRowCount(),T=new Array(c.getColumnCount()).fill(void 0).map((_,L)=>({startRow:0,endRow:b-1,startColumn:L,endColumn:L}));R={subUnitId:d,unitId:m,colWidth:S,ranges:T}}else f===r.RANGE_TYPE.COLUMN?R={subUnitId:d,unitId:m,ranges:I.map(b=>r.Rectangle.clone(b.range)),colWidth:S}:R={subUnitId:d,unitId:m,colWidth:S,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:l,endColumn:l}]};const M=Dt(n,R),w=s.syncExecuteCommand(le.id,R),{undos:U,redos:y}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ot.id,params:R}),E=r.sequenceExecute([...y],s);return w&&E.result&&a.pushUndoRedo({unitID:m,undoMutations:[{id:le.id,params:M},...U],redoMutations:[{id:le.id,params:R},...y]}),!0}},At={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(h.SelectionManagerService),t=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance().getUnitId(),m={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:i,colWidth:e.value},d=Dt(n,m),l=t.syncExecuteCommand(le.id,m),{undos:g,redos:v}=n.get(h.SheetInterceptorService).onCommandExecute({id:At.id,params:m}),S=r.sequenceExecute([...v],t);return l&&S.result?(s.pushUndoRedo({unitID:u,undoMutations:[{id:le.id,params:d},...g],redoMutations:[{id:le.id,params:m},...v]}),!0):!1}},Ln=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{hidden:t.isSheetHidden(),unitId:e.unitId,subUnitId:t.getSheetId()}},ve={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},Bn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var I;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=s.getCurrentUniverSheetInstance().getUnitId();let u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(u=(I=e.subUnitId)!=null?I:u);const c=s.getUniverSheetInstance(i);if(!c)return!1;const m=c.getSheetBySheetId(u);if(!m||m.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const l={unitId:i,subUnitId:u,hidden:r.BooleanNumber.TRUE},g=Ln(n,l);return c.getSheets().filter(f=>f.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(ve.id,l)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:g}],redoMutations:[{id:ve.id,params:l}]}),!0):!1}},Cs=(n,e)=>{const t=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(e.subUnitId);if(t==null)throw new Error("worksheet is null error!");return{unitId:e.unitId,name:t.getName(),subUnitId:t.getSheetId()}},st={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},Nt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=e.unitId||s.getCurrentUniverSheetInstance().getUnitId(),c={subUnitId:e.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},m=Cs(n,c),d=a.onCommandExecute({id:Nt.id,params:e}),l=[{id:st.id,params:c},...d.redos],g=[...d.undos,{id:st.id,params:m}];return await r.sequenceExecute(l,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:l}),!0):!1}},Is=(n,e)=>{const s=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId).getConfig().sheetOrder.findIndex(a=>a===e.subUnitId);return{...r.Tools.deepClone(e),order:s}},$e={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig(),s=t.sheetOrder.filter(a=>a!==e.subUnitId);return s.splice(e.order,0,e.subUnitId),t.sheetOrder=s,!0}},Vn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=e.unitId||s.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const m={order:e.order,unitId:a,subUnitId:i},d=Is(n,m);return o.syncExecuteCommand($e.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:$e.id,params:d}],redoMutations:[{id:$e.id,params:m}]}),!0):!1}},fs=2e3,jn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const c={},m=u.getRowManager();for(const{startRow:d,endRow:l}of s)for(let g=d;g<l+1;g++){const v=m.getRowOrCreate(g);c[g]=v.h}return{unitId:o,subUnitId:t,ranges:s,rowHeight:c}},Pt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:s}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),c={},m=u.getRowManager();for(const{startRow:d,endRow:l}of s)for(let g=d;g<=l;g++){const v=m.getRowOrCreate(g);c[g]=v.ia}return{unitId:o,subUnitId:t,ranges:s,autoHeightInfo:c}},Rs=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t),c=[],m=u.getRowManager();for(const d of s){const{row:l}=d,{ah:g}=m.getRowOrCreate(l);c.push({row:l,autoHeight:g})}return{unitId:o,subUnitId:t,rowsAutoHeightInfo:c}},me={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:s,rowHeight:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),c=u==null?void 0:u.getSheetBySheetId(t);if(!c)return!1;const m=c.getConfig().defaultRowHeight,d=c.getRowManager();for(const{startRow:g,endRow:v}of s)for(let S=g;S<=v;S++){const C=d.getRowOrCreate(S);typeof a=="number"?C.h=a:C.h=(l=a[S])!=null?l:m,C.h=Math.min(fs,C.h)}return!0}},te={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:s,autoHeightInfo:a}=e,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),c=u==null?void 0:u.getSheetBySheetId(t);if(!c)return!1;const m=void 0,d=c.getRowManager();for(const{startRow:g,endRow:v}of s)for(let S=g;S<=v;S++){const C=d.getRowOrCreate(S);typeof a=="number"?C.ia=a:C.ia=(l=a[S-g])!=null?l:m}return!0}},kt={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:s}=e,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(t);if(!u||!i)return!1;const c=u.getRowManager();for(const{row:m,autoHeight:d}of s){const l=c.getRowOrCreate(m);l.ah=d}return!0}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),u=a.getUnitId(),c=i.getSheetId(),{anchorRow:m,deltaY:d}=e,g=i.getRowHeight(m)+d,v=t.length===1&&t[0].range.rangeType===r.RANGE_TYPE.ALL,S=t.filter(E=>E.range.rangeType===r.RANGE_TYPE.ROW),C=v?r.RANGE_TYPE.ALL:S.some(({range:E})=>{const{startRow:b,endRow:T}=E;return b<=m&&m<=T})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let I;if(C===r.RANGE_TYPE.ALL){const E=i.getRowCount(),b=new Array(i.getColumnCount()).fill(void 0).map((T,_)=>({startRow:_,endRow:_,startColumn:0,endColumn:E-1}));I={subUnitId:c,unitId:u,rowHeight:g,ranges:b}}else C===r.RANGE_TYPE.ROW?I={subUnitId:c,unitId:u,ranges:S.map(E=>r.Rectangle.clone(E.range)),rowHeight:g}:I={subUnitId:c,unitId:u,rowHeight:g,ranges:[{startRow:m,endRow:m,startColumn:0,endColumn:i.getMaxColumns()-1}]};const f=jn(n,I),R={unitId:u,subUnitId:c,ranges:I.ranges,autoHeightInfo:r.BooleanNumber.FALSE},M=Pt(n,R),w=n.get(r.ICommandService),U=n.get(r.IUndoRedoService);return r.sequenceExecute([{id:me.id,params:I},{id:te.id,params:R}],w).result?(U.pushUndoRedo({unitID:u,undoMutations:[{id:me.id,params:f},{id:te.id,params:M}],redoMutations:[{id:me.id,params:I},{id:te.id,params:R}]}),!0):!1}},Fn={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(h.SelectionManagerService),t=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance(),c=u.getUnitId(),m=u.getActiveSheet().getSheetId(),d={subUnitId:m,unitId:c,ranges:i,rowHeight:e.value},l=jn(n,d),g={unitId:c,subUnitId:m,ranges:d.ranges,autoHeightInfo:r.BooleanNumber.FALSE},v=Pt(n,g);return r.sequenceExecute([{id:me.id,params:d},{id:te.id,params:g}],t).result?(s.pushUndoRedo({unitID:c,undoMutations:[{id:me.id,params:l},{id:te.id,params:v}],redoMutations:[{id:me.id,params:d},{id:te.id,params:g}]}),!0):!1}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(h.SelectionManagerService),a=n.get(r.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),u=a.getCurrentUniverSheetInstance().getActiveSheet(),c=u.getSheetId(),{anchorRow:m}=e!=null?e:{},d=m!=null?[{startRow:m,endRow:m,startColumn:0,endColumn:u.getMaxColumns()-1}]:s.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={unitId:i,subUnitId:c,ranges:d,autoHeightInfo:r.BooleanNumber.TRUE},g=Pt(n,l),v=o.syncExecuteCommand(te.id,l),{undos:S,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:Lt.id,params:l}),I=r.sequenceExecute([...C],o);return v&&I.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:te.id,params:g},...S],redoMutations:[{id:te.id,params:l},...C]}),!0):!1}},Hn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var C;const o=n.get(r.ICommandService),t=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId();let i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(C=e.value)!=null?C:i);const u=s.getUniverSheetInstance(a);if(!u)return!1;const c=u.getSheetBySheetId(i);if(!c||c.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:r.BooleanNumber.FALSE},l=Ln(n,d),g=o.syncExecuteCommand(ve.id,d),v={unitId:a,subUnitId:i},S=o.syncExecuteCommand(He.id,v);return g&&S?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},$n=n=>{const e=new r.ObjectMatrix;return n.forEach(o=>{r.Range.foreach(o,(t,s)=>{e.setValue(t,s,1)})}),e.forValue((o,t)=>{const s=e.getValue(o-1,t);s&&e.setValue(o,t,s+1)}),e},Gn=n=>{const e=n;return e.forValue((o,t)=>{const s=n.getValue(o-1,t);s&&e.setValue(o,t,s+1)}),e},zn=n=>{const e={area:0},o=(t,s)=>e.area<t?(e.area=t,e.range=s,!0):!1;return n.forValue((t,s,a)=>{let i=1,u=a;o(i*u,{startRow:t-u+1,endRow:t,startColumn:s,endColumn:s});const c={startRow:t-u+1,endRow:t,startColumn:0,endColumn:s};for(let m=s-1;m>=0&&n.getValue(t,m);m--){u=Math.min(n.getValue(t,m)||0,u),i++;const d=u*i;c.startColumn=m,c.startRow=t-u+1,o(d,c)}}),e},Ms=(n,e)=>(r.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let s=o+1,a=n.getValue(s,t)||0;for(;a>1;)n.setValue(s,t,a-1),s+=1,a=n.getValue(s,t)||0}),n),Bt=n=>{const e=[];let o=zn(n);for(;o.area>0;)o.range&&(e.push(o.range),Ms(n,o.range)),o=zn(n);return e},Vt=n=>{const e=$n(n);return Bt(e)};class ws{constructor(){B(this,"_matrix",new r.ObjectMatrix)}add(...e){return e.forEach(o=>{r.Range.foreach(o,(t,s)=>{this._matrix.setValue(t,s,1)})}),this}subtract(...e){return e.forEach(o=>{r.Range.foreach(o,(t,s)=>{this._matrix.realDeleteValue(t,s)})}),this}merge(){const e=Gn(this._matrix);return Bt(e)}}const ps=(n,e,o="")=>n.reduce((t,s)=>{const a=s&&s[e];return typeof a!="string"?(console.warn(s,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(s)):t[o].push(s),t)},{}),ys=(n=0)=>{let e=n;return function(){return e++}},ye=V.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Rendered,ye);const Us=(n,e)=>{const o=n.get(ye),{values:t,unitId:s,subUnitId:a}=e,i=[],u=[],c=o.getModel(s,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{r.Range.foreach(g,(v,S)=>{const C=o.getValue(s,a,v,S,c);C?i.push({pattern:C.pattern,type:C.type,row:v,col:S}):u.push({startColumn:S,endColumn:S,startRow:v,endRow:v})})})});const m=[];if(i.length){const d=it(s,a,i);Object.keys(d.values).forEach(l=>{const g=d.values[l];g.ranges=Vt(g.ranges)}),m.push({id:rt.id,params:it(s,a,i)})}return u.length&&m.push({id:jt.id,params:{unitId:s,subUnitId:a,ranges:u}}),m},rt={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,s=n.get(ye),a=e.unitId,i=e.subUnitId,u=Object.keys(o).reduce((c,m)=>{const d=t[m],l=o[m].ranges;return d&&c.push({...d,ranges:l}),c},[]);return s.setValues(a,i,u),!0}},jt={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:s}=e;return n.get(ye).deleteValues(o,t,s),!0}},_s=(n,e)=>{const o=n.get(ye),{ranges:t,unitId:s,subUnitId:a}=e,i=[],u=o.getModel(s,a)||void 0;if(t.forEach(m=>{r.Range.foreach(m,(d,l)=>{const g=o.getValue(s,a,d,l,u);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:l})})}),!i.length)return[];const c=it(s,a,i);return Object.keys(c.values).forEach(m=>{const d=c.values[m];d.ranges=Vt(d.ranges)}),[{id:rt.id,params:c}]},it=(n,e,o)=>{const t=ps(o,"pattern"),s={},a={},i=ys();return Object.keys(t).forEach(u=>{const c=t[u],m=c[0],d=i();s[d]={pattern:u,type:m.type},c.forEach(l=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(bs(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:s,values:a}},bs=(n,e)=>({startRow:n,endRow:n,startColumn:e,endColumn:e}),qn={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},Yn="maxCellsPerSheet",Ts=3e6;var Es=Object.defineProperty,Ds=Object.getOwnPropertyDescriptor,Os=(n,e,o,t)=>{for(var s=t>1?void 0:t?Ds(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Es(e,o,s),s},xn=(n,e)=>(o,t)=>e(o,t,n);let at=class extends r.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[j,xe,St,Ke,Zt,Xe,Ze,Ot,Wn,cn,un,Ee,Re,Qe,et,rn,sn,Te,fe,dn,Ce,yt,We,Je,Be,pt,je,nt,we,tt,Me,Ut,Le,vn,W,Dn,Tn,En,Sn,fn,De,Cn,In,Mn,Oe,Ae,At,rs,pn,he,An,Ie,z,Fn,Un,Pe,Ne,Rn,yn,_t,Tt,K,kn,Fe,bn,Pn,Nn,On,Et,He,le,Bn,ve,Nt,st,Vn,$e,kt,me,Lt,te,Hn,rt,q,jt,qn].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(Yn,Ts)}};at=Os([r.OnLifecycle(r.LifecycleStages.Starting,at),xn(0,r.ICommandService),xn(1,r.IConfigService)],at);var As=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Ps=(n,e,o,t)=>{for(var s=t>1?void 0:t?Ns(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&As(e,o,s),s},ks=(n,e)=>(o,t)=>e(o,t,n);let ut=class extends r.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==vt.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,s=Object.keys(o),a=[];return s.forEach(u=>{const c=o[u];if(c==null)return!0;Object.keys(c).forEach(d=>{const l=c[d];if(l==null)return!0;const g={subUnitId:d,unitId:u,cellValue:l};a.push({id:z.id,params:g})})}),a.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};ut=Ps([r.OnLifecycle(r.LifecycleStages.Ready,ut),ks(0,r.ICommandService)],ut);var Ls=Object.defineProperty,Bs=Object.getOwnPropertyDescriptor,Vs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Bs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Ls(e,o,s),s},ct=(n,e)=>(o,t)=>e(o,t,n);let dt=class extends r.Disposable{constructor(n,e,o,t){super(),this._commandService=n,this._featureCalculationManagerService=e,this._currentUniverService=o,this._formulaDataModel=t}_initialize(){const n="test",e="workbook-01",o="sheet-0011",t={[e]:{[o]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[e]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:e,subUnitId:o,dependencyRanges:[{unitId:e,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:t,dirtyRanges:s})})}};dt=Vs([r.OnLifecycle(r.LifecycleStages.Ready,dt),ct(0,r.ICommandService),ct(1,vt.IFeatureCalculationManagerService),ct(2,r.IUniverInstanceService),ct(3,V.Inject(vt.FormulaDataModel))],dt);const H={MoveRangeCommandId:Qt,InsertRowCommandId:on,InsertColCommandId:an,RemoveColCommandId:hn,RemoveRowCommandId:gn,DeleteRangeMoveLeftCommandId:en,DeleteRangeMoveUpCommandId:tn,InsertRangeMoveDownCommandId:Jo,InsertRangeMoveRightCommandId:nn,MoveColsCommandId:mn,MoveRowsCommandId:ln};var G=(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))(G||{}),js=Object.defineProperty,Ws=Object.getOwnPropertyDescriptor,Fs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Ws(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&js(e,o,s),s},Wt=(n,e)=>(o,t)=>e(o,t,n);const Hs=r.createInterceptorKey("MERGE_REDO"),$s=r.createInterceptorKey("MERGE_UNDO");h.RefRangeService=class extends r.Disposable{constructor(o,t,s){super();B(this,"interceptor",new r.InterceptorManager({MERGE_REDO:Hs,MERGE_UNDO:$s}));B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",Gs());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=Kn(this._univerInstanceService),a=Jn(this._univerInstanceService),c=((()=>{switch(o.id){case H.MoveColsCommandId:{const l=o.params,g=Math.min(l.fromRange.startColumn,l.toRange.startColumn);return this._checkRange([{...l.fromRange,startColumn:g,endColumn:t.getColumnCount()-1}],s,a)}case H.MoveRowsCommandId:{const l=o.params,g=Math.min(l.fromRange.startRow,l.toRange.startRow);return this._checkRange([{...l.fromRange,startRow:g,endRow:t.getRowCount()-1}],s,a)}case H.MoveRangeCommandId:{const l=o;return this._checkRange([l.params.fromRange,l.params.toRange],s,a)}case H.InsertRowCommandId:{const v={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case H.InsertColCommandId:{const g=o.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case H.RemoveRowCommandId:{const v={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case H.RemoveColCommandId:{const g=o.params.range.startColumn,v={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([v],s,a)}case H.DeleteRangeMoveUpCommandId:case H.InsertRangeMoveDownCommandId:{const g=o.params.range||Xn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([v],s,a)}case H.DeleteRangeMoveLeftCommandId:case H.InsertRangeMoveRightCommandId:{const g=o.params.range||Xn(this._selectionManagerService)[0],v={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([v],s,a)}}})()||[]).reduce((l,g)=>{const v=g(o);return l.push(v),l},[]).reduce((l,g)=>(l.redos.push(...g.redos),l.undos.push(...g.undos),l),{redos:[],undos:[]}),m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(c.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(c.undos,null)||[];return{redos:m,undos:d}}})});B(this,"_checkRange",(o,t,s)=>{const a=Zn(t,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(m=>{const d=i.get(m),l=this._serializer.deserialize(m);o.some(g=>r.Rectangle.intersects(g,l))&&d&&d.forEach(g=>{u.add(g)})}),[...u]}return[]});B(this,"registerRefRange",(o,t,s,a)=>{const i=s||Kn(this._univerInstanceService),u=a||Jn(this._univerInstanceService),c=Zn(i,u),m=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(c);d||(d=new Map,this._refRangeManagerMap.set(c,d));const l=d.get(m);return l?l.add(t):d.set(m,new Set([t])),r.toDisposable(()=>{const g=d.get(m);g&&(g.delete(t),g.size||(d.delete(m),d.size||this._refRangeManagerMap.delete(c)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=s,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:a=>a}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:a=>a})}},h.RefRangeService=Fs([r.OnLifecycle(r.LifecycleStages.Steady,h.RefRangeService),Wt(0,V.Inject(h.SheetInterceptorService)),Wt(1,V.Inject(r.IUniverInstanceService)),Wt(2,V.Inject(h.SelectionManagerService))],h.RefRangeService);function Kn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function Jn(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Xn(n){return n.getSelectionRanges()||[]}function Zn(n,e){return`${n}_${e}`}function Gs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(e).reduce((a,i,u)=>{const c=String(u);return i&&t[c]&&(a[t[c]]=i),a},{})},serialize:o=>n.reduce((t,s,a)=>{const i=o[s];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const lt=Number.MAX_SAFE_INTEGER,ue=n=>{const e={...n};return e.rangeType===r.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=lt),e.rangeType===r.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=lt),e.rangeType===r.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=lt,e.startRow=0,e.endRow=lt),e},ge=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ft=(n,e,o)=>{const t={...o},s={...e},a=(C,I)=>{const f=Math.max(C.start,I.start),R=Math.min(C.end,I.end);return R<f?null:{start:f,end:R}},i=C=>C.end-C.start+1,u=(C,I)=>({start:C.start-I.start,end:C.start-I.start+C.end-C.start}),c=(C,I)=>({start:I.start+C.start,end:I.start+C.start+C.end-C.start}),m=e.start>n.start;if(m){const C=Math.min(n.end,e.start)-n.start+1;s.start-=C,s.end-=C}const d=i(n),l=d,g=a(n,t),v=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const C=i(g);if(v){const I=u(t,n),f=c(I,s);t.start=f.start,t.end=f.end}else g.start>n.start||m?t.end-=C:(t.start-=d,t.end-=d+C)}const S=a(s,t);if(s.start<=t.start&&!v)t.start+=l,t.end+=l;else if(S){const C=s.start;if(i(S)<=i(t))return{step:t.start-o.start,length:0};C<t.start?(t.start+=l,t.end+=l):C>=t.start&&C<=t.end&&(t.end+=l,t.start+=l)}return{step:t.start-o.start,length:i(t)-i(o)}},Ht=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const s=ue(o),a=ue(t),i=ue(e),u=Ft({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:G.Delete}]:[{type:G.VerticalMove,step:u.step||0,length:u.length||0}]},$t=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const s=ue(o),a=ue(t),i=ue(e),u=Ft({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:G.Delete}]:[{type:G.HorizontalMove,step:u.step||0,length:u.length||0}]},Qn=(n,e)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,t=(i=n.params)==null?void 0:i.fromRange;if(!o||!t)return[];const s=[];if(r.Rectangle.contains(o,e)&&s.push({type:G.Delete}),r.Rectangle.contains(t,e)){s.push({type:G.Delete});const u=r.Rectangle.getRelativeRange(e,t),c=r.Rectangle.getPositionRange(u,o);return[{type:G.Set,range:c}]}return s},Ge=(n,e)=>{const o=ue(n),t=ue(e),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn){const i=r.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-s(i)}}if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn&&a(o)>=a(t))return null;if(t.startColumn>=o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn){const i=r.Rectangle.getIntersects(t,o);if(i){const u=-s(i);return{step:-(s(o)-s(i)),length:u}}}if(t.startColumn>o.endColumn)return{step:-s(o),length:0}}return{step:0,length:0}},eo=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(o,e);if(!s)t.push({type:G.Delete});else{const{step:i,length:u}=s;t.push({type:G.HorizontalMove,step:i,length:u})}return t},to=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(ge(o),ge(e));if(!s)t.push({type:G.Delete});else{const{step:i,length:u}=s;t.push({type:G.VerticalMove,step:i,length:u})}return t},ze=(n,e)=>{const o=ue(n),t=ue(e),s=a=>a.endColumn-a.startColumn+1;if(o.startRow<=t.startRow&&o.endRow>=t.endRow){if(t.startColumn<o.startColumn&&t.endColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn<o.startColumn&&t.endColumn>=o.endColumn)return{step:0,length:s(o)};if(t.startColumn>=o.startColumn&&t.endColumn<=o.endColumn||t.startColumn>o.startColumn&&t.startColumn<=o.endColumn&&t.endColumn>o.endColumn||t.startColumn>=o.endColumn)return{step:s(o),length:0}}return{step:0,length:0}},no=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(ge(o),ge(e)),{step:a,length:i}=s;return t.push({type:G.VerticalMove,step:a,length:i}),t},oo=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(o,e),{step:a,length:i}=s;return t.push({type:G.HorizontalMove,step:a,length:i}),t},so=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(ge(o),ge(e)),{step:a,length:i}=s;return t.push({type:G.VerticalMove,step:a,length:i}),t},ro=(n,e)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const t=[],s=ze(o,e),{step:a,length:i}=s;return t.push({type:G.HorizontalMove,step:a,length:i}),t},io=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(o,e);if(!s)t.push({type:G.Delete});else{const{step:i,length:u}=s;t.push({type:G.HorizontalMove,step:i,length:u})}return t},ao=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],s=Ge(ge(o),ge(e));if(!s)t.push({type:G.Delete});else{const{step:i,length:u}=s;t.push({type:G.VerticalMove,step:i,length:u})}return t},mt=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case G.Delete:{o=null;break}case G.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case G.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case G.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},zs=(n,e)=>{let o=[];switch(e.id){case H.DeleteRangeMoveLeftCommandId:{o=io(e,n);break}case H.DeleteRangeMoveUpCommandId:{o=ao(e,n);break}case H.InsertColCommandId:{o=oo(e,n);break}case H.InsertRangeMoveDownCommandId:{o=so(e,n);break}case H.InsertRangeMoveRightCommandId:{o=ro(e,n);break}case H.InsertRowCommandId:{o=no(e,n);break}case H.MoveColsCommandId:{o=$t(e,n);break}case H.MoveRangeCommandId:{o=Qn(e,n);break}case H.MoveRowsCommandId:{o=Ht(e,n);break}case H.RemoveColCommandId:{o=eo(e,n);break}case H.RemoveRowCommandId:{o=to(e,n);break}}return mt(o,n)};var qs=Object.defineProperty,Ys=Object.getOwnPropertyDescriptor,xs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Ys(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&qs(e,o,s),s},ke=(n,e)=>(o,t)=>e(o,t,n);function uo(n,e){let o=n;if(e!==void 0){const t=[];for(let s=0;s<o.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:c}=o[s];if(e===r.Dimension.ROWS)for(let m=a;m<=i;m++){const d={startRow:m,endRow:m,startColumn:u,endColumn:c};t.push(d)}else if(e===r.Dimension.COLUMNS)for(let m=u;m<=c;m++){const d={startRow:a,endRow:i,startColumn:m,endColumn:m};t.push(d)}}o=t}return o}h.MergeCellController=class extends r.Disposable{constructor(e,o,t,s,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=s,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case xe.id:case Ke.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),s=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),u=a.getConfig().mergeData,c=e._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(d=>u.some(l=>r.Rectangle.intersects(l,d)))){const d={unitId:s,subUnitId:i,ranges:c},l=Q(e._injector,d),g=[{id:W.id,params:d}],v=[{id:j.id,params:l}];return{redos:g,undos:v}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new r.DisposableCollection,o=(a,i)=>{const u=this._univerInstanceService.getUniverSheetInstance(a);if(!u)return;const c=u==null?void 0:u.getSheetBySheetId(i);if(!c)return;e.dispose();const m=c.getMergeData(),d=l=>{switch(l.id){case Je.id:{const g=l.params;return this._handleMoveRangeCommand(g,a,i)}case Te.id:{const g=l.params,v=g.unitId||a,S=g.subUnitId||i;return this._handleInsertRowCommand(g,v,S)}case Ee.id:{const g=l.params,v=g.unitId||a,S=g.subUnitId||i;return this._handleInsertColCommand(g,v,S)}case nt.id:{const g=l.params;return this._handleRemoveColCommand(g,a,i)}case tt.id:{const g=l.params;return this._handleRemoveRowCommand(g,a,i)}case et.id:{const g=l.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case Qe.id:{const g=l.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case Ze.id:{const g=l.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case Xe.id:{const g=l.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case H.MoveColsCommandId:{const g=l.params;return this._handleMoveColsCommand(g,a,i)}case H.MoveRowsCommandId:{const g=l.params;return this._handleMoveRowsCommand(g,a,i)}}return{redos:[],undos:[]}};m.forEach(l=>{e.add(this._refRangeService.registerRefRange(l,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Et.id){const i=a.params,u=i.subUnitId,c=i.unitId;if(!u||!c)return;o(c,u)}if(a.id===j.id){const i=a.params,u=i.subUnitId,c=i.unitId;if(!u||!c)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t.getActiveSheet();o(t.getUnitId(),s.getSheetId())}_handleMoveRowsCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],u={unitId:o,subUnitId:t,ranges:i},c={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=Ht({id:H.MoveRowsCommandId,params:e},l),v=mt(g,l);v&&c.ranges.push(v)});const m=Q(this._injector,u),d=re(this._injector,c);return{redos:[{id:W.id,params:u},{id:j.id,params:c}],undos:[{id:W.id,params:d},{id:j.id,params:m}]}}_handleMoveColsCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],u={unitId:o,subUnitId:t,ranges:i},c={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=$t({id:H.MoveColsCommandId,params:e},l),v=mt(g,l);v&&c.ranges.push(v)});const m=Q(this._injector,u),d=re(this._injector,c);return{redos:[{id:W.id,params:u},{id:j.id,params:c}],undos:[{id:W.id,params:d},{id:j.id,params:m}]}}_handleMoveRangeCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=a.getMergeData(),u=i.filter(v=>r.Rectangle.intersects(v,e.fromRange)),c=i.filter(v=>r.Rectangle.intersects(v,e.toRange)),m=u.map(v=>r.Rectangle.getRelativeRange(v,e.fromRange)).map(v=>r.Rectangle.getPositionRange(v,e.toRange)),d=uo(m).filter(v=>!i.some(S=>r.Rectangle.equals(v,S))),l=[{id:W.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:W.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:W.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:j.id,params:{unitId:o,subUnitId:t,ranges:u}}];return{redos:l,undos:g}}_handleInsertRowCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:u,endRow:c}=i,m=r.Tools.deepClone(a.getMergeData()),d=r.Tools.deepClone(a.getMergeData()).map(f=>{const R=c-u+1;return u>f.endRow?f:u<=f.startRow?r.Rectangle.moveVertical(f,R):(f.endRow+=R,f)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v),C=[{id:W.id,params:l},{id:j.id,params:v}],I=[{id:W.id,params:S},{id:j.id,params:g}];return{redos:C,undos:I}}_handleInsertColCommand(e,o,t){const{range:s}=e,a=ie(this._univerInstanceService,o);if(!a)return this._handleNull();const i=ae(a,t);if(!i)return this._handleNull();const{startColumn:u,endColumn:c}=s,m=r.Tools.deepClone(i.getMergeData()),d=r.Tools.deepClone(i.getMergeData()).map(f=>{const R=c-u+1;return u>f.endColumn?f:u<=f.startColumn?r.Rectangle.moveHorizontal(f,R):(f.endColumn+=R,f)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v),C=[{id:W.id,params:l},{id:j.id,params:v}],I=[{id:W.id,params:S},{id:j.id,params:g}];return{redos:C,undos:I}}_handleRemoveColCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const{range:i}=e,u=r.Tools.deepClone(a.getMergeData());for(let S=0;S<u.length;S++){const C=u[S],{startColumn:I,endColumn:f}=C,R=f-I+1,{startColumn:M,endColumn:w}=i,U=w-M+1;if(w<C.startColumn)C.startColumn-=U,C.endColumn-=U;else{if(M>C.endColumn)continue;if(M<=C.startColumn&&w>=C.endColumn)u.splice(S,1),S--;else{const y=r.Rectangle.getIntersects(i,C),E=y.endColumn-y.startColumn+1,b=y.endRow-y.startRow===0;E===R-1&&b?(u.splice(S,1),S--):C.endColumn-=y.endColumn-y.startColumn+1}}}const c={unitId:o,subUnitId:t,ranges:r.Tools.deepClone(a.getMergeData())},m=Q(this._injector,c),d={unitId:o,subUnitId:t,ranges:u},l=re(this._injector,d),g=[{id:W.id,params:c},{id:j.id,params:d}],v=[{id:W.id,params:l},{id:j.id,params:m}];return{redos:g,undos:v}}_handleRemoveRowCommand(e,o,t){const{range:s}=e,a=ie(this._univerInstanceService,o);if(!a)return this._handleNull();const i=ae(a,t);if(!i)return this._handleNull();const u=r.Tools.deepClone(i.getMergeData());for(let S=0;S<u.length;S++){const C=u[S],{startRow:I,endRow:f}=C,R=f-I+1,{startRow:M,endRow:w}=s,U=w-M+1;if(w<I)C.startRow-=U,C.endRow-=U;else{if(M>f)continue;if(M<=I&&w>=f)u.splice(S,1),S--;else{const y=r.Rectangle.getIntersects(s,C),E=y.endRow-y.startRow+1,b=y.endColumn-y.startColumn===0;E===R-1&&b?(u.splice(S,1),S--):C.endRow-=y.endRow-y.startRow+1}}}const c={unitId:o,subUnitId:t,ranges:r.Tools.deepClone(i.getMergeData())},m=Q(this._injector,c),d={unitId:o,subUnitId:t,ranges:u},l=re(this._injector,d),g=[{id:W.id,params:c},{id:j.id,params:d}],v=[{id:W.id,params:l},{id:j.id,params:m}];return{redos:g,undos:v}}_handleInsertRangeMoveRightCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxColumns()-1,c=a.getMergeData(),m=[],d=[];c.forEach(C=>{const{startRow:I,endRow:f,startColumn:R,endColumn:M}=i;if(r.Rectangle.intersects({startRow:I,startColumn:R,endRow:f,endColumn:u},C)&&(m.push(C),r.Rectangle.contains({startRow:I,startColumn:R,endRow:f,endColumn:u},C))){const y=M-R+1;d.push({startRow:C.startRow,startColumn:C.startColumn+y,endRow:C.endRow,endColumn:C.endColumn+y})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v);return{redos:[{id:W.id,params:l},{id:j.id,params:v}],undos:[{id:j.id,params:g},{id:W.id,params:S}]}}_handleInsertRangeMoveDownCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxRows()-1,c=a.getMergeData(),m=[],d=[];c.forEach(f=>{const{startRow:R,startColumn:M,endColumn:w,endRow:U}=i;if(r.Rectangle.intersects({startRow:R,startColumn:M,endRow:u,endColumn:w},f)&&(m.push(f),r.Rectangle.contains({startRow:R,startColumn:M,endRow:u,endColumn:w},f))){const b=U-R+1;d.push({startRow:f.startRow+b,startColumn:f.startColumn,endRow:f.endRow+b,endColumn:f.endColumn})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v),C=[{id:W.id,params:l},{id:j.id,params:v}],I=[{id:j.id,params:g},{id:W.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxRows()-1,c=a.getMergeData(),m=[],d=[];c.forEach(f=>{const{startRow:R,startColumn:M,endColumn:w,endRow:U}=i;if(r.Rectangle.intersects({startRow:R,startColumn:M,endRow:u,endColumn:w},f)&&(m.push(f),r.Rectangle.contains({startRow:R,startColumn:M,endRow:u,endColumn:w},f))){const b=U-R+1,T=r.Rectangle.moveVertical(f,-b);d.push(T)}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v),C=[{id:W.id,params:l},{id:j.id,params:v}],I=[{id:j.id,params:g},{id:W.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(e,o,t){const s=ie(this._univerInstanceService,o);if(!s)return this._handleNull();const a=ae(s,t);if(!a)return this._handleNull();const i=e.range,u=a.getMaxColumns()-1,c=a.getMergeData(),m=[],d=[];c.forEach(C=>{const{startRow:I,endRow:f,startColumn:R,endColumn:M}=i;if(r.Rectangle.intersects({startRow:I,startColumn:R,endRow:f,endColumn:u},C)&&(m.push(C),r.Rectangle.contains({startRow:I,startColumn:R,endRow:f,endColumn:u},C))){const y=M-R+1;d.push({startRow:C.startRow,startColumn:C.startColumn-y,endRow:C.endRow,endColumn:C.endColumn-y})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),v={unitId:o,subUnitId:t,ranges:d},S=re(this._injector,v);return{redos:[{id:W.id,params:l},{id:j.id,params:v}],undos:[{id:j.id,params:g},{id:W.id,params:S}]}}_handleNull(){return{redos:[],undos:[]}}},h.MergeCellController=xs([r.OnLifecycle(r.LifecycleStages.Steady,h.MergeCellController),ke(0,V.Inject(r.ICommandService)),ke(1,V.Inject(h.RefRangeService)),ke(2,V.Inject(r.IUniverInstanceService)),ke(3,V.Inject(V.Injector)),ke(4,V.Inject(h.SheetInterceptorService)),ke(5,V.Inject(h.SelectionManagerService))],h.MergeCellController);function ie(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function ae(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const Ks={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},co={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Js=Object.defineProperty,Xs=Object.getOwnPropertyDescriptor,Zs=(n,e,o,t)=>{for(var s=t>1?void 0:t?Xs(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Js(e,o,s),s},gt=(n,e)=>(o,t)=>e(o,t,n);const lo="SHEET_NUMFMT_PLUGIN";h.NumfmtService=class extends r.Disposable{constructor(o,t,s,a){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new _e.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=s,this._logService=a,this._initModel(),this.disposeWithMe(r.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,lo,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,u)=>{const{model:c,refModel:m}=u;if(c){const d=Object.keys(c).reduce((l,g)=>(l.set(g,new r.ObjectMatrix(c[g])),l),new Map);this._numfmtModel.set(i,d)}m&&this._refAliasModel.set(i,new r.RefAlias(m,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,lo)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),s=this._refAliasModel.get(o);if(!t||!s)return"";const a=[...t.keys()].reduce((c,m)=>{const d=t.get(m);return c[m]=d.toJSON(),c},{}),i=s.getValues().filter(c=>c.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,s,a,i){let u=this.getModel(o,t);if(!u){const c=this._numfmtModel.get(o)||new Map,m=c.get(t)||new r.ObjectMatrix;c.set(t,m),this._numfmtModel.set(o,c),u=m}if(i)u.setValue(s,a,i);else if(u.realDeleteValue(s,a),!u.getSizeOf()){const m=this._numfmtModel.get(o);m==null||m.delete(t)}}_getUniqueRefId(o){const t=this._refAliasModel.get(o);if(!t)return"0";const s=t.getKeyMap("i");return`${Math.max(...s.map(i=>Number(i||0)),0)+1}`}getValue(o,t,s,a,i){const u=i||this.getModel(o,t);if(!u)return null;const c=this._refAliasModel.get(o),m=u.getValue(s,a);if(m&&c){const d=c.getValue(m==null?void 0:m.i);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,t,s){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),s.forEach(u=>{r.Range.foreach(u,(c,m)=>{const d=this.getValue(o,t,c,m,i);if(d&&d.pattern){const l=a.getValue(d.pattern);l&&l.count--}this._setValue(o,t,c,m,null)})})}setValues(o,t,s){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),s.forEach(u=>{let c=i.getValue(u.pattern);c||(c={count:0,i:this._getUniqueRefId(o),pattern:u.pattern,type:s[0].type},i.addValue(c)),u.ranges.forEach(m=>{r.Range.foreach(m,(d,l)=>{if(a){const g=this.getValue(o,t,d,l,a);if(g&&g.pattern){const v=i.getValue(g.pattern);v&&v.count--}}this._setValue(o,t,d,l,{i:c.i}),c.count++})})})}getModel(o,t){const s=this._numfmtModel.get(o);return s==null?void 0:s.get(t)}getRefModel(o){return this._refAliasModel.get(o)}},h.NumfmtService=Zs([r.OnLifecycle(r.LifecycleStages.Starting,h.NumfmtService),gt(0,V.Inject(r.ICommandService)),gt(1,V.Inject(r.IResourceManagerService)),gt(2,V.Inject(r.IUniverInstanceService)),gt(3,V.Inject(r.ILogService))],h.NumfmtService);const mo="univer.sheet.editable";class Ue extends r.PermissionPoint{constructor(o,t){super();B(this,"id",mo);B(this,"value",!0);B(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${mo}_${o}_${t}`}}var Qs=Object.defineProperty,er=Object.getOwnPropertyDescriptor,tr=(n,e,o,t)=>{for(var s=t>1?void 0:t?er(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&Qs(e,o,s),s},Gt=(n,e)=>(o,t)=>e(o,t,n);h.SheetPermissionService=class extends r.Disposable{constructor(e,o,t){super(),this._permissionService=e,this._univerInstanceService=o,this._sheetInterceptorService=t,this._init(),this._interceptCommandPermission()}_init(){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),o=e.getUnitId();e.getSheets().forEach(t=>{const s=t.getSheetId(),a=new Ue(o,s);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(r.toDisposable(e.sheetCreated$.subscribe(t=>{const s=t.getSheetId(),a=new Ue(o,s);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(r.toDisposable(e.sheetDisposed$.subscribe(t=>{const s=t.getSheetId(),a=new Ue(o,s);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=s==null?void 0:s.getActiveSheet(),i=s==null?void 0:s.getUnitId(),u=a==null?void 0:a.getSheetId();if(!i||!u)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,u)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),u=new Ue(s,i);return this._permissionService.composePermission$(s,[r.UniverEditablePermissionPoint,u.id]).pipe(Ro.map(([c,m])=>{const d=c.value&&m.value,l=r.getTypeFromPermissionItemList([c,m]);return{value:d,status:l}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),u=new Ue(s,i);return this._permissionService.composePermission(s,[r.UniverEditablePermissionPoint,u.id]).every(c=>c.value)}setSheetEditable(e,o,t){const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||s.getUnitId(),i=s.getActiveSheet(),u=t||i.getSheetId(),c=new Ue(a,u);this._permissionService.updatePermissionPoint(a,c.id,e)}},h.SheetPermissionService=tr([r.OnLifecycle(r.LifecycleStages.Ready,h.SheetPermissionService),Gt(0,V.Inject(r.IPermissionService)),Gt(1,V.Inject(r.IUniverInstanceService)),Gt(2,V.Inject(h.SheetInterceptorService))],h.SheetPermissionService);function nr(n){const e=n.get(r.IUniverInstanceService),o=n.get(h.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),s=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var u;const i=(u=o.getEditable$(t,s))==null?void 0:u.subscribe(c=>{a.next(!c.value)});return()=>{i==null||i.unsubscribe()}})}var or=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,rr=(n,e,o,t)=>{for(var s=t>1?void 0:t?sr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(t?i(e,o,s):i(s))||s);return t&&s&&or(e,o,s),s},zt=(n,e)=>(o,t)=>e(o,t,n);const ir="sheet";h.UniverSheetsPlugin=(qt=class extends r.Plugin{constructor(e,o,t,s){super(ir),this._config=e,this._commandService=o,this._localeService=t,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:co})}_initializeDependencies(e){var t;const o=[[pe],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[ye,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[at],[h.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([ut],[dt]),o.forEach(s=>{e.add(s)})}},B(qt,"type",r.PluginType.Sheet),qt),h.UniverSheetsPlugin=rr([zt(1,r.ICommandService),zt(2,V.Inject(r.LocaleService)),zt(3,V.Inject(V.Injector))],h.UniverSheetsPlugin);const ar=[me.id,te.id,kt.id,le.id,He.id,je.id,We.id,Oe.id,Ae.id,Pe.id,Ne.id,Re.id,fe.id,we.id,Me.id],ur=[z.id,Be.id,W.id,j.id],cr=1.5,dr="rgba(255,255,255, 0.01)";function lr(n){const e=n.getCurrentTheme(),o=new r.ColorKit(e.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1.5,stroke:e.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:e.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:e.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:e.primaryColor,columnHeaderStrokeWidth:1}}function mr(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,s={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(s.primary=go(o)),s}function go(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:s}=n,{startRow:a,startColumn:i,endRow:u,endColumn:c}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:c}}function gr(n,e,o){const t=Mo.getCellInfoInMergeData(n,e,o),s=r.makeCellRangeToRangeData(t);if(s)return{range:s,primary:t,style:null}}const hr=(n,e,o)=>{const s=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:c}=e;if(s){const d=s[(s==null?void 0:s.length)-1].primary;if(d){const{actualColumn:l,actualRow:g}=d;let{startRow:v,startColumn:S,endRow:C,endColumn:I}=i[i.length-1];if(a===r.Dimension.COLUMNS){const w=o.find(U=>U.startColumn===l&&U.endColumn===l&&g===U.startRow);w&&(I=w.endColumn,v=w.startRow,C=w.endRow)}else if(a===r.Dimension.ROWS){const w=o.find(U=>U.startRow===g&&U.endRow===g&&l===U.startColumn);w&&(C=w.endRow,S=w.startColumn,I=w.endColumn)}const f={startRow:v,startColumn:S,endRow:C,endColumn:I,actualRow:g,actualColumn:l,isMerged:!0,isMergedMainCell:v===g&&S===l},R=s.map((w,U,y)=>({range:w.range,style:null,primary:U===y.length-1?f:null})),M={unitId:u,subUnitId:c,pluginName:x,selections:R};return{id:q.id,params:M}}return null}return null},vr=(n,e)=>{const t=n.get(h.SelectionManagerService).getSelections(),{unitId:s,subUnitId:a}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const c={unitId:s,subUnitId:a,pluginName:x,selections:[...t]};return{id:q.id,params:c}}return null};h.AddMergeRedoSelectionsOperationFactory=hr,h.AddMergeUndoMutationFactory=re,h.AddMergeUndoSelectionsOperationFactory=vr,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=pe,h.COMMAND_LISTENER_SKELETON_CHANGE=ar,h.COMMAND_LISTENER_VALUE_CHANGE=ur,h.ClearSelectionAllCommand=xe,h.ClearSelectionContentCommand=St,h.ClearSelectionFormatCommand=Ke,h.CopySheetCommand=Zt,h.DeleteRangeMoveLeftCommand=Xe,h.DeleteRangeMoveUpCommand=Ze,h.DeltaColumnWidthCommand=Ot,h.DeltaRowHeightCommand=Wn,h.EffectRefRangId=H,h.EmptyMutation=qn,h.INTERCEPTOR_POINT=be,h.INumfmtService=ye,h.InsertColAfterCommand=cn,h.InsertColBeforeCommand=un,h.InsertColCommand=Ee,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=wt,h.InsertRangeMoveDownCommand=Qe,h.InsertRangeMoveRightCommand=et,h.InsertRowAfterCommand=rn,h.InsertRowBeforeCommand=sn,h.InsertRowCommand=Te,h.InsertRowMutation=fe,h.InsertRowMutationUndoFactory=Mt,h.InsertSheetCommand=dn,h.InsertSheetMutation=Ce,h.InsertSheetUndoMutationFactory=Ct,h.MAX_CELL_PER_SHEET_KEY=Yn,h.MoveColsCommand=yt,h.MoveColsMutation=We,h.MoveRangeCommand=Je,h.MoveRangeMutation=Be,h.MoveRowsCommand=pt,h.MoveRowsMutation=je,h.NORMAL_SELECTION_PLUGIN_NAME=x,h.OperatorType=G,h.RangeMergeUtil=ws,h.RemoveColCommand=nt,h.RemoveColMutation=we,h.RemoveMergeUndoMutationFactory=Q,h.RemoveNumfmtMutation=jt,h.RemoveRowCommand=tt,h.RemoveRowMutation=Me,h.RemoveSheetCommand=Ut,h.RemoveSheetMutation=Le,h.RemoveSheetUndoMutationFactory=Xt,h.RemoveWorksheetMergeCommand=vn,h.RemoveWorksheetMergeMutation=W,h.ResetBackgroundColorCommand=Dn,h.ResetTextColorCommand=Tn,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=dr,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=cr,h.SelectionMoveType=xt,h.SetBackgroundColorCommand=En,h.SetBoldCommand=cs,h.SetBorderBasicCommand=Sn,h.SetBorderColorCommand=fn,h.SetBorderCommand=De,h.SetBorderPositionCommand=Cn,h.SetBorderStyleCommand=In,h.SetColHiddenCommand=Mn,h.SetColHiddenMutation=Oe,h.SetColVisibleMutation=Ae,h.SetColWidthCommand=At,h.SetFontFamilyCommand=gs,h.SetFontSizeCommand=hs,h.SetFrozenCommand=pn,h.SetFrozenMutation=he,h.SetFrozenMutationFactory=bt,h.SetHorizontalTextAlignCommand=An,h.SetItalicCommand=ds,h.SetNumfmtMutation=rt,h.SetRangeValuesCommand=Ie,h.SetRangeValuesMutation=z,h.SetRangeValuesUndoMutationFactory=ce,h.SetRowHeightCommand=Fn,h.SetRowHiddenCommand=Un,h.SetRowHiddenMutation=Pe,h.SetRowVisibleMutation=Ne,h.SetSelectedColsVisibleCommand=Rn,h.SetSelectedRowsVisibleCommand=yn,h.SetSelectionsOperation=q,h.SetSpecificColsVisibleCommand=_t,h.SetSpecificRowsVisibleCommand=Tt,h.SetStrikeThroughCommand=ms,h.SetStyleCommand=K,h.SetTabColorCommand=kn,h.SetTabColorMutation=Fe,h.SetTextColorCommand=bn,h.SetTextRotationCommand=Pn,h.SetTextWrapCommand=Nn,h.SetUnderlineCommand=ls,h.SetVerticalTextAlignCommand=On,h.SetWorksheetActivateCommand=Et,h.SetWorksheetActiveOperation=He,h.SetWorksheetColWidthMutation=le,h.SetWorksheetColWidthMutationFactory=Dt,h.SetWorksheetHideCommand=Bn,h.SetWorksheetHideMutation=ve,h.SetWorksheetNameCommand=Nt,h.SetWorksheetNameMutation=st,h.SetWorksheetOrderCommand=Vn,h.SetWorksheetOrderMutation=$e,h.SetWorksheetRowAutoHeightMutation=kt,h.SetWorksheetRowAutoHeightMutationFactory=Rs,h.SetWorksheetRowHeightMutation=me,h.SetWorksheetRowIsAutoHeightCommand=Lt,h.SetWorksheetRowIsAutoHeightMutation=te,h.SetWorksheetShowCommand=Hn,h.SheetEditablePermission=Ue,h.alignToMergedCellsBorders=Ve,h.convertPrimaryWithCoordToPrimary=go,h.convertSelectionDataToRange=mr,h.createTopMatrixFromMatrix=Gn,h.createTopMatrixFromRanges=$n,h.enUS=Ks,h.factoryRemoveNumfmtUndoMutation=_s,h.factorySetNumfmtUndoMutation=Us,h.findAllRectangle=Bt,h.followSelectionOperation=de,h.getAddMergeMutationRangeByType=uo,h.getCellAtRowCol=Go,h.getCurrentSheetDisabled$=nr,h.getInsertRangeMutations=ft,h.getNormalSelectionStyle=lr,h.getPrimaryForRange=X,h.getRemoveRangeMutations=Rt,h.handleBaseInsertRange=ze,h.handleBaseMoveRowsCols=Ft,h.handleBaseRemoveRange=Ge,h.handleDefaultRangeChangeWithEffectRefCommands=zs,h.handleDeleteRangeMoveLeft=io,h.handleDeleteRangeMoveUp=ao,h.handleDeleteRangeMutation=qo,h.handleIRemoveCol=eo,h.handleIRemoveRow=to,h.handleInsertCol=oo,h.handleInsertRangeMoveDown=so,h.handleInsertRangeMoveRight=ro,h.handleInsertRangeMutation=zo,h.handleInsertRow=no,h.handleMoveCols=$t,h.handleMoveRange=Qn,h.handleMoveRows=Ht,h.rangeMerge=Vt,h.rotateRange=ge,h.runRefRangeMutations=mt,h.transformCellDataToSelectionData=gr,h.transformCellsToRange=it,h.zhCN=co,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});