@univerjs/sheets 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Ro=Object.defineProperty;var po=(n,e,o)=>e in n?Ro(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var x=(n,e,o)=>(po(n,typeof e!="symbol"?e+"":e,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),H=require("@wendellhu/redi"),_e=require("rxjs"),ft=require("@univerjs/engine-formula"),Mo=require("rxjs/operators"),wo=require("@univerjs/engine-render");var yo=Object.defineProperty,Uo=Object.getOwnPropertyDescriptor,_o=(n,e,o,t)=>{for(var r=t>1?void 0:t?Uo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&yo(e,o,r),r},bo=(n,e)=>(o,t)=>e(o,t,n);const z="normalSelectionPluginName";var un=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(un||{});exports.SelectionManagerService=class{constructor(e){x(this,"_selectionInfo",new Map);x(this,"_currentSelection",null);x(this,"_selectionMoveStart$",new _e.Subject);x(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());x(this,"_selectionMoving$",new _e.Subject);x(this,"selectionMoving$",this._selectionMoving$.asObservable());x(this,"_selectionMoveEnd$",new _e.BehaviorSubject(null));x(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());x(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:z,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=z,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:r},a)=>t===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(e){var a,i;if(e==null)return;const{pluginName:o,unitId:t,sheetId:r}=e;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(t))==null?void 0:i.get(r)}_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:r,sheetId:a,selectionDatas:i}=e;this._selectionInfo.has(t)||this._selectionInfo.set(t,new Map);const c=this._selectionInfo.get(t);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let m=u.get(a);m==null&&(m=[],u.set(a,m)),m.push(...i)}o&&this._refresh({pluginName:t,unitId:r,sheetId:a})}_replaceByParam(e){const{pluginName:o,unitId:t,sheetId:r,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 c=i.get(t);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.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)}};exports.SelectionManagerService=_o([bo(0,H.Inject(s.ThemeService))],exports.SelectionManagerService);const To=s.createInterceptorKey("CELL_CONTENT"),Eo=s.createInterceptorKey("PERMISSION"),be={CELL_CONTENT:To,PERMISSION:Eo};var Do=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,No=(n,e,o,t)=>{for(var r=t>1?void 0:t?Oo(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Do(e,o,r),r},Ao=(n,e)=>(o,t)=>e(o,t,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();x(this,"_interceptorsByName",new Map);x(this,"_commandInterceptors",[]);x(this,"_workbookDisposables",new Map);x(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(t=>{this._interceptWorkbook(t)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(t=>this._disposeWorkbookInterceptor(t)))),this.intercept(be.CELL_CONTENT,{priority:-1,handler(t,r){const a=r.worksheet.getCellRaw(r.row,r.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,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=t.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const t=this._commandInterceptors.map(r=>r.getMutations(o));return{undos:t.map(r=>r.undos).flat(),redos:t.map(r=>r.redos).flat()}}intercept(o,t){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(t),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,m;return((u=c.priority)!=null?u:0)-((m=i.priority)!=null?m:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),t)))}fetchThroughInterceptors(o){const t=o,r=this._interceptorsByName.get(t);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const t=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(m=>{const d=new s.DisposableCollection,l=m.registerCellContentInterceptor({getCell(g,h){return a.fetchThroughInterceptors(be.CELL_CONTENT)(c.getCellRaw(g,h),{unitId:r,subUnitId:u,row:g,col:h,worksheet:c,workbook:o})}});d.add(l),a._worksheetDisposables.set(Qt(r,c),d)})};o.getSheets().forEach(c=>i(c)),t.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),t.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),t.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const t=o.getUnitId(),r=this._workbookDisposables.get(t);r&&(r.dispose(),this._workbookDisposables.delete(t))}_disposeSheetInterceptor(o,t){const r=Qt(o,t),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=No([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Ao(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function Qt(n,e){return`${n}|${e.getSheetId()}`}const le=(n,e)=>{const{unitId:o,subUnitId:t,cellValue:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),m=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,h,v)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,h))||{},C=m.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,d.setValue(g,h,Po(S))}),{...e,options:{},cellValue:d.getMatrix()}};function Po(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 $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,e)=>{const{cellValue:o,subUnitId:t,unitId:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(t);if(!c)return!1;const u=c.getCellMatrix(),m=i.getStyles();return new s.ObjectMatrix(o).forValue((l,g,h)=>{if(!h)u==null||u.setValue(l,g,{});else{const v=u.getValue(l,g)||{},S=h.t===s.CellValueType.FORCE_STRING?h.t:ko(h.v===void 0?v.v:h.v);if(h.f!==void 0&&(v.f=h.f),h.si!==void 0&&(v.si=h.si),h.p!==void 0&&(v.p=h.p),h.v!==void 0&&(v.v=S===s.CellValueType.NUMBER?Number(h.v):S===s.CellValueType.BOOLEAN?h.v.toString().toUpperCase()==="TRUE"?1:0:h.v),v.v!==void 0&&(v.t=S),h.s!==void 0){const C=m.getStyleByCell(v);C==null&&delete v.s,typeof h.s=="string"&&(h.s=m.get(h.s));const I=Xe(C,h.s?h.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=m.setValue(I),!h.p&&v.p&&Vo(v.p,h.s?h.s:null)}u.setValue(l,g,s.Tools.removeNull(v))}}),!0}};function ko(n){return n===null?null:typeof n=="string"?jo(n)?s.CellValueType.NUMBER:Fo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function xo(n,e){return Lo(n,e)}function Lo(n,e){if(!e||!Object.keys(e).length)return n;const o=n||{};for(const t in e)t==="bd"?o[t]=Bo(o[t]||{},e[t]):t in o||(o[t]=null);return o}function Bo(n,e){if(!e||!Object.keys(e).length)return n;for(const o in e)o in n||(n[o]=null);return n}function Xe(n,e,o=!1){if(e===null)return e;if(e===void 0)return n;const t=s.Tools.deepClone(n)||{};if(t){for(const r in e)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in t&&r==="bd"?t[r]=Object.assign(t[r],e[r]):t[r]=e[r]);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 dn(n,e){return n.some(o=>o.startIndex===e)?dn(n,e+1):e}function Vo(n,e){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const t=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:m,ts:d={}}=c;if(o<u){const g={st:o,ed:u},h=Xe({},e,!0);h&&s.Tools.removeNull(h),s.Tools.isEmptyObject(h)||(g.ts=h),t.push(g)}const l=Xe(d,e,!0);l&&s.Tools.removeNull(l),s.Tools.isEmptyObject(l)?delete c.ts:c.ts=l,t.push(c),o=dn(r,m)}const a=n.body.dataStream.endsWith(`\r
2
- `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=Xe({},e,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),t.push(c)}n.body.textRuns=t}function Wo(n){return/^-?\d+(\.\d+)?$/.test(n)}function jo(n){return Wo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Fo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const rt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Ho(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:rt.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Ho(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const Rt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={subUnitId:m,unitId:c,cellValue:$o(d)},g=le(n,l),h=a.onCommandExecute({id:Rt.id}),v=[{id:$.id,params:l},...h.redos],S=[...h.undos,{id:$.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:v}),!0):!1}};function $o(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{v:null,p:null,f:null,si:null})}),e.getData()}const st={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const e=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),t=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=e.getCurrentUniverSheetInstance(),c=i.getUnitId(),m=i.getActiveSheet().getSheetId(),d=t.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l=[],g=[],h={subUnitId:m,unitId:c,cellValue:Go(d)},v=le(n,h);l.push({id:$.id,params:h}),g.push({id:$.id,params:v});const S=a.onCommandExecute({id:st.id});return l.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(l,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:l}),!0):!1}};function Go(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,{s:null})}),e.getData()}const pt=(n,e)=>({subUnitId:e.sheet.id,unitId:e.unitId,subUnitName:e.sheet.name}),Ce={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{sheet:t,index:r,unitId:a}=e,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(t.id,r,t):!1}},ln=(n,e)=>{const t=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=e,i=t.getSheetBySheetId(r).getConfig();return{index:t.getConfig().sheetOrder.findIndex(m=>m===r),sheet:i,unitId:a}},je={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:t,unitId:r}=e,a=o.getUniverSheetInstance(r);return a?a.removeSheet(t):!1}},mn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,e)=>{var S,C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.unitId)!=null?S:i,c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d=s.Tools.deepClone(m.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(m)+1,sheet:d,unitId:i},h=pt(n,g);return o.syncExecuteCommand(Ce.id,g)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:h}],redoMutations:[{id:Ce.id,params:g}]}),!0):!1}},Be={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,e)=>{const{from:o,to:t}=e;if(!o||!t)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(e.from.subUnitId),c=a.getSheetBySheetId(e.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),m=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,l,g)=>{u.setValue(d,l,g)}),new s.ObjectMatrix(t.value).forValue((d,l,g)=>{m.setValue(d,l,g)}),!0}},G={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(exports.SelectionManagerService);if(!e)return!1;const{selections:t,type:r}=e;return o.replace(t,r),!0}};function Fe(n,e,o=!0){const t=e.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(t.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const m={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,m)||r.push(m)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Fe(a,e,o):a}function zo(n,e,o){let t=null;return o.getMatrixWithMergedCells(n,e,n,e).forValue((a,i,c)=>(t={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),t||{actualColumn:e,actualRow:n,startRow:n,startColumn:e,endRow:n,endColumn:e,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function qo(n,e,o){const{startRow:t,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(t)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=e),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o),n}function X(n,e){const o=Number.isNaN(n.startRow)?0:n.startRow,t=Number.isNaN(n.startColumn)?0:n.startColumn,r=e.getMergedCell(o,t);return r?{...r,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:t,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:t,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const me=(n,e,o)=>({id:G.id,params:{unitId:e.getUnitId(),subUnitId:o.getSheetId(),pluginName:z,selections:[{range:n,primary:X(n,o)}]}}),gn="sheet.command.move-range",it={type:s.CommandType.COMMAND,id:gn,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId(),d=Mt(n,{unitId:u,subUnitId:m,range:e.fromRange},{unitId:u,subUnitId:m,range:e.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:it.id,params:{...e}}),h=[...d.redos,...g.redos,{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,selections:[{range:e.toRange,primary:X(e.toRange,c)}]}}],v=[{id:G.id,params:{unitId:u,subUnitId:m,pluginName:z,selections:[{range:e.fromRange,primary:X(e.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v,redoMutations:h}),!0):!1}};function Mt(n,e,o,t=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=e,{range:m,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),h=g==null?void 0:g.getSheetBySheetId(d),v=g==null?void 0:g.getSheetBySheetId(c),S=h==null?void 0:h.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(h&&v&&S&&C){const I=Fe(m,h,!1);if(!s.Rectangle.equals(m,I)&&!t)return null;const f=new s.ObjectMatrix,M=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{f.setValue(y,T,C.getValue(y,T)),M.setValue(y,T,null)});const R=new s.ObjectMatrix;s.Range.foreach(m,(y,T)=>{R.setValue(y,T,S.getValue(y,T))});const U=new s.ObjectMatrix;s.Range.foreach(i,(y,T)=>{const D=s.cellToRange(y,T),k=s.Rectangle.getRelativeRange(D,i),p=s.Rectangle.getPositionRange(k,m);U.setValue(p.startRow,p.startColumn,C.getValue(y,T))});const w={from:{value:M.getMatrix(),subUnitId:c},to:{value:U.getMatrix(),subUnitId:d},unitId:u},_={from:{value:f.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:Be.id,params:w}),a.push({id:Be.id,params:_})}return{redos:r,undos:a}}const Ie={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),{value:c,range:u,unitId:m=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=e,l=u?[u]:a.getSelectionRanges();if(!l||!l.length)return!1;const g=new s.ObjectMatrix;let h;if(s.Tools.isArray(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=0;T<=_-U;T++)for(let D=0;D<=y-w;D++)g.setValue(T+U,D+w,c[T][D])}else if(s.isICellData(c))for(let R=0;R<l.length;R++){const{startRow:U,startColumn:w,endRow:_,endColumn:y}=l[R];for(let T=U;T<=_;T++)for(let D=w;D<=y;D++)g.setValue(T,D,c)}else h=c;const v={subUnitId:d,unitId:m,cellValue:h!=null?h:g.getMatrix()},S=le(n,v);if(!i.fetchThroughInterceptors(be.PERMISSION)(null,{id:Ie.id,params:v}))return!1;const C=o.syncExecuteCommand($.id,v),{undos:I,redos:f}=i.onCommandExecute({id:Ie.id,params:{...v,range:l}}),M=s.sequenceExecute([...f],o);return C&&M.result?(t.pushUndoRedo({unitID:m,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}};function wt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=e,m=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),l=m.getUniverSheetInstance(r),g=l==null?void 0:l.getSheetBySheetId(a);if(g){const h=g.getCellMatrix(),v=h.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let M,R;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,v.endRow);let _=0;for(let T=i.startRow;T<=w;T++){const D=h.getRow(T),k=D?s.getArrayLength(D)-1:0;_=Math.max(_,k)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const y=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:M.startColumn+y,endRow:w,endColumn:M.endColumn+y}}else{const w=Math.min(i.endColumn,v.endColumn),_=v.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const y=i.endRow-i.startRow+1;R={startRow:M.startRow+y,startColumn:i.startColumn,endRow:M.endRow+y,endColumn:w}}const U=Mt(n,{unitId:r,subUnitId:a,range:M},{unitId:r,subUnitId:a,range:R},!0);U&&(o.push(...U.redos),t.push(...U.undos))}if(Object.entries(u).length===0)for(let M=i.startRow;M<=i.endRow;M++){u[M]||(u[M]={});for(let R=i.startColumn;R<=i.endColumn;R++)u[M][R]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=le(n,S),{undos:I,redos:f}=d.onCommandExecute({id:Ie.id,params:{...S,range:i}});o.push({id:$.id,params:S},...f),t.push({id:$.id,params:C},...I)}return{redo:o,undo:t}}function yt(n,e){const o=[],t=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=e,u=n.get(s.IUniverInstanceService),m=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),l=d==null?void 0:d.getSheetBySheetId(a);if(l){const g=l.getCellMatrix(),h=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:Jo([i])},S=le(n,v),C=m.onCommandExecute({id:Ie.id,params:v});if(o.push({id:$.id,params:v},...C.redos),t.push(...C.undos,{id:$.id,params:S}),i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I=null,f=null;if(c===s.Dimension.COLUMNS&&i.endColumn<h.endColumn){const M=Math.min(i.endRow,h.endRow);let R=0;for(let w=i.startRow;w<=M;w++){const _=g.getRow(w),y=_?s.getArrayLength(_)-1:0;R=Math.max(R,y)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:R};const U=i.endColumn-i.startColumn+1;f={startRow:i.startRow,startColumn:I.startColumn-U,endRow:M,endColumn:I.endColumn-U}}if(c===s.Dimension.ROWS&&i.endRow<h.endRow){const M=Math.min(i.endColumn,h.endColumn),R=h.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:R,endColumn:M};const U=i.endRow-i.startRow+1;f={startRow:I.startRow-U,startColumn:i.startColumn,endRow:I.endRow-U,endColumn:M}}if(I&&f){const M=Mt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:f},!0);M&&(o.push(...M.redos),t.push(...M.undos))}}}return{redo:o,undo:t}}function Yo(n,e,o,t,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:m}=e;if(r===s.Dimension.ROWS){const d=c-i+1;for(let l=o;l>=i;l--)for(let g=u;g<=m;g++){const h=n.getValue(l,g);h==null?n.realDeleteValue(l+d,g):n.setValue(l+d,g,h)}for(let l=c;l>=i;l--)for(let g=u;g<=m;g++)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}else if(r===s.Dimension.COLUMNS){const d=m-u+1;for(let l=i;l<=c;l++)for(let g=t;g>=u;g--){const h=n.getValue(l,g);h==null?n.realDeleteValue(l,g+d):n.setValue(l,g+d,h)}for(let l=i;l<=c;l++)for(let g=m;g>=u;g--)a&&a[l]&&a[l][g]?n.setValue(l,g,a[l][g]):n.realDeleteValue(l,g)}}function Ko(n,e,o,t,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=e,m=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let l=a;l<=o;l++)for(let g=c;g<=u;g++){const h=n.getValue(l+m,g);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}else if(r===s.Dimension.COLUMNS)for(let l=a;l<=i;l++)for(let g=c;g<=t;g++){const h=n.getValue(l,g+d);h==null?n.realDeleteValue(l,g):n.setValue(l,g,h)}}function Jo(n){const e=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:t,startColumn:r,endRow:a,endColumn:i}=o;for(let c=t;c<=a;c++)for(let u=r;u<=i;u++)e.setValue(c,u,null)}),e.getData()}const hn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:hn,handler:async(n,e)=>{var M;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.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=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:at.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},vn="sheet.command.delete-range-move-up",ct={type:s.CommandType.COMMAND,id:vn,handler:async(n,e)=>{var M;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.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=r.getUniverSheetInstance(c);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const g={range:m,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:ct.id,params:{range:m}}),{redo:v,undo:S}=yt(n,g),C=[...v],I=[...S];return C.push(...h.redos),C.push(me(m,d,l)),I.push(...h.undos),await s.sequenceExecute(C,o).result?(t.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Ut=(n,e)=>{if(n.get(s.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:s.CommandType.MUTATION,handler:(n,e)=>{var v;const{unitId:o,subUnitId:t,range:r,rowInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(t);if(u==null)throw new Error("worksheet is null error!");const m=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},l=r.startRow,g=r.endRow-r.startRow+1;for(let S=l;S<l+g;S++)a?s.insertMatrixArray(S,(v=a[S-r.startRow])!=null?v:d,m):s.insertMatrixArray(S,d,m);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},_t=(n,e)=>{if(n.get(s.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:s.CommandType.MUTATION,handler:(n,e)=>{var v;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=e,m=a.getColumnData(),d=i.startColumn,l=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+l;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(v=c[S-i.startColumn])!=null?v:C,m):s.insertMatrixArray(S,C,m)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,l),!0}},Xo=(n,e)=>{const r=e.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},pe={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},Zo=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},m=e.range,d=s.sliceMatrixArray(m.startColumn,m.endColumn,c),l=s.concatMatrixArray(u,d);return{unitId:e.unitId,subUnitId:e.subUnitId,range:e.range,colInfo:l}},Me={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=e.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},Qo="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,e)=>{var D;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,M=Math.max(f+(d.endRow-d.startRow+1)-C.endRow,0);if(M>0){const k=d.startRow-1,p=g.getRowHeight(k),q={unitId:u,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+M,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:p,hd:s.BooleanNumber.FALSE}))};h.push({id:fe.id,params:q});const ge=Ut(n,q);v.push({id:pe.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);q&&(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:ut.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o)?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Sn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Sn,handler:async(n,e)=>{var D;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ILogService),i=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),m=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=e==null?void 0:e.range;if(d||(d=(D=i.getLast())==null?void 0:D.range),!d)return!1;const l=r.getUniverSheetInstance(u);if(!l)return!1;const g=l.getSheetBySheetId(m);if(!g)return!1;const h=[],v=[],S=g.getCellMatrix(),C=S.getDataRange(),f=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,M=Math.max(f+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(M>0){const k=d.startColumn-1,p=g.getColumnWidth(k),q={unitId:u,subUnitId:m,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:p,hd:s.BooleanNumber.FALSE}))};h.push({id:Re.id,params:q});const ge=_t(n,q);v.push({id:Me.id,params:ge})}const R={};s.Range.foreach(d,(k,p)=>{const q=g.getCell(k,p);!q||!q.s||(R[k]||(R[k]={}),R[k][p]={s:q.s})});const U={range:d,subUnitId:m,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:w,undo:_}=wt(n,U);h.push(...w),v.push(..._);const y=c.onCommandExecute({id:dt.id,params:{range:d}});return h.push(...y.redos),h.push(me(d,l,g)),v.push(...y.undos),s.sequenceExecute(h,o).result?(t.pushUndoRedo({unitID:u,undoMutations:v.reverse(),redoMutations:h}),!0):!1}},Cn="sheet.command.insert-row",Ne={type:s.CommandType.COMMAND,id:Cn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(e.unitId),c=i.getSheetBySheetId(e.subUnitId),{range:u,direction:m,unitId:d,subUnitId:l}=e,{startRow:g,endRow:h}=u,v=m===s.Direction.UP?g:g-1,S=c.getRowHeight(v),C={unitId:d,subUnitId:l,range:u,rowInfo:new Array(h-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Ut(n,C),f=a.onCommandExecute({id:Ne.id,params:e});return s.sequenceExecute([{id:fe.id,params:C},...f.redos,me(u,i,c)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...f.undos,{id:pe.id,params:I}],redoMutations:[{id:fe.id,params:C},...f.redos]}),!0):!1}},In={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(h=>h.range);let t;if((o==null?void 0:o.length)===1)t=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={};s.Range.foreach(t,(h,v)=>{const S=i.getCell(h,v);!S||!S.s||(d[h]||(d[h]={}),d[h][v]={s:S.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:t.startRow,endRow:t.startRow+m-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(Ne.id,l)}},fn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var l;const o=(l=n.get(exports.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(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endRow-t.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:t.endRow+1,endRow:t.endRow+m,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Ne.id,d)}},Rn="sheet.command.insert-col",Ae={type:s.CommandType.COMMAND,id:Rn,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:m,cellValue:d}=e,{startColumn:l,endColumn:g}=e.range,h=r.getUniverSheetInstance(e.unitId),v=h.getSheetBySheetId(e.subUnitId),S=c===s.Direction.LEFT?l:l-1,C=v.getColumnWidth(S),I={unitId:m,subUnitId:u,range:i,colInfo:new Array(g-l+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},f=_t(n,I);e.unitId,e.subUnitId,e.range,s.Dimension.COLUMNS;const M=a.onCommandExecute({id:Ae.id,params:e});return s.sequenceExecute([{id:Re.id,params:I},...M.redos,me(i,h,v)],o).result?(t.pushUndoRedo({unitID:e.unitId,undoMutations:[...M.undos,{id:Me.id,params:f}],redoMutations:[{id:Re.id,params:I},...M.redos]}),!0):!1}},pn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={};s.Range.foreach(t,(g,h)=>{const v=i.getCell(g,h);!v||!v.s||(d[g]||(d[g]={}),d[g][h]={s:v.s})});const l={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:t.startColumn,endColumn:t.startColumn+m-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(Ae.id,l)}},Mn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let t;if((o==null?void 0:o.length)===1)t=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),m=t.endColumn-t.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:t.endColumn+1,endColumn:t.endColumn+m,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Ae.id,d)}},wn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,e)=>{var h,v;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=(h=e==null?void 0:e.unitId)!=null?h:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,m=s.mergeWorksheetSnapshotWithDefault({});e?(u=(v=e.index)!=null?v:u,e.sheet?m=e.sheet:(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(m.id=s.Tools.generateRandomId(),m.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:m,unitId:i},l=pt(n,d);return o.syncExecuteCommand(Ce.id,d)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:je.id,params:l}],redoMutations:[{id:Ce.id,params:d}]}),!0):!1}};function er(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Ve={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const m=r.startRow,d=r.endRow-r.startRow+1,l=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveRows(m,d,l),!0}};function tr(n,e){const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:t,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:t,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const We={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,sourceRange:r,targetRange:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(t);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const m=r.startColumn,d=r.endColumn-r.startColumn+1,l=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(m,d,l,g),u.getCellMatrix().moveColumns(m,d,l),!0}};function nr(n,e){return e.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function or(n,e){return e.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",bt={id:yn,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=e,i=t==null?void 0:t.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(nr(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startRow:a,endRow:a+v.endRow-v.startRow},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=er(n,f),U=a-r<0,w=v.endRow-v.startRow+1,_=U?I:{...I,startRow:I.startRow-w,endRow:I.endRow-w},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:bt.id,params:e}),p=[{id:Ve.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:Ve.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0):!1}},Un="sheet.command.move-cols",Tt={id:Un,type:s.CommandType.COMMAND,handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=e,i=t==null?void 0:t.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),m=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!m)return!1;const d=m.getActiveSheet();if(!d)return!1;const l=m.getUnitId(),g=d.getSheetId(),h=n.get(s.ErrorService),v=i[0].range,S=i[0].primary,C=Fe(v,d,!1);if(!s.Rectangle.equals(v,C))return h.emit("Only part of a merged cell is selected."),!1;if(or(a,d))return h.emit("Across a merged cell."),!1;const I={...v,startColumn:a,endColumn:a+v.endColumn-v.startColumn},f={unitId:l,subUnitId:g,sourceRange:v,targetRange:I},M=tr(n,f),R=v.endColumn-v.startColumn+1,_=a-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:l,subUnitId:g,pluginName:z,selections:[{range:_,primary:X(_,d),style:null}]},T={unitId:l,subUnitId:g,pluginName:z,selections:[{range:v,primary:S,style:null}]},D=n.get(s.ICommandService),k=c.onCommandExecute({id:Tt.id,params:e}),p=[{id:We.id,params:f},{id:G.id,params:y},...k.redos],q=[{id:We.id,params:M},{id:G.id,params:T},...k.undos];return s.sequenceExecute(p,D).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:q,redoMutations:p}),!0}},_n="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:_n,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Xo(d,c),g=t.onCommandExecute({id:lt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:pe.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:fe.id,params:l}],redoMutations:[{id:pe.id,params:d},...g.redos]}),!0):!1}},bn="sheet.command.remove-col",mt={type:s.CommandType.COMMAND,id:bn,handler:async(n,e)=>{var S;const o=n.get(exports.SelectionManagerService),t=n.get(exports.SheetInterceptorService);let r=e==null?void 0:e.range;if(r||(r=(S=o.getLast())==null?void 0:S.range),!r)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),m=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:m,range:r},l=Zo(n,d),g=t.onCommandExecute({id:mt.id,params:{range:r}}),h=n.get(s.ICommandService);return s.sequenceExecute([{id:Me.id,params:d},...g.redos,me(r,i,c)],h).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...g.undos,{id:Re.id,params:l}],redoMutations:[{id:Me.id,params:d},...g.redos]}),!0):!1}},Et={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,e)=>{var I,f;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(I=e.unitId)!=null?I:i,c=(f=e.subUnitId)!=null?f:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(m);u.getConfig().sheetOrder[d+1];const l={subUnitId:c,unitId:i,subUnitName:m.getName()},g=ln(n,l),h=a.onCommandExecute({id:Et.id,params:{unitId:i,subUnitId:c}}),v=[{id:je.id,params:l},...h.redos],S=[...h.undos,{id:Ce.id,params:g}];return s.sequenceExecute(v,o)?(t.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:v}),!0):!1}},ie=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},Q=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=e.ranges,u=[];for(let m=0;m<c.length;m++)for(let d=i.length-1;d>=0;d--){const l=i[d],g=c[m];s.Rectangle.intersects(l,g)&&u.push(i[d])}return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:u}},B={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=e.ranges;for(let u=0;u<c.length;u++)for(let m=i.length-1;m>=0;m--){const d=i[m],l=c[u];s.Rectangle.intersects(d,l)&&i.splice(m,1)}return!0}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a};let l=!1;const g=m.getConfig().mergeData;if(a.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(l=!0)})}),!l)return!1;const h=Q(n,d);return o.syncExecuteCommand(B.id,h)?(t.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:h}],redoMutations:[{id:B.id,params:h}]}),!0):!1}};class we{constructor(){x(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});x(this,"_borderInfo$",new _e.BehaviorSubject(this._borderInfo));x(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 rr(n,e,o){const t=e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance();if(!t)throw new Error;const r=o?t.getSheetBySheetId(o):t.getActiveSheet();if(!r)throw new Error;return{workbook:t,worksheet:r,unitId:e!=null?e:t.getUnitId(),subUnitId:o!=null?o:r.getSheetId()}}function qe(n,e){const{startRow:o,startColumn:t,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=t;c<=a;c++)e(i,c)}const En={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,e)=>{const{unitId:o,subUnitId:t,value:r}=e,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),m=n.get(we);return m.setType(a),m.setColor(i),m.setStyle(c),u.executeCommand(Pe.id,{unitId:o,subUnitId:t})}},Dn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,e)=>{if(!e.value)return!1;const o=n.get(s.ICommandService);return n.get(we).setType(e.value),o.executeCommand(Pe.id)}},On={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setStyle(e.value),o.executeCommand(Pe.id)}},Nn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService);return n.get(we).setColor(e.value),o.executeCommand(Pe.id)}},Pe={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(we),{worksheet:c,unitId:u,subUnitId:m}=rr(r,e==null?void 0:e.unitId,e==null?void 0:e.subUnitId),d=a.getSelectionRanges(),l=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:h,type:v,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=v===s.BorderType.TOP||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,I=v===s.BorderType.LEFT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,f=v===s.BorderType.BOTTOM||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,M=v===s.BorderType.RIGHT||v===s.BorderType.ALL||v===s.BorderType.OUTSIDE,R=v===s.BorderType.VERTICAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,U=v===s.BorderType.HORIZONTAL||v===s.BorderType.ALL||v===s.BorderType.INSIDE,w=v.indexOf("tlbr")>-1,_=v.indexOf("tlbc")>-1,y=v.indexOf("tlmr")>-1,T=v.indexOf("bltr")>-1,D=v.indexOf("mltr")>-1,k=v.indexOf("bctr")>-1,p=d[0],q={startRow:p.startRow-1,startColumn:p.startColumn,endRow:p.startRow-1,endColumn:p.endColumn},ge={startRow:p.startRow,startColumn:p.startColumn-1,endRow:p.endRow,endColumn:p.startColumn-1},ee={startRow:p.endRow+1,startColumn:p.startColumn,endRow:p.endRow+1,endColumn:p.endColumn},qt={startRow:p.startRow,startColumn:p.endColumn+1,endRow:p.endRow,endColumn:p.endColumn+1},Yt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.startRow,endColumn:p.endColumn},Kt={startRow:p.startRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.startColumn},Jt={startRow:p.endRow,startColumn:p.startColumn,endRow:p.endRow,endColumn:p.endColumn},Xt={startRow:p.startRow,startColumn:p.endColumn,endRow:p.endRow,endColumn:p.endColumn},A=new s.ObjectMatrix,j={s:g,cl:{rgb:h}},ze=(O,b)=>{let P=null;return l.forEach(K=>{s.Rectangle.intersects(K,{startColumn:b,endColumn:b,startRow:O,endRow:O})&&(P=K)}),P};function V(O,b,P){O.startRow<0||O.startColumn<0||qe(O,(K,te)=>{var E,ke;const J=ze(K,te);let Z=b;if(J&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(P){const ne=s.Tools.deepClone((E=A.getValue(J.startRow,J.startColumn))==null?void 0:E.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(P){const ne=s.Tools.deepClone((ke=A.getValue(K,te))==null?void 0:ke.s);Z=ne!=null&&ne.bd?Object.assign(ne.bd,b):b}A.setValue(K,te,{s:{bd:Z}})}})}C&&(V(q,{b:null}),V(Yt,{t:s.Tools.deepClone(j)},!0)),f&&(V(ee,{t:null}),V(Jt,{b:s.Tools.deepClone(j)},!0)),I&&(V(ge,{r:null}),V(Kt,{l:s.Tools.deepClone(j)},!0)),M&&(V(qt,{l:null}),V(Xt,{r:s.Tools.deepClone(j)},!0)),w&&V(p,{tl_br:s.Tools.deepClone(j)},!0),_&&V(p,{tl_bc:s.Tools.deepClone(j)},!0),y&&V(p,{tl_mr:s.Tools.deepClone(j)},!0),T&&V(p,{bl_tr:s.Tools.deepClone(j)},!0),D&&V(p,{ml_tr:s.Tools.deepClone(j)},!0),k&&V(p,{bc_tr:s.Tools.deepClone(j)},!0),R&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(P.startColumn!==p.startColumn){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==p.endColumn){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==p.startColumn){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),U&&qe(p,(O,b)=>{var K,te,J,Z;const P=ze(O,b);if(P){if(P.endRow!==p.endRow){const E=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(P.startRow!==p.startRow){const E=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(O!==p.endRow){const E=(J=A.getValue(O,b))==null?void 0:J.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(O!==p.startRow){const E=(Z=A.getValue(O,b))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!C&&!f&&!I&&!M&&!R&&!U&&!w&&!_&&!y&&!T&&!D&&!k&&(V(q,{b:null}),V(Yt,{t:null},!0),V(ee,{t:null}),V(Jt,{b:null},!0),V(ge,{r:null}),V(Kt,{l:null},!0),V(qt,{l:null}),V(Xt,{r:null},!0),V(p,{tl_br:null},!0),V(p,{tl_bc:null},!0),V(p,{tl_mr:null},!0),V(p,{bl_tr:null},!0),V(p,{ml_tr:null},!0),V(p,{bc_tr:null},!0),qe(p,(O,b)=>{var K,te,J,Z,E,ke,ne,Zt;const P=ze(O,b);if(P){if(P.endColumn!==p.endColumn){const N=(K=A.getValue(P.startRow,P.startColumn))==null?void 0:K.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(P.startColumn!==p.startColumn){const N=(te=A.getValue(P.startRow,P.startColumn))==null?void 0:te.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(P.endRow!==p.endRow){const N=(J=A.getValue(P.startRow,P.startColumn))==null?void 0:J.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(P.startRow!==p.startRow){const N=(Z=A.getValue(P.startRow,P.startColumn))==null?void 0:Z.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}else{if(b!==p.endColumn){const N=(E=A.getValue(O,b))==null?void 0:E.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:null}):{r:null}}})}if(b!==p.startColumn){const N=(ke=A.getValue(O,b))==null?void 0:ke.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:null}):{l:null}}})}if(O!==p.endRow){const N=(ne=A.getValue(O,b))==null?void 0:ne.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:null}):{b:null}}})}if(O!==p.startRow){const N=(Zt=A.getValue(O,b))==null?void 0:Zt.s;A.setValue(O,b,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:null}):{t:null}}})}}}));const ht={unitId:u,subUnitId:m,cellValue:A.getData()},fo=le(n,ht);return o.syncExecuteCommand($.id,ht)?(t.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:fo}],redoMutations:[{id:$.id,params:ht}]}),!0):!1}},sr=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Te={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},ir=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},Ee={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!t)return!1;const r=t.getSheetBySheetId(e.subUnitId).getColumnManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Dt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),i={unitId:o,subUnitId:t,ranges:r},c=ir(n,i),u={unitId:o,subUnitId:t,pluginName:z,selections:r.map(g=>({range:g,primary:X(g,a),style:null}))},m={unitId:o,subUnitId:t,pluginName:z,selections:kn(r).map(g=>({range:g,primary:X(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ee.id,params:i},{id:G.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Te.id,params:c},{id:G.id,params:m}],redoMutations:[{id:Ee.id,params:i},{id:G.id,params:u}]}),!0}},An={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Dt.id,{unitId:i,subUnitId:c,ranges:u})}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var h;const o=(h=n.get(exports.SelectionManagerService).getSelections())==null?void 0:h.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},m={unitId:i,subUnitId:c,pluginName:z,selections:kn(o).map(v=>({range:v,primary:X(v,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:z,selections:o.map(v=>({range:v,primary:X(v,a),style:null}))},l=n.get(s.ICommandService);if(s.sequenceExecute([{id:Te.id,params:u},{id:G.id,params:m}],l).result){const v=n.get(s.IUndoRedoService),S=sr(n,u);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Ee.id,params:S},{id:G.id,params:d}],redoMutations:[{id:Te.id,params:u},{id:G.id,params:m}]}),!0}return!1}};function kn(n){return ar(n).map(o=>{const t=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:t,endColumn:t}})}function ar(n){const e=[];let o;return n.sort((t,r)=>t.startColumn-r.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 Ot=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:e.unitId,subUnitId:e.subUnitId,...i}},he={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:m}=e;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:m},!0}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:m,startRow:d,xSplit:l,ySplit:g}=e;if(d>=u.getRowCount()||m>=u.getColumnCount()||l>=u.getColumnCount()||g>=u.getRowCount())return!1;const h={unitId:a,subUnitId:i,...e},v=Ot(n,h);return o.syncExecuteCommand(he.id,h)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:he.id,params:v}],redoMutations:[{id:he.id,params:h}]}),!0):!1}},cr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const e=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),t=n.get(s.IUniverInstanceService),r=t.getCurrentUniverSheetInstance().getUnitId(),a=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=t.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},m=Ot(n,u);return e.syncExecuteCommand(he.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:he.id,params:m}],redoMutations:[{id:he.id,params:u}]}),!0):!1}},ur=(n,e)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId)==null)throw new Error("universheet is null error!");return{unitId:e.unitId,subUnitId:e.subUnitId,ranges:e.ranges}},De={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},dr=(n,e)=>{if(n.get(s.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-row-hidden",type:s.CommandType.MUTATION,handler:(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId).getRowManager();for(let a=0;a<e.ranges.length;a++){const i=e.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Nt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={unitId:o,subUnitId:t,ranges:r},m=ur(n,u),d={unitId:o,subUnitId:t,pluginName:z,selections:r.map(h=>({range:h,primary:X(h,c),style:null}))},l={unitId:o,subUnitId:t,pluginName:z,selections:Vn(r).map(h=>({range:h,primary:X(h,c),style:null}))};return s.sequenceExecute([{id:De.id,params:u},{id:G.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Oe.id,params:m},{id:G.id,params:l}],redoMutations:[{id:De.id,params:u},{id:G.id,params:d}]}),!0}},Ln={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var m;const e=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),t=(m=e.getSelections())==null?void 0:m.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(t!=null&&t.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=t.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Nt.id,{unitId:i,subUnitId:c,ranges:u})}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const e=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(S=e.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m)return!1;const d={unitId:i,subUnitId:c,ranges:a},l={unitId:i,subUnitId:c,pluginName:z,selections:Vn(a).map(C=>({range:C,primary:X(C,m),style:null}))},g={unitId:i,subUnitId:c,pluginName:z,selections:a.map(C=>({range:C,primary:X(C,m),style:null}))},h=dr(n,d);return s.sequenceExecute([{id:Oe.id,params:d},{id:G.id,params:l}],o).result&&t.pushUndoRedo({unitID:i,undoMutations:[{id:De.id,params:h},{id:G.id,params:g}],redoMutations:[{id:Oe.id,params:d},{id:G.id,params:l}]}),!0}};function Vn(n){return lr(n).map(o=>{const t=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:t,endRow:t}})}function lr(n){const e=[];let o;return n.sort((t,r)=>t.startRow-r.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 Y={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,e)=>{const o=n.get(s.IUniverInstanceService),{unitId:t=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=e,c=n.get(s.ICommandService),u=n.get(s.IUndoRedoService),m=n.get(exports.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(r))==null)return!1;const h=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R];for(let T=0;T<=w-U;T++)for(let D=0;D<=y-_;D++)h.setValue(T+U,D+_,{s:{[i.type]:i.value[T][D]}})}else for(let R=0;R<d.length;R++){const{startRow:U,endRow:w,startColumn:_,endColumn:y}=d[R],T={s:{[i.type]:i.value}};for(let D=U;D<=w;D++)for(let k=_;k<=y;k++)h.setValue(D,k,T)}const v={subUnitId:r,unitId:t,cellValue:h.getMatrix()},S=le(n,v),C=c.syncExecuteCommand($.id,v),{undos:I,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:e}),M=s.sequenceExecute([...f],c);return C&&M.result?(u.pushUndoRedo({unitID:t,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:v},...f]}),!0):!1}},mr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:t,actualColumn:r}=e.primary,i={style:{type:"bl",value:o.getRange(t,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,i)}},gr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;if(e.primary){const{startRow:a,startColumn:i}=e.primary;t=o.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},hr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.startRow,e.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},vr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const e=n.get(exports.SelectionManagerService).getLast();if(!e)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let t=!0;e.primary&&(t=!!o.getRange(e.primary.actualRow,e.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:t?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}};s.CommandType.COMMAND;const Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ff",value:e.value}};return o.executeCommand(Y.id,t)}},Cr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"fs",value:e.value}};return o.executeCommand(Y.id,t)}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"cl",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},jn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,e)=>{if(!e||!e.value)return!1;const o=n.get(s.ICommandService),t={style:{type:"bg",value:{rgb:e.value}}};return o.executeCommand(Y.id,t)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const e=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return e.executeCommand(Y.id,o)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"vt",value:e.value}};return o.executeCommand(Y.id,t)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"ht",value:e.value}};return o.executeCommand(Y.id,t)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,e)=>{if(!e)return!1;const o=n.get(s.ICommandService),t={style:{type:"tb",value:e.value}};return o.executeCommand(Y.id,t)}},qn={type:s.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:s.BooleanNumber.TRUE},t=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return t.executeCommand(Y.id,r)}},Ir=(n,e)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId).getSheetBySheetId(e.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(e),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().tabColor=e.color,!0):!1}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const m={color:e.value,unitId:a,subUnitId:i},d=Ir(n,m);return o.syncExecuteCommand(xe.id,m)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:m}]}),!0):!1}},He={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getWorksheets();for(const[,r]of t)if(r.getSheetId()===e.subUnitId)return o.setActiveSheet(r),!0;return!1}},fr=4,At={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,e,o)=>{var c,u;const t=n.get(s.ICommandService),r=n.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return e&&(a=(c=e.unitId)!=null?c:a,i=(u=e.subUnitId)!=null?u:i),new Promise(m=>{setTimeout(()=>{const d=t.syncExecuteCommand(He.id,{unitId:a,subUnitId:i},o);m(d)},fr)})}},Pt=(n,e)=>{const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=e.ranges;for(let u=0;u<c.length;u++){const m=c[u];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}},ce={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,e)=>{var u;const t=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(t==null)throw new Error("universheet is null error!");const r=t.getSheetBySheetId(e.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=e.ranges;for(let m=0;m<c.length;m++){const d=c[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=(u=e.colWidth[l-d.startColumn])!=null?u:a}}return!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),m=c.getUnitId(),d=u.getSheetId(),{anchorCol:l,deltaX:g}=e,v=u.getColumnWidth(l)+g,S=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,C=t.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:T,endColumn:D}=y;return T<=l&&l<=D})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let f;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),T=new Array(u.getColumnCount()).fill(void 0).map((D,k)=>({startRow:0,endRow:y-1,startColumn:k,endColumn:k}));f={subUnitId:d,unitId:m,colWidth:v,ranges:T}}else I===s.RANGE_TYPE.COLUMN?f={subUnitId:d,unitId:m,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:v}:f={subUnitId:d,unitId:m,colWidth:v,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const M=Pt(n,f),R=r.syncExecuteCommand(ce.id,f),{undos:U,redos:w}=n.get(exports.SheetInterceptorService).onCommandExecute({id:kt.id,params:f}),_=s.sequenceExecute([...w],r);return R&&_.result&&a.pushUndoRedo({unitID:m,undoMutations:[{id:ce.id,params:M},...U],redoMutations:[{id:ce.id,params:f},...w]}),!0}},xt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),m={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:e.value},d=Pt(n,m),l=t.syncExecuteCommand(ce.id,m),{undos:g,redos:h}=n.get(exports.SheetInterceptorService).onCommandExecute({id:xt.id,params:m}),v=s.sequenceExecute([...h],t);return l&&v.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ce.id,params:d},...g],redoMutations:[{id:ce.id,params:m},...h]}),!0):!1}},Kn=(n,e)=>{const t=n.get(s.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:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().hidden=e.hidden,!0):!1}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,e)=>{var C;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(c=(C=e.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const m=u.getSheetBySheetId(c);if(!m||m.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const l={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=Kn(n,l);return u.getSheets().filter(I=>I.getConfig().hidden===s.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}},Rr=(n,e)=>{const t=n.get(s.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()}},tt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(o==null)return!1;const t=o.getSheetBySheetId(e.subUnitId);return t?(t.getConfig().name=e.name,!0):!1}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:e.name,unitId:i},m=Rr(n,u),d=a.onCommandExecute({id:Lt.id,params:e}),l=[{id:tt.id,params:u},...d.redos],g=[...d.undos,{id:tt.id,params:m}];return await s.sequenceExecute(l,o).result?(t.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:l}),!0):!1}},pr=(n,e)=>({...s.Tools.deepClone(e),toOrder:e.fromOrder,fromOrder:e.toOrder}),Le={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,e)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(e.unitId);if(!o)return!1;const t=o.getConfig();return t.sheetOrder.splice(e.fromOrder,1),t.sheetOrder.splice(e.toOrder,0,e.subUnitId),!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=e.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=e.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const d={fromOrder:c.getConfig().sheetOrder.indexOf(i),toOrder:e.order,unitId:a,subUnitId:i},l=pr(n,d);return o.syncExecuteCommand(Le.id,d)?(t.pushUndoRedo({unitID:a,undoMutations:[{id:Le.id,params:l}],redoMutations:[{id:Le.id,params:d}]}),!0):!1}},Mr=2e3,Zn=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(c==null)throw new Error("worksheet is null error!");const u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<l+1;g++){const h=m.getRowOrCreate(g);u[g]=h.h}return{unitId:o,subUnitId:t,ranges:r,rowHeight:u}},Bt=(n,e)=>{const{unitId:o,subUnitId:t,ranges:r}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(t),u={},m=c.getRowManager();for(const{startRow:d,endRow:l}of r)for(let g=d;g<=l;g++){const h=m.getRowOrCreate(g);u[g]=h.ia}return{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:u}},wr=(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t),u=[],m=c.getRowManager();for(const d of r){const{row:l}=d,{ah:g}=m.getRowOrCreate(l);u.push({row:l,autoHeight:g})}return{unitId:o,subUnitId:t,rowsAutoHeightInfo:u}},ue={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,rowHeight:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(l=a[v])!=null?l:m,S.h=Math.min(Mr,S.h)}return!0}},oe={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{var l;const{unitId:o,subUnitId:t,ranges:r,autoHeightInfo:a}=e,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(t);if(!u)return!1;const m=void 0,d=u.getRowManager();for(const{startRow:g,endRow:h}of r)for(let v=g;v<=h;v++){const S=d.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(l=a[v-g])!=null?l:m}return!0}},Vt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,e)=>{const{unitId:o,subUnitId:t,rowsAutoHeightInfo:r}=e,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(t);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:m,autoHeight:d}of r){const l=u.getRowOrCreate(m);l.ah=d}return!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections();if(!(t!=null&&t.length))return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:m,deltaY:d}=e,g=i.getRowHeight(m)+d,h=t.length===1&&t[0].range.rangeType===s.RANGE_TYPE.ALL,v=t.filter(_=>_.range.rangeType===s.RANGE_TYPE.ROW),S=h?s.RANGE_TYPE.ALL:v.some(({range:_})=>{const{startRow:y,endRow:T}=_;return y<=m&&m<=T})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const _=i.getRowCount(),y=new Array(i.getColumnCount()).fill(void 0).map((T,D)=>({startRow:D,endRow:D,startColumn:0,endColumn:_-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:v.map(_=>s.Rectangle.clone(_.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:m,endRow:m,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=Zn(n,C),f={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},M=Bt(n,f),R=n.get(s.ICommandService),U=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:ue.id,params:C},{id:oe.id,params:f}],R).result?(U.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:I},{id:oe.id,params:M}],redoMutations:[{id:ue.id,params:C},{id:oe.id,params:f}]}),!0):!1}},eo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,e)=>{const o=n.get(exports.SelectionManagerService),t=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),m=c.getActiveSheet().getSheetId(),d={subUnitId:m,unitId:u,ranges:i,rowHeight:e.value},l=Zn(n,d),g={unitId:u,subUnitId:m,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},h=Bt(n,g);return s.sequenceExecute([{id:ue.id,params:d},{id:oe.id,params:g}],t).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:l},{id:oe.id,params:h}],redoMutations:[{id:ue.id,params:d},{id:oe.id,params:g}]}),!0):!1}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,e)=>{const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:m}=e!=null?e:{},d=m!=null?[{startRow:m,endRow:m,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const l={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Bt(n,l),h=o.syncExecuteCommand(oe.id,l),{undos:v,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),C=s.sequenceExecute([...S],o);return h&&C.result?(t.pushUndoRedo({unitID:i,undoMutations:[{id:oe.id,params:g},...v],redoMutations:[{id:oe.id,params:l},...S]}),!0):!1}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,e)=>{var S;const o=n.get(s.ICommandService),t=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();e&&(i=(S=e.value)!=null?S:i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},l=Kn(n,d),g=o.syncExecuteCommand(ve.id,d),h={unitId:a,subUnitId:i},v=o.syncExecuteCommand(He.id,h);return g&&v?(t.pushUndoRedo({unitID:a,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:d}]}),!0):!1}},no=n=>{const e=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(t,r)=>{e.setValue(t,r,1)})}),e.forValue((o,t)=>{const r=e.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},oo=n=>{const e=n;return e.forValue((o,t)=>{const r=n.getValue(o-1,t);r&&e.setValue(o,t,r+1)}),e},en=n=>{const e={area:0},o=(t,r)=>e.area<t?(e.area=t,e.range=r,!0):!1;return n.forValue((t,r,a)=>{let i=1,c=a;o(i*c,{startRow:t-c+1,endRow:t,startColumn:r,endColumn:r});const u={startRow:t-c+1,endRow:t,startColumn:0,endColumn:r};for(let m=r-1;m>=0&&n.getValue(t,m);m--){c=Math.min(n.getValue(t,m)||0,c),i++;const d=c*i;u.startColumn=m,u.startRow=t-c+1,o(d,u)}}),e},yr=(n,e)=>(s.Range.foreach(e,(o,t)=>{n.realDeleteValue(o,t);let r=o+1,a=n.getValue(r,t)||0;for(;a>1;)n.setValue(r,t,a-1),r+=1,a=n.getValue(r,t)||0}),n),jt=n=>{const e=[];let o=en(n);for(;o.area>0;)o.range&&(e.push(o.range),yr(n,o.range)),o=en(n);return e},Ft=n=>{const e=no(n);return jt(e)};class Ur{constructor(){x(this,"_matrix",new s.ObjectMatrix)}add(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.setValue(t,r,1)})}),this}subtract(...e){return e.forEach(o=>{s.Range.foreach(o,(t,r)=>{this._matrix.realDeleteValue(t,r)})}),this}merge(){const e=oo(this._matrix);return jt(e)}}const _r=(n,e,o="")=>n.reduce((t,r)=>{const a=r&&r[e];return typeof a!="string"?(console.warn(r,`${e} is not string`),t):(a?(t[a]||(t[a]=[]),t[a].push(r)):t[o].push(r),t)},{}),br=(n=0)=>{let e=n;return function(){return e++}},ye=H.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Rendered,ye);const Tr=(n,e)=>{const o=n.get(ye),{values:t,unitId:r,subUnitId:a}=e,i=[],c=[],u=o.getModel(r,a)||void 0;Object.keys(t).forEach(d=>{t[d].ranges.forEach(g=>{s.Range.foreach(g,(h,v)=>{const S=o.getValue(r,a,h,v,u);S?i.push({pattern:S.pattern,type:S.type,row:h,col:v}):c.push({startColumn:v,endColumn:v,startRow:h,endRow:h})})})});const m=[];if(i.length){const d=nt(r,a,i);Object.keys(d.values).forEach(l=>{const g=d.values[l];g.ranges=Ft(g.ranges)}),m.push({id:gt.id,params:nt(r,a,i)})}return c.length&&m.push({id:Ht.id,params:{unitId:r,subUnitId:a,ranges:c}}),m},gt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{values:o,refMap:t}=e,r=n.get(ye),a=e.unitId,i=e.subUnitId,c=Object.keys(o).reduce((u,m)=>{const d=t[m],l=o[m].ranges;return d&&u.push({...d,ranges:l}),u},[]);return r.setValues(a,i,c),!0}},Ht={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,e)=>{if(!e)return!1;const{unitId:o,subUnitId:t,ranges:r}=e;return n.get(ye).deleteValues(o,t,r),!0}},Er=(n,e)=>{const o=n.get(ye),{ranges:t,unitId:r,subUnitId:a}=e,i=[],c=o.getModel(r,a)||void 0;if(t.forEach(m=>{s.Range.foreach(m,(d,l)=>{const g=o.getValue(r,a,d,l,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:l})})}),!i.length)return[];const u=nt(r,a,i);return Object.keys(u.values).forEach(m=>{const d=u.values[m];d.ranges=Ft(d.ranges)}),[{id:gt.id,params:u}]},nt=(n,e,o)=>{const t=_r(o,"pattern"),r={},a={},i=br();return Object.keys(t).forEach(c=>{const u=t[c],m=u[0],d=i();r[d]={pattern:c,type:m.type},u.forEach(l=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:e,refMap:r,values:a}},ro={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},so="maxCellsPerSheet",Dr=3e6;var Or=Object.defineProperty,Nr=Object.getOwnPropertyDescriptor,Ar=(n,e,o,t)=>{for(var r=t>1?void 0:t?Nr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Or(e,o,r),r},tn=(n,e)=>(o,t)=>e(o,t,n);let Ze=class extends s.Disposable{constructor(n,e){super(),this._commandService=n,this._configService=e,[L,rt,Rt,st,mn,at,ct,kt,Qn,Mn,pn,Ae,Re,ut,dt,fn,In,Ne,fe,wn,Ce,Tt,We,it,Be,bt,Ve,mt,Me,lt,pe,Et,je,Tn,B,Hn,jn,Fn,En,Nn,Pe,Dn,On,Pn,Te,Ee,xt,cr,xn,he,Gn,Ie,$,eo,Bn,Oe,De,An,Ln,Dt,Nt,Y,Yn,xe,Wn,qn,zn,$n,At,He,ce,Jn,ve,Lt,tt,Xn,Le,Vt,ue,Wt,oe,to,gt,G,Ht,ro].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(so,Dr)}};Ze=Ar([s.OnLifecycle(s.LifecycleStages.Starting,Ze),tn(0,s.ICommandService),tn(1,s.IConfigService)],Ze);var Pr=Object.defineProperty,kr=Object.getOwnPropertyDescriptor,xr=(n,e,o,t)=>{for(var r=t>1?void 0:t?kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Pr(e,o,r),r},Lr=(n,e)=>(o,t)=>e(o,t,n);let Qe=class extends s.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ft.SetFormulaCalculationResultMutation.id)return;const e=n.params,{unitData:o,unitOtherData:t}=e,r=Object.keys(o),a=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const l=u[d];if(l==null)return!0;const g={subUnitId:d,unitId:c,cellValue:l};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};Qe=xr([s.OnLifecycle(s.LifecycleStages.Ready,Qe),Lr(0,s.ICommandService)],Qe);var Br=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,Wr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Vr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Br(e,o,r),r},Ye=(n,e)=>(o,t)=>e(o,t,n);let et=class extends s.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 s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[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:r})})}};et=Wr([s.OnLifecycle(s.LifecycleStages.Ready,et),Ye(0,s.ICommandService),Ye(1,ft.IFeatureCalculationManagerService),Ye(2,s.IUniverInstanceService),Ye(3,H.Inject(ft.FormulaDataModel))],et);const W={MoveRangeCommandId:gn,InsertRowCommandId:Cn,InsertColCommandId:Rn,RemoveColCommandId:bn,RemoveRowCommandId:_n,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:Qo,InsertRangeMoveRightCommandId:Sn,MoveColsCommandId:Un,MoveRowsCommandId:yn};var F=(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))(F||{}),jr=Object.defineProperty,Fr=Object.getOwnPropertyDescriptor,Hr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Fr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&jr(e,o,r),r},vt=(n,e)=>(o,t)=>e(o,t,n);const $r=s.createInterceptorKey("MERGE_REDO"),Gr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,t,r){super();x(this,"interceptor",new s.InterceptorManager({MERGE_REDO:$r,MERGE_UNDO:Gr}));x(this,"_refRangeManagerMap",new Map);x(this,"_serializer",zr());x(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const t=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=nn(this._univerInstanceService),a=on(this._univerInstanceService),u=((()=>{switch(o.id){case W.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}],r,a)}case W.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}],r,a)}case W.MoveRangeCommandId:{const l=o;return this._checkRange([l.params.fromRange,l.params.toRange],r,a)}case W.InsertRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.InsertColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveRowCommandId:{const h={startRow:o.params.range.startRow,endRow:t.getRowCount()-1,startColumn:0,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.RemoveColCommandId:{const g=o.params.range.startColumn,h={startRow:0,endRow:t.getRowCount()-1,startColumn:g,endColumn:t.getColumnCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveUpCommandId:case W.InsertRangeMoveDownCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:g.endColumn,endRow:t.getRowCount()-1};return this._checkRange([h],r,a)}case W.DeleteRangeMoveLeftCommandId:case W.InsertRangeMoveRightCommandId:{const g=o.params.range||rn(this._selectionManagerService)[0],h={startRow:g.startRow,startColumn:g.startColumn,endColumn:t.getColumnCount()-1,endRow:g.endRow};return this._checkRange([h],r,a)}}})()||[]).reduce((l,g)=>{const h=g(o);return l.push(h),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)(u.redos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:m,undos:d}}})});x(this,"_checkRange",(o,t,r)=>{const a=sn(t,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(m=>{const d=i.get(m),l=this._serializer.deserialize(m);o.some(g=>s.Rectangle.intersects(g,l))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});x(this,"registerRefRange",(o,t,r,a)=>{const i=r||nn(this._univerInstanceService),c=a||on(this._univerInstanceService),u=sn(i,c),m=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const l=d.get(m);return l?l.add(t):d.set(m,new Set([t])),s.toDisposable(()=>{const g=d.get(m);g&&(g.delete(t),g.size||(d.delete(m),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=t,this._selectionManagerService=r,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})}};exports.RefRangeService=Hr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),vt(0,H.Inject(exports.SheetInterceptorService)),vt(1,H.Inject(s.IUniverInstanceService)),vt(2,H.Inject(exports.SelectionManagerService))],exports.RefRangeService);function nn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function on(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function rn(n){return n.getSelectionRanges()||[]}function sn(n,e){return`${n}_${e}`}function zr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],e="_";return{deserialize:o=>{const t=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(e).reduce((a,i,c)=>{const u=String(c);return i&&t[u]&&(a[t[u]]=i),a},{})},serialize:o=>n.reduce((t,r,a)=>{const i=o[r];return i!==void 0?`${t}${a>0?e:""}${i}`:`${t}`},"")}}const Ke=Number.MAX_SAFE_INTEGER,ae=n=>{const e={...n};return e.rangeType===s.RANGE_TYPE.COLUMN&&(e.startRow=0,e.endRow=Ke),e.rangeType===s.RANGE_TYPE.ROW&&(e.startColumn=0,e.endColumn=Ke),e.rangeType===s.RANGE_TYPE.ALL&&(e.startColumn=0,e.endColumn=Ke,e.startRow=0,e.endRow=Ke),e},de=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),$t=(n,e,o)=>{const t={...o},r={...e},a=(S,C)=>{const I=Math.max(S.start,C.start),f=Math.min(S.end,C.end);return f<I?null:{start:I,end:f}},i=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),m=e.start>n.start;if(m){const S=Math.min(n.end,e.start)-n.start+1;r.start-=S,r.end-=S}const d=i(n),l=d,g=a(n,t),h=g&&i(g)>=i(t);if(n.end<t.start)t.start-=d,t.end-=d;else if(g){const S=i(g);if(h){const C=c(t,n),I=u(C,r);t.start=I.start,t.end=I.end}else g.start>n.start||m?t.end-=S:(t.start-=d,t.end-=d+S)}const v=a(r,t);if(r.start<=t.start&&!h)t.start+=l,t.end+=l;else if(v){const S=r.start;if(i(v)<=i(t))return{step:t.start-o.start,length:0};S<t.start?(t.start+=l,t.end+=l):S>=t.start&&S<=t.end&&(t.end+=l,t.start+=l)}return{step:t.start-o.start,length:i(t)-i(o)}},Gt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:F.Delete}]:[{type:F.VerticalMove,step:c.step||0,length:c.length||0}]},zt=(n,e)=>{const{fromRange:o,toRange:t}=n.params||{};if(!t||!o)return[];const r=ae(o),a=ae(t),i=ae(e),c=$t({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:F.Delete}]:[{type:F.HorizontalMove,step:c.step||0,length:c.length||0}]},io=(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 r=[];if(s.Rectangle.contains(o,e)&&r.push({type:F.Delete}),s.Rectangle.contains(t,e)){r.push({type:F.Delete});const c=s.Rectangle.getRelativeRange(e,t),u=s.Rectangle.getPositionRange(c,o);return[{type:F.Set,range:u}]}return r},$e=(n,e)=>{const o=ae(n),t=ae(e),r=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=s.Rectangle.getIntersects(t,o);if(i)return{step:0,length:-r(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=s.Rectangle.getIntersects(t,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(t.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},ao=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},co=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},Ge=(n,e)=>{const o=ae(n),t=ae(e),r=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:r(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:r(o),length:0}}return{step:0,length:0}},uo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},lo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},mo=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(de(o),de(e)),{step:a,length:i}=r;return t.push({type:F.VerticalMove,step:a,length:i}),t},go=(n,e)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const t=[],r=Ge(o,e),{step:a,length:i}=r;return t.push({type:F.HorizontalMove,step:a,length:i}),t},ho=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(o,e);if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.HorizontalMove,step:i,length:c})}return t},vo=(n,e)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const t=[],r=$e(de(o),de(e));if(!r)t.push({type:F.Delete});else{const{step:i,length:c}=r;t.push({type:F.VerticalMove,step:i,length:c})}return t},ot=(n,e)=>{let o={...e};return n.forEach(t=>{switch(t.type){case F.Delete:{o=null;break}case F.HorizontalMove:{if(!o)return;o.startColumn+=t.step,o.endColumn+=t.step+(t.length||0);break}case F.VerticalMove:{if(!o)return;o.startRow+=t.step,o.endRow+=t.step+(t.length||0);break}case F.Set:{o=t.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},qr=(n,e)=>{let o=[];switch(e.id){case W.DeleteRangeMoveLeftCommandId:{o=ho(e,n);break}case W.DeleteRangeMoveUpCommandId:{o=vo(e,n);break}case W.InsertColCommandId:{o=lo(e,n);break}case W.InsertRangeMoveDownCommandId:{o=mo(e,n);break}case W.InsertRangeMoveRightCommandId:{o=go(e,n);break}case W.InsertRowCommandId:{o=uo(e,n);break}case W.MoveColsCommandId:{o=zt(e,n);break}case W.MoveRangeCommandId:{o=io(e,n);break}case W.MoveRowsCommandId:{o=Gt(e,n);break}case W.RemoveColCommandId:{o=ao(e,n);break}case W.RemoveRowCommandId:{o=co(e,n);break}}return ot(o,n)};var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Jr=(n,e,o,t)=>{for(var r=t>1?void 0:t?Kr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Yr(e,o,r),r},Ue=(n,e)=>(o,t)=>e(o,t,n);function So(n,e){let o=n;if(e!==void 0){const t=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(e===s.Dimension.ROWS)for(let m=a;m<=i;m++){const d={startRow:m,endRow:m,startColumn:c,endColumn:u};t.push(d)}else if(e===s.Dimension.COLUMNS)for(let m=c;m<=u;m++){const d={startRow:a,endRow:i,startColumn:m,endColumn:m};t.push(d)}}o=t}return o}exports.MergeCellController=class extends s.Disposable{constructor(e,o,t,r,a,i){super(),this._commandService=e,this._refRangeService=o,this._univerInstanceService=t,this._injector=r,this._sheetInterceptorService=a,this._selectionManagerService=i,this._onRefRangeChange(),this._initCommandInterceptor()}_initCommandInterceptor(){const e=this;this._sheetInterceptorService.interceptCommand({getMutations(o){switch(o.id){case rt.id:case st.id:{const t=e._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getUnitId(),a=t.getActiveSheet(),i=a.getSheetId(),c=a.getConfig().mergeData,u=e._selectionManagerService.getSelectionRanges();if(u&&u.length>0&&u.some(d=>c.some(l=>s.Rectangle.intersects(l,d)))){const d={unitId:r,subUnitId:i,ranges:u},l=Q(e._injector,d),g=[{id:B.id,params:d}],h=[{id:L.id,params:l}];return{redos:g,undos:h}}}}return{redos:[],undos:[]}}})}_onRefRangeChange(){const e=new s.DisposableCollection,o=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;e.dispose();const m=u.getMergeData(),d=l=>{switch(l.id){case it.id:{const g=l.params;return this._handleMoveRangeCommand(g,a,i)}case Ne.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertRowCommand(g,h,v)}case Ae.id:{const g=l.params,h=g.unitId||a,v=g.subUnitId||i;return this._handleInsertColCommand(g,h,v)}case mt.id:{const g=l.params;return this._handleRemoveColCommand(g,a,i)}case lt.id:{const g=l.params;return this._handleRemoveRowCommand(g,a,i)}case dt.id:{const g=l.params;return this._handleInsertRangeMoveRightCommand(g,a,i)}case ut.id:{const g=l.params;return this._handleInsertRangeMoveDownCommand(g,a,i)}case ct.id:{const g=l.params;return this._handleDeleteRangeMoveUpCommand(g,a,i)}case at.id:{const g=l.params;return this._handleDeleteRangeMoveLeftCommand(g,a,i)}case W.MoveColsCommandId:{const g=l.params;return this._handleMoveColsCommand(g,a,i)}case W.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===At.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;o(i.unitId,i.subUnitId)}}));const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t.getActiveSheet();o(t.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=Gt({id:W.MoveRowsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveColsCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=[...a.getMergeData()],c={unitId:o,subUnitId:t,ranges:i},u={unitId:o,subUnitId:t,ranges:[]};i.forEach(l=>{const g=zt({id:W.MoveColsCommandId,params:e},l),h=ot(g,l);h&&u.ranges.push(h)});const m=Q(this._injector,c),d=ie(this._injector,u);return{redos:[{id:B.id,params:c},{id:L.id,params:u}],undos:[{id:B.id,params:d},{id:L.id,params:m}]}}_handleMoveRangeCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=a.getMergeData(),c=i.filter(h=>s.Rectangle.intersects(h,e.fromRange)),u=i.filter(h=>s.Rectangle.intersects(h,e.toRange)),m=c.map(h=>s.Rectangle.getRelativeRange(h,e.fromRange)).map(h=>s.Rectangle.getPositionRange(h,e.toRange)),d=So(m).filter(h=>!i.some(v=>s.Rectangle.equals(h,v))),l=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:c}},{id:B.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:d}}],g=[{id:B.id,params:{unitId:o,subUnitId:t,ranges:d}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:u}},{id:L.id,params:{unitId:o,subUnitId:t,ranges:c}}];return{redos:l,undos:g}}_handleInsertRowCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,{startRow:c,endRow:u}=i,m=s.Tools.deepClone(a.getMergeData()),d=s.Tools.deepClone(a.getMergeData()).map(I=>{const f=u-c+1;return c>I.endRow?I:c<=I.startRow?s.Rectangle.moveVertical(I,f):(I.endRow+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleInsertColCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const{startColumn:c,endColumn:u}=r,m=s.Tools.deepClone(i.getMergeData()),d=s.Tools.deepClone(i.getMergeData()).map(I=>{const f=u-c+1;return c>I.endColumn?I:c<=I.startColumn?s.Rectangle.moveHorizontal(I,f):(I.endColumn+=f,I)}),l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:B.id,params:v},{id:L.id,params:g}];return{redos:S,undos:C}}_handleRemoveColCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const{range:i}=e,c=s.Tools.deepClone(a.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startColumn:C,endColumn:I}=S,f=I-C+1,{startColumn:M,endColumn:R}=i,U=R-M+1;if(R<S.startColumn)S.startColumn-=U,S.endColumn-=U;else{if(M>S.endColumn)continue;if(M<=S.startColumn&&R>=S.endColumn)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(i,S),_=w.endColumn-w.startColumn+1,y=w.endRow-w.startRow===0;_===f-1&&y?(c.splice(v,1),v--):S.endColumn-=w.endColumn-w.startColumn+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(a.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleRemoveRowCommand(e,o,t){const{range:r}=e,a=re(this._univerInstanceService,o);if(!a)return this._handleNull();const i=se(a,t);if(!i)return this._handleNull();const c=s.Tools.deepClone(i.getMergeData());for(let v=0;v<c.length;v++){const S=c[v],{startRow:C,endRow:I}=S,f=I-C+1,{startRow:M,endRow:R}=r,U=R-M+1;if(R<C)S.startRow-=U,S.endRow-=U;else{if(M>I)continue;if(M<=C&&R>=I)c.splice(v,1),v--;else{const w=s.Rectangle.getIntersects(r,S),_=w.endRow-w.startRow+1,y=w.endColumn-w.startColumn===0;_===f-1&&y?(c.splice(v,1),v--):S.endRow-=w.endRow-w.startRow+1}}}const u={unitId:o,subUnitId:t,ranges:s.Tools.deepClone(i.getMergeData())},m=Q(this._injector,u),d={unitId:o,subUnitId:t,ranges:c},l=ie(this._injector,d),g=[{id:B.id,params:u},{id:L.id,params:d}],h=[{id:B.id,params:l},{id:L.id,params:m}];return{redos:g,undos:h}}_handleInsertRangeMoveRightCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn+w,endRow:S.endRow,endColumn:S.endColumn+w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleInsertRangeMoveDownCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1;d.push({startRow:I.startRow+y,startColumn:I.startColumn,endRow:I.endRow+y,endColumn:I.endColumn})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveUpCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxRows()-1,u=a.getMergeData(),m=[],d=[];u.forEach(I=>{const{startRow:f,startColumn:M,endColumn:R,endRow:U}=i;if(s.Rectangle.intersects({startRow:f,startColumn:M,endRow:c,endColumn:R},I)&&(m.push(I),s.Rectangle.contains({startRow:f,startColumn:M,endRow:c,endColumn:R},I))){const y=U-f+1,T=s.Rectangle.moveVertical(I,-y);d.push(T)}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h),S=[{id:B.id,params:l},{id:L.id,params:h}],C=[{id:L.id,params:g},{id:B.id,params:v}];return{redos:S,undos:C}}_handleDeleteRangeMoveLeftCommand(e,o,t){const r=re(this._univerInstanceService,o);if(!r)return this._handleNull();const a=se(r,t);if(!a)return this._handleNull();const i=e.range,c=a.getMaxColumns()-1,u=a.getMergeData(),m=[],d=[];u.forEach(S=>{const{startRow:C,endRow:I,startColumn:f,endColumn:M}=i;if(s.Rectangle.intersects({startRow:C,startColumn:f,endRow:I,endColumn:c},S)&&(m.push(S),s.Rectangle.contains({startRow:C,startColumn:f,endRow:I,endColumn:c},S))){const w=M-f+1;d.push({startRow:S.startRow,startColumn:S.startColumn-w,endRow:S.endRow,endColumn:S.endColumn-w})}});const l={unitId:o,subUnitId:t,ranges:m},g=Q(this._injector,l),h={unitId:o,subUnitId:t,ranges:d},v=ie(this._injector,h);return{redos:[{id:B.id,params:l},{id:L.id,params:h}],undos:[{id:L.id,params:g},{id:B.id,params:v}]}}_handleNull(){return{redos:[],undos:[]}}};exports.MergeCellController=Jr([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ue(0,H.Inject(s.ICommandService)),Ue(1,H.Inject(exports.RefRangeService)),Ue(2,H.Inject(s.IUniverInstanceService)),Ue(3,H.Inject(H.Injector)),Ue(4,H.Inject(exports.SheetInterceptorService)),Ue(5,H.Inject(exports.SelectionManagerService))],exports.MergeCellController);function re(n,e){return e?n.getUniverSheetInstance(e):n.getCurrentUniverSheetInstance()}function se(n,e){return e?n.getSheetBySheetId(e):n.getActiveSheet()}const Xr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Co={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Zr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,es=(n,e,o,t)=>{for(var r=t>1?void 0:t?Qr(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&Zr(e,o,r),r},Je=(n,e)=>(o,t)=>e(o,t,n);const an="SHEET_NUMFMT_PLUGIN",ts=24*60*60*1e3;exports.NumfmtService=class extends s.Disposable{constructor(o,t,r,a){super();x(this,"_numfmtModel",new Map);x(this,"_refAliasModel",new Map);x(this,"_modelReplace$",new _e.Subject);x(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=t,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,an,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:m}=c;if(u){const d=Object.keys(u).reduce((l,g)=>(l.set(g,new s.ObjectMatrix(u[g])),l),new Map);this._numfmtModel.set(i,d)}m&&this._refAliasModel.set(i,new s.RefAlias(m,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,an)})));const t=this._univerInstanceService.getCurrentUniverSheetInstance();o(t)}_toJson(o){const t=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!t||!r)return"";const a=[...t.keys()].reduce((u,m)=>{const d=t.get(m);return u[m]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,t,r,a,i){let c=this.getModel(o,t);if(!c){const u=this._numfmtModel.get(o)||new Map,m=u.get(t)||new s.ObjectMatrix;u.set(t,m),this._numfmtModel.set(o,u),c=m}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.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 r=t.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(o,t,r,a,i){const c=i||this.getModel(o,t);if(!c)return null;const u=this._refAliasModel.get(o),m=c.getValue(r,a);if(m&&u){const d=u.getValue(m==null?void 0:m.i,["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,r){let a=this._refAliasModel.get(o);const i=this.getModel(o,t);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{s.Range.foreach(c,(u,m)=>{const d=this.getValue(o,t,u,m,i);if(d&&d.pattern){const l=a.getValue(d.pattern,["pattern"]);l&&l.count--}this._setValue(o,t,u,m,null)})})}setValues(o,t,r){const a=this.getModel(o,t);let i=this._refAliasModel.get(o);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{let u=i.getValue(c.pattern,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(m=>{s.Range.foreach(m,(d,l)=>{if(a){const g=this.getValue(o,t,d,l,a);if(g&&g.pattern){const h=i.getValue(g.pattern,["pattern"]);h&&h.count--}}this._setValue(o,t,d,l,{i:u.i}),u.count++})})})}getModel(o,t){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(t)}getRefModel(o){return this._refAliasModel.get(o)}serialTimeToTimestamp(o,t=!0){const r=new Date("1900-01-01").getTime();return(o-(t?25569:24107))*ts+r}};exports.NumfmtService=es([s.OnLifecycle(s.LifecycleStages.Starting,exports.NumfmtService),Je(0,H.Inject(s.ICommandService)),Je(1,H.Inject(s.IResourceManagerService)),Je(2,H.Inject(s.IUniverInstanceService)),Je(3,H.Inject(s.ILogService))],exports.NumfmtService);const cn="univer.sheet.editable";class Se extends s.PermissionPoint{constructor(o,t){super();x(this,"id",cn);x(this,"value",!0);x(this,"unitID");this._unitId=o,this._subUnitId=t,this.unitID=o,this.id=`${cn}_${o}_${t}`}}var ns=Object.defineProperty,os=Object.getOwnPropertyDescriptor,rs=(n,e,o,t)=>{for(var r=t>1?void 0:t?os(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&ns(e,o,r),r},St=(n,e)=>(o,t)=>e(o,t,n);exports.SheetPermissionService=class extends s.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 r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(e.sheetCreated$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.addPermissionPoint(e.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(e.sheetDisposed$.subscribe(t=>{const r=t.getSheetId(),a=new Se(o,r);this._permissionService.deletePermissionPoint(e.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(be.PERMISSION,{priority:99,handler:(e,o,t)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(o.id){case Ie.id:return this.getSheetEditable(i,c)}return t()}}))}getEditable$(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(Mo.map(([u,m])=>{const d=u.value&&m.value,l=s.getTypeFromPermissionItemList([u,m]);return{value:d,status:l}}))}getSheetEditable(e,o){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e||t.getUnitId(),a=t.getActiveSheet(),i=o||a.getSheetId(),c=new Se(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(e,o,t){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=o||r.getUnitId(),i=r.getActiveSheet(),c=t||i.getSheetId(),u=new Se(a,c);this._permissionService.updatePermissionPoint(a,u.id,e)}};exports.SheetPermissionService=rs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),St(0,H.Inject(s.IPermissionService)),St(1,H.Inject(s.IUniverInstanceService)),St(2,H.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function ss(n){const e=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),t=e.getCurrentUniverSheetInstance().getUnitId(),r=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new _e.Observable(a=>{var c;const i=(c=o.getEditable$(t,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(n,e,o,t)=>{for(var r=t>1?void 0:t?as(e,o):e,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(t?i(e,o,r):i(r))||r);return t&&r&&is(e,o,r),r},Ct=(n,e)=>(o,t)=>e(o,t,n);const us="sheet";var It;exports.UniverSheetsPlugin=(It=class extends s.Plugin{constructor(e,o,t,r){super(us),this._config=e,this._commandService=o,this._localeService=t,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Co})}_initializeDependencies(e){var t;const o=[[we],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[ye,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[Ze],[exports.MergeCellController]];(t=this._config)!=null&&t.notExecuteFormula||o.push([Qe],[et]),o.forEach(r=>{e.add(r)})}},x(It,"type",s.PluginType.Sheet),It);exports.UniverSheetsPlugin=cs([Ct(1,s.ICommandService),Ct(2,H.Inject(s.LocaleService)),Ct(3,H.Inject(H.Injector))],exports.UniverSheetsPlugin);const ds=[ue.id,oe.id,Vt.id,ce.id,He.id,Ve.id,We.id,Te.id,Ee.id,Oe.id,De.id,Re.id,fe.id,Me.id,pe.id],ls=[$.id,Be.id,B.id,L.id],ms=1.5,gs="rgba(255,255,255, 0.01)";function hs(n){const e=n.getCurrentTheme(),o=new s.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 vs(n){const{rangeWithCoord:e,primaryWithCoord:o,style:t}=n,r={range:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,rangeType:e.rangeType},primary:null,style:t};return o!=null&&(r.primary=Io(o)),r}function Io(n){const{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:e,actualColumn:o,isMerged:t,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function Ss(n,e,o){const t=wo.getCellInfoInMergeData(n,e,o),r=s.makeCellRangeToRangeData(t);if(r)return{range:r,primary:t,style:null}}const Cs=(n,e,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=e;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:l,actualRow:g}=d;let{startRow:h,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const R=o.find(U=>U.startColumn===l&&U.endColumn===l&&g===U.startRow);R&&(C=R.endColumn,h=R.startRow,S=R.endRow)}else if(a===s.Dimension.ROWS){const R=o.find(U=>U.startRow===g&&U.endRow===g&&l===U.startColumn);R&&(S=R.endRow,v=R.startColumn,C=R.endColumn)}const I={startRow:h,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:l,isMerged:!0,isMergedMainCell:h===g&&v===l},f=r.map((R,U,w)=>({range:R.range,style:null,primary:U===w.length-1?I:null})),M={unitId:c,subUnitId:u,pluginName:z,selections:f};return{id:G.id,params:M}}return null}return null},Is=(n,e)=>{const t=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=e;if(t&&t[(t==null?void 0:t.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:z,selections:[...t]};return{id:G.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Cs;exports.AddMergeUndoMutationFactory=ie;exports.AddMergeUndoSelectionsOperationFactory=Is;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=we;exports.COMMAND_LISTENER_SKELETON_CHANGE=ds;exports.COMMAND_LISTENER_VALUE_CHANGE=ls;exports.ClearSelectionAllCommand=rt;exports.ClearSelectionContentCommand=Rt;exports.ClearSelectionFormatCommand=st;exports.CopySheetCommand=mn;exports.DeleteRangeMoveLeftCommand=at;exports.DeleteRangeMoveUpCommand=ct;exports.DeltaColumnWidthCommand=kt;exports.DeltaRowHeightCommand=Qn;exports.EffectRefRangId=W;exports.EmptyMutation=ro;exports.INTERCEPTOR_POINT=be;exports.INumfmtService=ye;exports.InsertColAfterCommand=Mn;exports.InsertColBeforeCommand=pn;exports.InsertColCommand=Ae;exports.InsertColMutation=Re;exports.InsertColMutationUndoFactory=_t;exports.InsertRangeMoveDownCommand=ut;exports.InsertRangeMoveRightCommand=dt;exports.InsertRowAfterCommand=fn;exports.InsertRowBeforeCommand=In;exports.InsertRowCommand=Ne;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ut;exports.InsertSheetCommand=wn;exports.InsertSheetMutation=Ce;exports.InsertSheetUndoMutationFactory=pt;exports.MAX_CELL_PER_SHEET_KEY=so;exports.MoveColsCommand=Tt;exports.MoveColsMutation=We;exports.MoveRangeCommand=it;exports.MoveRangeMutation=Be;exports.MoveRowsCommand=bt;exports.MoveRowsMutation=Ve;exports.NORMAL_SELECTION_PLUGIN_NAME=z;exports.OperatorType=F;exports.RangeMergeUtil=Ur;exports.RemoveColCommand=mt;exports.RemoveColMutation=Me;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Ht;exports.RemoveRowCommand=lt;exports.RemoveRowMutation=pe;exports.RemoveSheetCommand=Et;exports.RemoveSheetMutation=je;exports.RemoveSheetUndoMutationFactory=ln;exports.RemoveWorksheetMergeCommand=Tn;exports.RemoveWorksheetMergeMutation=B;exports.ResetBackgroundColorCommand=Hn;exports.ResetTextColorCommand=jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=gs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=ms;exports.SelectionMoveType=un;exports.SetBackgroundColorCommand=Fn;exports.SetBoldCommand=mr;exports.SetBorderBasicCommand=En;exports.SetBorderColorCommand=Nn;exports.SetBorderCommand=Pe;exports.SetBorderPositionCommand=Dn;exports.SetBorderStyleCommand=On;exports.SetColHiddenCommand=Pn;exports.SetColHiddenMutation=Te;exports.SetColVisibleMutation=Ee;exports.SetColWidthCommand=xt;exports.SetFontFamilyCommand=Sr;exports.SetFontSizeCommand=Cr;exports.SetFrozenCommand=xn;exports.SetFrozenMutation=he;exports.SetFrozenMutationFactory=Ot;exports.SetHorizontalTextAlignCommand=Gn;exports.SetItalicCommand=gr;exports.SetNumfmtMutation=gt;exports.SetRangeValuesCommand=Ie;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=le;exports.SetRowHeightCommand=eo;exports.SetRowHiddenCommand=Bn;exports.SetRowHiddenMutation=Oe;exports.SetRowVisibleMutation=De;exports.SetSelectedColsVisibleCommand=An;exports.SetSelectedRowsVisibleCommand=Ln;exports.SetSelectionsOperation=G;exports.SetSpecificColsVisibleCommand=Dt;exports.SetSpecificRowsVisibleCommand=Nt;exports.SetStrikeThroughCommand=vr;exports.SetStyleCommand=Y;exports.SetTabColorCommand=Yn;exports.SetTabColorMutation=xe;exports.SetTextColorCommand=Wn;exports.SetTextRotationCommand=qn;exports.SetTextWrapCommand=zn;exports.SetUnderlineCommand=hr;exports.SetVerticalTextAlignCommand=$n;exports.SetWorksheetActivateCommand=At;exports.SetWorksheetActiveOperation=He;exports.SetWorksheetColWidthMutation=ce;exports.SetWorksheetColWidthMutationFactory=Pt;exports.SetWorksheetHideCommand=Jn;exports.SetWorksheetHideMutation=ve;exports.SetWorksheetNameCommand=Lt;exports.SetWorksheetNameMutation=tt;exports.SetWorksheetOrderCommand=Xn;exports.SetWorksheetOrderMutation=Le;exports.SetWorksheetRowAutoHeightMutation=Vt;exports.SetWorksheetRowAutoHeightMutationFactory=wr;exports.SetWorksheetRowHeightMutation=ue;exports.SetWorksheetRowIsAutoHeightCommand=Wt;exports.SetWorksheetRowIsAutoHeightMutation=oe;exports.SetWorksheetShowCommand=to;exports.SheetEditablePermission=Se;exports.alignToMergedCellsBorders=Fe;exports.convertPrimaryWithCoordToPrimary=Io;exports.convertSelectionDataToRange=vs;exports.createTopMatrixFromMatrix=oo;exports.createTopMatrixFromRanges=no;exports.enUS=Xr;exports.factoryRemoveNumfmtUndoMutation=Er;exports.factorySetNumfmtUndoMutation=Tr;exports.findAllRectangle=jt;exports.followSelectionOperation=me;exports.getAddMergeMutationRangeByType=So;exports.getCellAtRowCol=zo;exports.getCurrentSheetDisabled$=ss;exports.getInsertRangeMutations=wt;exports.getNormalSelectionStyle=hs;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=yt;exports.handleBaseInsertRange=Ge;exports.handleBaseMoveRowsCols=$t;exports.handleBaseRemoveRange=$e;exports.handleDefaultRangeChangeWithEffectRefCommands=qr;exports.handleDeleteRangeMoveLeft=ho;exports.handleDeleteRangeMoveUp=vo;exports.handleDeleteRangeMutation=Ko;exports.handleIRemoveCol=ao;exports.handleIRemoveRow=co;exports.handleInsertCol=lo;exports.handleInsertRangeMoveDown=mo;exports.handleInsertRangeMoveRight=go;exports.handleInsertRangeMutation=Yo;exports.handleInsertRow=uo;exports.handleMoveCols=zt;exports.handleMoveRange=io;exports.handleMoveRows=Gt;exports.rangeMerge=Ft;exports.rotateRange=de;exports.runRefRangeMutations=ot;exports.setEndForRange=qo;exports.transformCellDataToSelectionData=Ss;exports.transformCellsToRange=nt;exports.zhCN=Co;
1
+ "use strict";var Do=Object.defineProperty;var Eo=(n,t,o)=>t in n?Do(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var B=(n,t,o)=>(Eo(n,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),$=require("@wendellhu/redi"),be=require("rxjs"),ee=require("@univerjs/engine-formula"),No=require("rxjs/operators"),Oo=require("@univerjs/engine-render");var Ao=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,ko=(n,t,o,e)=>{for(var r=e>1?void 0:e?Po(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Ao(t,o,r),r},xo=(n,t)=>(o,e)=>t(o,e,n);const z="normalSelectionPluginName";var pn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(pn||{});exports.SelectionManagerService=class{constructor(t){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new be.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new be.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new be.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:z,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=z,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:r},i)=>e===i?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var i,a;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(a=(i=this._selectionInfo.get(o))==null?void 0:i.get(e))==null?void 0:a.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:i,selectionDatas:a}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(i))u.set(i,[...a]);else{let l=u.get(i);l==null&&(l=[],u.set(i,l)),l.push(...a)}o&&this._refresh({pluginName:e,unitId:r,sheetId:i})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:i}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const a=this._selectionInfo.get(o);a.has(e)||a.set(e,new Map);const c=a.get(e);if(!c.has(r))c.set(r,i);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...i)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}};exports.SelectionManagerService=ko([xo(0,$.Inject(s.ThemeService))],exports.SelectionManagerService);const Bo=s.createInterceptorKey("CELL_CONTENT"),Lo=s.createInterceptorKey("PERMISSION"),Te={CELL_CONTENT:Bo,PERMISSION:Lo};var Vo=Object.defineProperty,Wo=Object.getOwnPropertyDescriptor,jo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Wo(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Vo(t,o,r),r},Fo=(n,t)=>(o,e)=>t(o,e,n);exports.SheetInterceptorService=class extends s.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(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(Te.CELL_CONTENT,{priority:-1,handler(e,r){const i=r.worksheet.getCellRaw(r.row,r.col);return e?{...i,...e}:i}}),this.intercept(Te.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((e,r)=>{var i,a;return((i=r.priority)!=null?i:0)-((a=e.priority)!=null?a:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var i;return(i=r.preUndos)!=null?i:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var i;return(i=r.preRedos)!=null?i:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const i=this._interceptorsByName.get(r);return i.push(e),this._interceptorsByName.set(r,i.sort((a,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=a.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(o){const e=o,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const e=new s.DisposableCollection,r=o.getUnitId(),i=this,a=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return i.fetchThroughInterceptors(Te.CELL_CONTENT)(c.getCellRaw(g,v),{unitId:r,subUnitId:u,row:g,col:v,worksheet:c,workbook:o})}});d.add(m),i._worksheetDisposables.set(dn(r,c),d)})};o.getSheets().forEach(c=>a(c)),e.add(s.toDisposable(o.sheetCreated$.subscribe(c=>a(c)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=dn(o,e),i=this._worksheetDisposables.get(r);i&&(i.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=jo([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Fo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function dn(n,t){return`${n}|${t.getSheetId()}`}const me=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(a==null)throw new Error("workbook is null error!");const c=a.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=a.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,h)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,v))||{},C=l.getStyleByCell(S),I=Go(C,h&&h.s?h.s:null);S.s=I,d.setValue(g,v,Ho(S))}),{...t,options:{},cellValue:d.getMatrix()}};function Ho(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 H={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!a)return!1;const c=a.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=a.getStyles();return new s.ObjectMatrix(o).forValue((m,g,v)=>{if(!v)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},S=v.t===s.CellValueType.FORCE_STRING?v.t:v.v!==void 0?ln(v.v,v.t):ln(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=S===s.CellValueType.NUMBER?Number(v.v):S===s.CellValueType.BOOLEAN?$o(v.v)?1:0:v.v),h.v!==void 0&&(h.t=S),v.s!==void 0){const C=l.getStyleByCell(h);C==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const I=et(C,v.s?v.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete h.s:h.s=l.setValue(I),!v.p&&h.p&&Yo(h.p,v.s?v.s:null)}u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function ln(n,t){return n===null?null:typeof n=="string"?wn(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:Jo(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function $o(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(wn(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function Go(n,t){return zo(n,t)}function zo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=qo(o[e]||{},t[e]):e in o||(o[e]=null);return o}function qo(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function et(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=s.Tools.deepClone(n)||{};if(e){for(const r in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function Mn(n,t){return n.some(o=>o.startIndex===t)?Mn(n,t+1):t}function Yo(n,t){var a;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],r=((a=n.body)==null?void 0:a.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(o<u){const g={st:o,ed:u},v=et({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=et(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),o=Mn(r,l)}const i=n.body.dataStream.endsWith(`\r
2
+ `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<i){const c={st:o,ed:i},u=et({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}n.body.textRuns=e}function Ko(n){return/^-?\d+(\.\d+)?$/.test(n)}function wn(n){return Ko(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Jo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const at={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Xo(d)},h=me(n,v);m.push({id:H.id,params:v}),g.push({id:H.id,params:h});const S=i.onCommandExecute({id:at.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:i,endColumn:a}=o;for(let c=e;c<=i;c++)for(let u=r;u<=a;u++)t.setValue(c,u,null)}),t.getData()}const Mt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Zo(d)},g=me(n,m),v=i.onCommandExecute({id:Mt.id}),h=[{id:H.id,params:m},...v.redos],S=[...v.undos,{id:H.id,params:g}];return s.sequenceExecute(h,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function Zo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:i,endColumn:a}=o;for(let c=e;c<=i;c++)for(let u=r;u<=a;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null})}),t.getData()}const ct={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),i=n.get(exports.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),c=a.getUnitId(),l=a.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=me(n,v);m.push({id:H.id,params:v}),g.push({id:H.id,params:h});const S=i.onCommandExecute({id:ct.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:i,endColumn:a}=o;for(let c=e;c<=i;c++)for(let u=r;u<=a;u++)t.setValue(c,u,{s:null})}),t.getData()}const wt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Me={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:i}=t,a=o.getUniverSheetInstance(i);return a?a.addWorksheet(e.id,r,e):!1}},yn=(n,t)=>{const e=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:i}=t,a=e.getSheetBySheetId(r).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===r),sheet:a,unitId:i}},He={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,i=o.getUniverSheetInstance(r);return i?i.removeSheet(e):!1}},Un={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{var S,C;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService);let a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(S=t.unitId)!=null?S:a,c=(C=t.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+=i.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:d,unitId:a},v=wt(n,g);return o.syncExecuteCommand(Me.id,g)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:He.id,params:v}],redoMutations:[{id:Me.id,params:g}]}),!0):!1}},je={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getSheetBySheetId(t.from.subUnitId),c=i.getSheetBySheetId(t.to.subUnitId);if(!a||!c)return!1;const u=a.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(e.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},G={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(exports.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function $e(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((a,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:a,startColumn:c,endRow:a+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,l)||r.push(l)}}),r.length===0)return n;const i=s.Rectangle.union(n,...r);return o?$e(i,t,o):i}function er(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((i,a,c)=>(e={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:i+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:a+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function tr(n,t,o){const{startRow:e,startColumn:r,endRow:i,endColumn:a}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(i)&&(n.endRow=t),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(a)&&(n.endColumn=o),n}function X(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const ge=(n,t,o)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:z,selections:[{range:n,primary:X(n,o)}]}}),_n="sheet.command.move-range",ut={type:s.CommandType.COMMAND,id:_n,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ErrorService),a=r.getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId(),d=yt(n,{unitId:u,subUnitId:l,range:t.fromRange},{unitId:u,subUnitId:l,range:t.toRange});if(d===null)return i.emit("Across a merged cell."),!1;const g=n.get(exports.SheetInterceptorService).onCommandExecute({id:ut.id,params:{...t}}),v=[...d.redos,...g.redos,{id:G.id,params:{unitId:u,subUnitId:l,pluginName:z,selections:[{range:t.toRange,primary:X(t.toRange,c)}]}}],h=[{id:G.id,params:{unitId:u,subUnitId:l,pluginName:z,selections:[{range:t.fromRange,primary:X(t.fromRange,c)}]}},...d.undos,...g.undos];return s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:u,undoMutations:h,redoMutations:v}),!0):!1}};function yt(n,t,o,e=!1){const r=[],i=[],{range:a,subUnitId:c,unitId:u}=t,{range:l,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),v=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),S=v==null?void 0:v.getCellMatrix(),C=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&C){const I=$e(l,v,!1);if(!s.Rectangle.equals(l,I)&&!e)return null;const p=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(a,(y,_)=>{p.setValue(y,_,C.getValue(y,_)),f.setValue(y,_,null)});const R=new s.ObjectMatrix;s.Range.foreach(l,(y,_)=>{R.setValue(y,_,S.getValue(y,_))});const M=new s.ObjectMatrix;s.Range.foreach(a,(y,_)=>{const E=s.cellToRange(y,_),x=s.Rectangle.getRelativeRange(E,a),w=s.Rectangle.getPositionRange(x,l);M.setValue(w.startRow,w.startColumn,C.getValue(y,_))});const T={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:je.id,params:T}),i.push({id:je.id,params:U})}return{redos:r,undos:i}}const we={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=u?[u]:i.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let v;if(s.Tools.isArray(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:T,endRow:U,endColumn:y}=m[R];for(let _=0;_<=U-M;_++)for(let E=0;E<=y-T;E++)g.setValue(_+M,E+T,c[_][E])}else if(s.isICellData(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:T,endRow:U,endColumn:y}=m[R];for(let _=M;_<=U;_++)for(let E=T;E<=y;E++)g.setValue(_,E,c)}else v=c;const h={subUnitId:d,unitId:l,cellValue:v!=null?v:g.getMatrix()},S=me(n,h);if(!a.fetchThroughInterceptors(Te.PERMISSION)(null,{id:we.id,params:h}))return!1;const C=o.syncExecuteCommand(H.id,h),{undos:I,redos:p}=a.onCommandExecute({id:we.id,params:{...h,range:m}}),f=s.sequenceExecute([...p],o);return C&&f.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:H.id,params:S},...I],redoMutations:[{id:H.id,params:h},...p]}),!0):!1}};function Ut(n,t){const o=[],e=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c,cellValue:u={}}=t,l=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(i);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(a.startColumn<=h.endColumn||a.startRow<=h.endRow){let f,R;if(c===s.Dimension.COLUMNS){const T=Math.min(a.endRow,h.endRow);let U=0;for(let _=a.startRow;_<=T;_++){const E=v.getRow(_),x=E?s.getArrayLength(E)-1:0;U=Math.max(U,x)}f={startRow:a.startRow,startColumn:a.startColumn,endRow:T,endColumn:U};const y=a.endColumn-a.startColumn+1;R={startRow:a.startRow,startColumn:f.startColumn+y,endRow:T,endColumn:f.endColumn+y}}else{const T=Math.min(a.endColumn,h.endColumn),U=h.endRow;f={startRow:a.startRow,startColumn:a.startColumn,endRow:U,endColumn:T};const y=a.endRow-a.startRow+1;R={startRow:f.startRow+y,startColumn:a.startColumn,endRow:f.endRow+y,endColumn:T}}const M=yt(n,{unitId:r,subUnitId:i,range:f},{unitId:r,subUnitId:i,range:R},!0);M&&(o.push(...M.redos),e.push(...M.undos))}if(Object.entries(u).length===0)for(let f=a.startRow;f<=a.endRow;f++){u[f]||(u[f]={});for(let R=a.startColumn;R<=a.endColumn;R++)u[f][R]=null}const S={subUnitId:i,unitId:r,cellValue:u},C=me(n,S),{undos:I,redos:p}=d.onCommandExecute({id:we.id,params:{...S,range:a}});o.push({id:H.id,params:S},...p),e.push({id:H.id,params:C},...I)}return{redo:o,undo:e}}function _t(n,t){const o=[],e=[],{unitId:r,subUnitId:i,range:a,shiftDimension:c}=t,u=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(i);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:i,unitId:r,cellValue:rr([a])},S=me(n,h),C=l.onCommandExecute({id:we.id,params:h});if(o.push({id:H.id,params:h},...C.redos),e.push(...C.undos,{id:H.id,params:S}),a.startColumn<=v.endColumn||a.startRow<=v.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&a.endColumn<v.endColumn){const f=Math.min(a.endRow,v.endRow);let R=0;for(let T=a.startRow;T<=f;T++){const U=g.getRow(T),y=U?s.getArrayLength(U)-1:0;R=Math.max(R,y)}I={startRow:a.startRow,startColumn:a.endColumn+1,endRow:f,endColumn:R};const M=a.endColumn-a.startColumn+1;p={startRow:a.startRow,startColumn:I.startColumn-M,endRow:f,endColumn:I.endColumn-M}}if(c===s.Dimension.ROWS&&a.endRow<v.endRow){const f=Math.min(a.endColumn,v.endColumn),R=v.endRow;I={startRow:a.endRow+1,startColumn:a.startColumn,endRow:R,endColumn:f};const M=a.endRow-a.startRow+1;p={startRow:I.startRow-M,startColumn:a.startColumn,endRow:I.endRow-M,endColumn:f}}if(I&&p){const f=yt(n,{unitId:r,subUnitId:i,range:I},{unitId:r,subUnitId:i,range:p},!0);f&&(o.push(...f.redos),e.push(...f.undos))}}}return{redo:o,undo:e}}function nr(n,t,o,e,r,i){const{startRow:a,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-a+1;for(let m=o;m>=a;m--)for(let g=u;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=c;m>=a;m--)for(let g=u;g<=l;g++)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=a;m<=c;m++)for(let g=e;g>=u;g--){const v=n.getValue(m,g);v==null?n.realDeleteValue(m,g+d):n.setValue(m,g+d,v)}for(let m=a;m<=c;m++)for(let g=l;g>=u;g--)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}}function or(n,t,o,e,r){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=t,l=a-i+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=i;m<=o;m++)for(let g=c;g<=u;g++){const v=n.getValue(m+l,g);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=c;g<=e;g++){const v=n.getValue(m,g+d);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}}function rr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:i,endColumn:a}=o;for(let c=e;c<=i;c++)for(let u=r;u<=a;u++)t.setValue(c,u,null)}),t.getData()}const bn="sheet.command.delete-range-move-left",dt={type:s.CommandType.COMMAND,id:bn,handler:async(n,t)=>{var f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=i.getLast())==null?void 0:f.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},v=a.onCommandExecute({id:dt.id,params:{range:l}}),{redo:h,undo:S}=_t(n,g),C=[...h],I=[...S];return C.push(...v.redos),C.push(ge(l,d,m)),I.push(...v.undos),s.sequenceExecute(C,o).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Tn="sheet.command.delete-range-move-up",lt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=i.getLast())==null?void 0:f.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},v=a.onCommandExecute({id:lt.id,params:{range:l}}),{redo:h,undo:S}=_t(n,g),C=[...h],I=[...S];return C.push(...v.redos),C.push(ge(l,d,m)),I.push(...v.undos),await s.sequenceExecute(C,o).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},bt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:r,rowInfo:i}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)i?s.insertMatrixArray(S,(h=i[S-r.startRow])!=null?h:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Tt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},fe={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getColumnManager(),{range:a,colInfo:c}=t,l=i.getColumnData(),d=a.startColumn,m=a.endColumn-a.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-a.startColumn])!=null?h:C,l):s.insertMatrixArray(S,C,l)}return r.setColumnCount(r.getColumnCount()+a.endColumn-a.startColumn+1),r.getCellMatrix().insertColumns(a.startColumn,m),!0}},sr=(n,t)=>{const r=t.getRowManager().getRowData(),i={},a=n.range,c=s.sliceMatrixArray(a.startRow,a.endRow,r),u=s.concatMatrixArray(i,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},Ie={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=t.range,c=r.getRowManager().getRowData(),u=i.endRow-i.startRow+1;return s.spliceArray(i.startRow,u,c),r.getCellMatrix().removeRows(i.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},ir=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=t.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Re={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=t.range,c=r.getColumnManager().getColumnData(),u=i.endColumn-i.startColumn+1;return s.spliceArray(i.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(i.startColumn,u),!0}},ar="sheet.command.insert-range-move-down",mt={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var E;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ILogService),a=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=t==null?void 0:t.range;if(d||(d=(E=a.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,f=Math.max(p+(d.endRow-d.startRow+1)-C.endRow,0);if(f>0){const x=d.startRow-1,w=g.getRowHeight(x),q={unitId:u,subUnitId:l,range:{startRow:C.endRow+1,endRow:C.endRow+f,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(f).fill(void 0).map(()=>({h:w,hd:s.BooleanNumber.FALSE}))};v.push({id:Ce.id,params:q});const he=bt(n,q);h.push({id:Ie.id,params:he})}const R={};s.Range.foreach(d,(x,w)=>{const q=g.getCell(x,w);q&&(R[x]||(R[x]={}),R[x][w]={s:q.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:T,undo:U}=Ut(n,M);v.push(...T),h.push(...U);const y=c.onCommandExecute({id:mt.id,params:{range:d}});return v.push(...y.redos),v.push(ge(d,m,g)),h.push(...y.undos),s.sequenceExecute(v,o)?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},Dn="sheet.command.insert-range-move-right",gt={type:s.CommandType.COMMAND,id:Dn,handler:async(n,t)=>{var E;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ILogService),a=n.get(exports.SelectionManagerService),c=n.get(exports.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=t==null?void 0:t.range;if(d||(d=(E=a.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,f=Math.max(p+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(f>0){const x=d.startColumn-1,w=g.getColumnWidth(x),q={unitId:u,subUnitId:l,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+f},colInfo:new Array(f).fill(void 0).map(()=>({w,hd:s.BooleanNumber.FALSE}))};v.push({id:fe.id,params:q});const he=Tt(n,q);h.push({id:Re.id,params:he})}const R={};s.Range.foreach(d,(x,w)=>{const q=g.getCell(x,w);!q||!q.s||(R[x]||(R[x]={}),R[x][w]={s:q.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:T,undo:U}=Ut(n,M);v.push(...T),h.push(...U);const y=c.onCommandExecute({id:gt.id,params:{range:d}});return v.push(...y.redos),v.push(ge(d,m,g)),h.push(...y.undos),s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},En="sheet.command.insert-row",ke={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=r.getUniverSheetInstance(t.unitId),c=a.getSheetBySheetId(t.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=t,{startRow:g,endRow:v}=u,h=l===s.Direction.UP?g:g-1,S=c.getRowHeight(h),C={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=bt(n,C),p=i.onCommandExecute({id:ke.id,params:t});return s.sequenceExecute([{id:Ce.id,params:C},...p.redos,ge(u,a,c)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Ie.id,params:I},...p.undos],redoMutations:[{id:Ce.id,params:C},...p.redos]}),!0):!1}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=a.getCell(v,h);!S||!S.s||(d[v]||(d[v]={}),d[v][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(ke.id,m)}},On={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=e.endRow-e.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(ke.id,d)}},An="sheet.command.insert-col",xe={type:s.CommandType.COMMAND,id:An,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),{range:a,direction:c,subUnitId:u,unitId:l,cellValue:d}=t,{startColumn:m,endColumn:g}=t.range,v=r.getUniverSheetInstance(t.unitId),h=v.getSheetBySheetId(t.subUnitId),S=c===s.Direction.LEFT?m:m-1,C=h.getColumnWidth(S),I={unitId:l,subUnitId:u,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},p=Tt(n,I);t.unitId,t.subUnitId,t.range,s.Dimension.COLUMNS;const f=i.onCommandExecute({id:xe.id,params:t});return s.sequenceExecute([{id:fe.id,params:I},...f.redos,ge(a,v,h)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Re.id,params:p},...f.undos].filter(Boolean),redoMutations:[{id:fe.id,params:I},...f.redos].filter(Boolean)}),!0):!1}},Pn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=a.getCell(g,v);!h||!h.s||(d[g]||(d[g]={}),d[g][v]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(xe.id,m)}},kn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const c=i.getUnitId(),u=a.getSheetId(),l=e.endColumn-e.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(xe.id,d)}},xn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var v,h;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.LocaleService),a=(v=t==null?void 0:t.unitId)!=null?v:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(a);if(!c)return!1;let u=c.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(u=(h=t.index)!=null?h:u,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${i.t("sheets.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${i.t("sheets.sheet")}`));const d={index:u,sheet:l,unitId:a},m=wt(n,d);return o.syncExecuteCommand(Me.id,d)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:He.id,params:m}],redoMutations:[{id:Me.id,params:d}]}),!0):!1}};function cr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:i}=t,a=r.startRow>i.startRow,c=r.endRow-r.startRow+1;return a?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...i,endRow:i.endRow-c,startRow:i.startRow-c}}}const De={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:i}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=i.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function ur(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:i}=t,a=r.startColumn>i.startColumn,c=r.endColumn-r.startColumn+1;return a?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(i),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...i,startColumn:i.startColumn-c,endColumn:i.endColumn-c}}}const Ee={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:i}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=i.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function dr(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function lr(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const Bn="sheet.command.move-rows",Dt={id:Bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:i}}=t,a=e==null?void 0:e.filter(te=>te.range.rangeType===s.RANGE_TYPE.ROW&&te.range.startRow<=r&&r<=te.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=a[0].range,S=a[0].primary,C=$e(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(dr(i,d))return v.emit("Across a merged cell."),!1;const I={...h,startRow:i,endRow:i+h.endRow-h.startRow},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=cr(n,p),M=i-r<0,T=h.endRow-h.startRow+1,U=M?I:{...I,startRow:I.startRow-T,endRow:I.endRow-T},y={unitId:m,subUnitId:g,pluginName:z,selections:[{range:U,primary:X(U,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:z,selections:[{range:h,primary:S,style:null}]},E=n.get(s.ICommandService),x=c.onCommandExecute({id:Dt.id,params:t}),w=[{id:De.id,params:p},{id:G.id,params:y},...x.redos],q=[{id:De.id,params:f},{id:G.id,params:_},...x.undos];return s.sequenceExecute(w,E).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0):!1}},Ln="sheet.command.move-cols",Et={id:Ln,type:s.CommandType.COMMAND,handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:i}}=t,a=e==null?void 0:e.filter(te=>te.range.rangeType===s.RANGE_TYPE.COLUMN&&te.range.startColumn<=r&&r<=te.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=a[0].range,S=a[0].primary,C=$e(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(lr(i,d))return v.emit("Across a merged cell."),!1;const I={...h,startColumn:i,endColumn:i+h.endColumn-h.startColumn},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=ur(n,p),R=h.endColumn-h.startColumn+1,U=i-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:m,subUnitId:g,pluginName:z,selections:[{range:U,primary:X(U,d),style:null}]},_={unitId:m,subUnitId:g,pluginName:z,selections:[{range:h,primary:S,style:null}]},E=n.get(s.ICommandService),x=c.onCommandExecute({id:Et.id,params:t}),w=[{id:Ee.id,params:p},{id:G.id,params:y},...x.redos],q=[{id:Ee.id,params:f},{id:G.id,params:_},...x.undos];return s.sequenceExecute(w,E).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0}},Vn="sheet.command.remove-row",ht={type:s.CommandType.COMMAND,id:Vn,handler:async(n,t)=>{var I,p,f,R;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=o.getLast())==null?void 0:I.range),!r)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=c.getCellMatrix().getSlice(r.startRow,r.endRow,0,c.getColumnCount()-1),g={unitId:u,subUnitId:l,cellValue:m.getMatrix()},v=sr(d,c),h=e.onCommandExecute({id:ht.id,params:{range:r}}),S=n.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:Ie.id,params:d},...h.redos,ge(r,a,c)],S).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:Ce.id,params:v},{id:H.id,params:g},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:Ie.id,params:d},...h.redos]}),!0):!1}},Wn="sheet.command.remove-col",vt={type:s.CommandType.COMMAND,id:Wn,handler:async(n,t)=>{var I,p,f,R;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=o.getLast())==null?void 0:I.range),!r)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=a.getActiveSheet(),u=a.getUnitId(),l=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=ir(n,d),g=c.getCellMatrix().getSlice(0,c.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:u,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:vt.id,params:{range:r}}),S=n.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:Re.id,params:d},...h.redos,ge(r,a,c)],S).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:fe.id,params:m},{id:H.id,params:v},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:Re.id,params:d},...h.redos]}),!0):!1}},Nt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var I,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService);let a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(I=t.unitId)!=null?I:a,c=(p=t.subUnitId)!=null?p:c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(l);u.getConfig().sheetOrder[d+1];const m={subUnitId:c,unitId:a,subUnitName:l.getName()},g=yn(n,m),v=i.onCommandExecute({id:Nt.id,params:{unitId:a,subUnitId:c}}),h=[{id:He.id,params:m},...v.redos],S=[...v.undos,{id:Me.id,params:g}];return s.sequenceExecute(h,o)?(e.pushUndoRedo({unitID:a,undoMutations:S,redoMutations:h}),!0):!1}},ae=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)a.push(c[u]);return!0}},Q=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=a.length-1;d>=0;d--){const m=a[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(a[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},V={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=a.length-1;l>=0;l--){const d=a[l],m=c[u];s.Rectangle.intersects(d,m)&&a.splice(l,1)}return!0}},jn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=t.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:a,subUnitId:c,ranges:i};let m=!1;const g=l.getConfig().mergeData;if(i.forEach(S=>{g.forEach(C=>{s.Rectangle.intersects(S,C)&&(m=!0)})}),!m)return!1;const v=Q(n,d);return o.syncExecuteCommand(V.id,v)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:L.id,params:v}],redoMutations:[{id:V.id,params:v}]}),!0):!1}};class ye{constructor(){B(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new be.BehaviorSubject(this._borderInfo));B(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mr(n,t,o){const e=t?n.getUniverSheetInstance(t):n.getCurrentUniverSheetInstance();if(!e)throw new Error;const r=o?e.getSheetBySheetId(o):e.getActiveSheet();if(!r)throw new Error;return{workbook:e,worksheet:r,unitId:t!=null?t:e.getUnitId(),subUnitId:o!=null?o:r.getSheetId()}}function Ke(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:i}=n;for(let a=o;a<=r;a++)for(let c=e;c<=i;c++)t(a,c)}const Fn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:i,color:a,style:c}=r,u=n.get(s.ICommandService),l=n.get(ye);return l.setType(i),l.setColor(a),l.setStyle(c),u.executeCommand(Be.id,{unitId:o,subUnitId:e})}},Hn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(ye).setType(t.value),o.executeCommand(Be.id)}},$n={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(ye).setStyle(t.value),o.executeCommand(Be.id)}},Gn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(ye).setColor(t.value),o.executeCommand(Be.id)}},Be={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SelectionManagerService),a=n.get(ye),{worksheet:c,unitId:u,subUnitId:l}=mr(r,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),d=i.getSelectionRanges(),m=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:v,type:h,activeBorderType:S}=a.getBorderInfo();if(!S)return!1;const C=h===s.BorderType.TOP||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,I=h===s.BorderType.LEFT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,p=h===s.BorderType.BOTTOM||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,f=h===s.BorderType.RIGHT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,R=h===s.BorderType.VERTICAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,M=h===s.BorderType.HORIZONTAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,T=h.indexOf("tlbr")>-1,U=h.indexOf("tlbc")>-1,y=h.indexOf("tlmr")>-1,_=h.indexOf("bltr")>-1,E=h.indexOf("mltr")>-1,x=h.indexOf("bctr")>-1,w=d[0],q={startRow:w.startRow-1,startColumn:w.startColumn,endRow:w.startRow-1,endColumn:w.endColumn},he={startRow:w.startRow,startColumn:w.startColumn-1,endRow:w.endRow,endColumn:w.startColumn-1},te={startRow:w.endRow+1,startColumn:w.startColumn,endRow:w.endRow+1,endColumn:w.endColumn},on={startRow:w.startRow,startColumn:w.endColumn+1,endRow:w.endRow,endColumn:w.endColumn+1},rn={startRow:w.startRow,startColumn:w.startColumn,endRow:w.startRow,endColumn:w.endColumn},sn={startRow:w.startRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.startColumn},an={startRow:w.endRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.endColumn},cn={startRow:w.startRow,startColumn:w.endColumn,endRow:w.endRow,endColumn:w.endColumn},P=new s.ObjectMatrix,j={s:g,cl:{rgb:v}},Ye=(N,b)=>{let k=null;return m.forEach(K=>{s.Rectangle.intersects(K,{startColumn:b,endColumn:b,startRow:N,endRow:N})&&(k=K)}),k};function W(N,b,k){N.startRow<0||N.startColumn<0||Ke(N,(K,ne)=>{var D,Le;const J=Ye(K,ne);let Z=b;if(J&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(k){const oe=s.Tools.deepClone((D=P.getValue(J.startRow,J.startColumn))==null?void 0:D.s);Z=oe!=null&&oe.bd?Object.assign(oe.bd,b):b}P.setValue(J.startRow,J.startColumn,{s:{bd:Z}})}else{if(k){const oe=s.Tools.deepClone((Le=P.getValue(K,ne))==null?void 0:Le.s);Z=oe!=null&&oe.bd?Object.assign(oe.bd,b):b}P.setValue(K,ne,{s:{bd:Z}})}})}C&&(W(q,{b:null}),W(rn,{t:s.Tools.deepClone(j)},!0)),p&&(W(te,{t:null}),W(an,{b:s.Tools.deepClone(j)},!0)),I&&(W(he,{r:null}),W(sn,{l:s.Tools.deepClone(j)},!0)),f&&(W(on,{l:null}),W(cn,{r:s.Tools.deepClone(j)},!0)),T&&W(w,{tl_br:s.Tools.deepClone(j)},!0),U&&W(w,{tl_bc:s.Tools.deepClone(j)},!0),y&&W(w,{tl_mr:s.Tools.deepClone(j)},!0),_&&W(w,{bl_tr:s.Tools.deepClone(j)},!0),E&&W(w,{ml_tr:s.Tools.deepClone(j)},!0),x&&W(w,{bc_tr:s.Tools.deepClone(j)},!0),R&&Ke(w,(N,b)=>{var K,ne,J,Z;const k=Ye(N,b);if(k){if(k.endColumn!==w.endColumn){const D=(K=P.getValue(k.startRow,k.startColumn))==null?void 0:K.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(k.startColumn!==w.startColumn){const D=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==w.endColumn){const D=(J=P.getValue(N,b))==null?void 0:J.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==w.startColumn){const D=(Z=P.getValue(N,b))==null?void 0:Z.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),M&&Ke(w,(N,b)=>{var K,ne,J,Z;const k=Ye(N,b);if(k){if(k.endRow!==w.endRow){const D=(K=P.getValue(k.startRow,k.startColumn))==null?void 0:K.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(k.startRow!==w.startRow){const D=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(N!==w.endRow){const D=(J=P.getValue(N,b))==null?void 0:J.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(N!==w.startRow){const D=(Z=P.getValue(N,b))==null?void 0:Z.s;P.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!C&&!p&&!I&&!f&&!R&&!M&&!T&&!U&&!y&&!_&&!E&&!x&&(W(q,{b:null}),W(rn,{t:null},!0),W(te,{t:null}),W(an,{b:null},!0),W(he,{r:null}),W(sn,{l:null},!0),W(on,{l:null}),W(cn,{r:null},!0),W(w,{tl_br:null},!0),W(w,{tl_bc:null},!0),W(w,{tl_mr:null},!0),W(w,{bl_tr:null},!0),W(w,{ml_tr:null},!0),W(w,{bc_tr:null},!0),Ke(w,(N,b)=>{var K,ne,J,Z,D,Le,oe,un;const k=Ye(N,b);if(k){if(k.endColumn!==w.endColumn){const O=(K=P.getValue(k.startRow,k.startColumn))==null?void 0:K.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(k.startColumn!==w.startColumn){const O=(ne=P.getValue(k.startRow,k.startColumn))==null?void 0:ne.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(k.endRow!==w.endRow){const O=(J=P.getValue(k.startRow,k.startColumn))==null?void 0:J.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(k.startRow!==w.startRow){const O=(Z=P.getValue(k.startRow,k.startColumn))==null?void 0:Z.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(b!==w.endColumn){const O=(D=P.getValue(N,b))==null?void 0:D.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(b!==w.startColumn){const O=(Le=P.getValue(N,b))==null?void 0:Le.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(N!==w.endRow){const O=(oe=P.getValue(N,b))==null?void 0:oe.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(N!==w.startRow){const O=(un=P.getValue(N,b))==null?void 0:un.s;P.setValue(N,b,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const Ct={unitId:u,subUnitId:l,cellValue:P.getData()},To=me(n,Ct);return o.syncExecuteCommand(H.id,Ct)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:H.id,params:To}],redoMutations:[{id:H.id,params:Ct}]}),!0):!1}},gr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ne={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},hr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Oe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let c=a.startColumn;c<a.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Ot={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),a={unitId:o,subUnitId:e,ranges:r},c=hr(n,a),u={unitId:o,subUnitId:e,pluginName:z,selections:r.map(g=>({range:g,primary:X(g,i),style:null}))},l={unitId:o,subUnitId:e,pluginName:z,selections:Yn(r).map(g=>({range:g,primary:X(g,i),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Oe.id,params:a},{id:G.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Ne.id,params:c},{id:G.id,params:l}],redoMutations:[{id:Oe.id,params:a},{id:G.id,params:u}]}),!0}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=o.map(d=>i.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Ot.id,{unitId:a,subUnitId:c,ranges:u})}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var v;const o=(v=n.get(exports.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u={unitId:a,subUnitId:c,ranges:o},l={unitId:a,subUnitId:c,pluginName:z,selections:Yn(o).map(h=>({range:h,primary:X(h,i),style:null}))},d={unitId:a,subUnitId:c,pluginName:z,selections:o.map(h=>({range:h,primary:X(h,i),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:Ne.id,params:u},{id:G.id,params:l}],m).result){const h=n.get(s.IUndoRedoService),S=gr(n,u);return h.pushUndoRedo({unitID:a,undoMutations:[{id:Oe.id,params:S},{id:G.id,params:d}],redoMutations:[{id:Ne.id,params:u},{id:G.id,params:l}]}),!0}return!1}};function Yn(n){return vr(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function vr(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const At=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const a=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...a}},ve={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig(),{startRow:a,startColumn:c,ySplit:u,xSplit:l}=t;return i.freeze={startRow:a,startColumn:c,ySplit:u,xSplit:l},!0}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(i);if(!c)return!1;const u=c.getSheetBySheetId(a);if(!u)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=t;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const v={unitId:i,subUnitId:a,...t},h=At(n,v);return o.syncExecuteCommand(ve.id,v)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ve.id,params:h}],redoMutations:[{id:ve.id,params:v}]}),!0):!1}},Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=e.getCurrentUniverSheetInstance().getUnitId(),i=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),a=e.getUniverSheetInstance(r);if(!a||!a.getSheetBySheetId(i))return!1;const u={unitId:r,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=At(n,u);return t.syncExecuteCommand(ve.id,u)?(o.pushUndoRedo({unitID:r,undoMutations:[{id:ve.id,params:l}],redoMutations:[{id:ve.id,params:u}]}),!0):!1}},Cr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ae={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},fr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Pe={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let c=a.startRow;c<a.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Pt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={unitId:o,subUnitId:e,ranges:r},l=Cr(n,u),d={unitId:o,subUnitId:e,pluginName:z,selections:r.map(v=>({range:v,primary:X(v,c),style:null}))},m={unitId:o,subUnitId:e,pluginName:z,selections:Zn(r).map(v=>({range:v,primary:X(v,c),style:null}))};return s.sequenceExecute([{id:Ae.id,params:u},{id:G.id,params:d}],i).result&&a.pushUndoRedo({unitID:o,undoMutations:[{id:Pe.id,params:l},{id:G.id,params:m}],redoMutations:[{id:Ae.id,params:u},{id:G.id,params:d}]}),!0}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const t=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUniverSheetInstance();if(!r)return!1;const i=r.getActiveSheet();if(!i)return!1;const a=r.getUnitId(),c=i.getSheetId(),u=e.map(d=>i.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Pt.id,{unitId:a,subUnitId:c,ranges:u})}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=(S=t.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:a,subUnitId:c,ranges:i},m={unitId:a,subUnitId:c,pluginName:z,selections:Zn(i).map(C=>({range:C,primary:X(C,l),style:null}))},g={unitId:a,subUnitId:c,pluginName:z,selections:i.map(C=>({range:C,primary:X(C,l),style:null}))},v=fr(n,d);return s.sequenceExecute([{id:Pe.id,params:d},{id:G.id,params:m}],o).result&&e.pushUndoRedo({unitID:a,undoMutations:[{id:Ae.id,params:v},{id:G.id,params:g}],redoMutations:[{id:Pe.id,params:d},{id:G.id,params:m}]}),!0}};function Zn(n){return Ir(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Ir(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const Y={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),{unitId:e=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:i,style:a}=t,c=n.get(s.ICommandService),u=n.get(s.IUndoRedoService),l=n.get(exports.SelectionManagerService),d=i?[i]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=o.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const v=new s.ObjectMatrix;if(s.Tools.isArray(a.value))for(let R=0;R<d.length;R++){const{startRow:M,endRow:T,startColumn:U,endColumn:y}=d[R];for(let _=0;_<=T-M;_++)for(let E=0;E<=y-U;E++)v.setValue(_+M,E+U,{s:{[a.type]:a.value[_][E]}})}else for(let R=0;R<d.length;R++){const{startRow:M,endRow:T,startColumn:U,endColumn:y}=d[R],_={s:{[a.type]:a.value}};for(let E=M;E<=T;E++)for(let x=U;x<=y;x++)v.setValue(E,x,_)}const h={subUnitId:r,unitId:e,cellValue:v.getMatrix()},S=me(n,h),C=c.syncExecuteCommand(H.id,h),{undos:I,redos:p}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Y.id,params:t}),f=s.sequenceExecute([...p],c);return C&&f.result?(u.pushUndoRedo({unitID:e,undoMutations:[{id:H.id,params:S},...I],redoMutations:[{id:H.id,params:h},...p]}),!0):!1}},Rr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:r}=t.primary,a={style:{type:"bl",value:o.getRange(e,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,a)}},pr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:i,startColumn:a}=t.primary;e=o.getRange(i,a).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},Mr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!o.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}},wr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!o.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Y.id,r)}};s.CommandType.COMMAND;const yr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(Y.id,e)}},Ur={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(Y.id,e)}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(Y.id,e)}},eo={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(Y.id,o)}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(Y.id,e)}},no={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(Y.id,o)}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(Y.id,e)}},ro={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(Y.id,e)}},so={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(Y.id,e)}},io={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(Y.id,r)}},_r=(n,t)=>{const i=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:i}},Ve={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},ao={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const l={color:t.value,unitId:i,subUnitId:a},d=_r(n,l);return o.syncExecuteCommand(Ve.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:d}],redoMutations:[{id:Ve.id,params:l}]}),!0):!1}},Ge={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},br=4,kt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{var c,u;const e=n.get(s.ICommandService),r=n.get(s.IUniverInstanceService);let i=r.getCurrentUniverSheetInstance().getUnitId(),a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(i=(c=t.unitId)!=null?c:i,a=(u=t.subUnitId)!=null?u:a),new Promise(l=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ge.id,{unitId:i,subUnitId:a},o);l(d)},br)})}},xt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const i={},a=r.getColumnManager(),c=t.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=a.getColumnOrCreate(d);i[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:i}},ue={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var u;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().defaultColumnWidth,a=r.getColumnManager(),c=t.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=a.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:i}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=t,h=u.getColumnWidth(m)+g,S=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,C=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:_,endColumn:E}=y;return _<=m&&m<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((E,x)=>({startRow:0,endRow:y-1,startColumn:x,endColumn:x}));p={subUnitId:d,unitId:l,colWidth:h,ranges:_}}else I===s.RANGE_TYPE.COLUMN?p={subUnitId:d,unitId:l,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:h}:p={subUnitId:d,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const f=xt(n,p),R=r.syncExecuteCommand(ue.id,p),{undos:M,redos:T}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Bt.id,params:p}),U=s.sequenceExecute([...T],r);return R&&U.result&&i.pushUndoRedo({unitID:l,undoMutations:[{id:ue.id,params:f},...M],redoMutations:[{id:ue.id,params:p},...T]}),!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(exports.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=i.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:a,colWidth:t.value},d=xt(n,l),m=e.syncExecuteCommand(ue.id,l),{undos:g,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Lt.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ue.id,params:d},...g],redoMutations:[{id:ue.id,params:l},...v]}),!0):!1}},co=(n,t)=>{const e=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Se={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},uo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{var C;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(s.ErrorService),a=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(c=(C=t.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(a);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:a,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=co(n,m);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(Se.id,m)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Se.id,params:g}],redoMutations:[{id:Se.id,params:m}]}),!0):!1}},Tr=(n,t)=>{const e=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},st={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=n.get(exports.SheetInterceptorService),a=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:a},l=Tr(n,u),d=i.onCommandExecute({id:Vt.id,params:t}),m=[{id:st.id,params:u},...d.redos],g=[...d.undos,{id:st.id,params:l}];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},Dr=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),We={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),a=t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(i);if(!c||!c.getSheetBySheetId(a))return!1;const d={fromOrder:c.getConfig().sheetOrder.indexOf(a),toOrder:t.order,unitId:i,subUnitId:a},m=Dr(n,d);return o.syncExecuteCommand(We.id,d)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:m}],redoMutations:[{id:We.id,params:d}]}),!0):!1}},Er=2e3,mo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=a==null?void 0:a.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);u[g]=v.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:u}},Wt=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);u[g]=v.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:u}},Nr=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=a==null?void 0:a.getSheetBySheetId(e),u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:u}},de={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:i}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof i=="number"?S.h=i:S.h=(m=i[h])!=null?m:l,S.h=Math.min(Er,S.h)}return!0}},re={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:i}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof i=="number"?S.ia=i:S.ia=(m=i[h-g])!=null?m:l}return!0}},jt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=a==null?void 0:a.getSheetBySheetId(e);if(!c||!a)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},go={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const i=n.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),c=i.getUnitId(),u=a.getSheetId(),{anchorRow:l,deltaY:d}=t,g=a.getRowHeight(l)+d,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,h=e.filter(U=>U.range.rangeType===s.RANGE_TYPE.ROW),S=v?s.RANGE_TYPE.ALL:h.some(({range:U})=>{const{startRow:y,endRow:_}=U;return y<=l&&l<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const U=a.getRowCount(),y=new Array(a.getColumnCount()).fill(void 0).map((_,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:U-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:h.map(U=>s.Rectangle.clone(U.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const I=mo(n,C),p={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=Wt(n,p),R=n.get(s.ICommandService),M=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:de.id,params:C},{id:re.id,params:p}],R).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:I},{id:re.id,params:f}],redoMutations:[{id:de.id,params:C},{id:re.id,params:p}]}),!0):!1}},ho={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(exports.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const c=i.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:u,ranges:a,rowHeight:t.value},m=mo(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Wt(n,g);return s.sequenceExecute([{id:de.id,params:d},{id:re.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:de.id,params:m},{id:re.id,params:v}],redoMutations:[{id:de.id,params:d},{id:re.id,params:g}]}),!0):!1}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),i=n.get(s.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),c=i.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=t!=null?t:{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:a,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Wt(n,m),v=o.syncExecuteCommand(re.id,m),{undos:h,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ft.id,params:m}),C=s.sequenceExecute([...S],o);return v&&C.result?(e.pushUndoRedo({unitID:a,undoMutations:[{id:re.id,params:g},...h],redoMutations:[{id:re.id,params:m},...S]}),!0):!1}},vo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{var S;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),i=r.getCurrentUniverSheetInstance().getUnitId();let a=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(S=t.value)!=null?S:a);const c=r.getUniverSheetInstance(i);if(!c)return!1;const u=c.getSheetBySheetId(a);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:i,subUnitId:a,hidden:s.BooleanNumber.FALSE},m=co(n,d),g=o.syncExecuteCommand(Se.id,d),v={unitId:i,subUnitId:a},h=o.syncExecuteCommand(Ge.id,v);return g&&h?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Se.id,params:m}],redoMutations:[{id:Se.id,params:d}]}),!0):!1}},So=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},Co=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},mn=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,i)=>{let a=1,c=i;o(a*c,{startRow:e-c+1,endRow:e,startColumn:r,endColumn:r});const u={startRow:e-c+1,endRow:e,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&n.getValue(e,l);l--){c=Math.min(n.getValue(e,l)||0,c),a++;const d=c*a;u.startColumn=l,u.startRow=e-c+1,o(d,u)}}),t},Or=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,i=n.getValue(r,e)||0;for(;i>1;)n.setValue(r,e,i-1),r+=1,i=n.getValue(r,e)||0}),n),Ht=n=>{const t=[];let o=mn(n);for(;o.area>0;)o.range&&(t.push(o.range),Or(n,o.range)),o=mn(n);return t},$t=n=>{const t=So(n);return Ht(t)};class Ar{constructor(){B(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=Co(this._matrix);return Ht(t)}}const Pr=(n,t,o="")=>n.reduce((e,r)=>{const i=r&&r[t];return typeof i!="string"?(console.warn(r,`${t} is not string`),e):(i?(e[i]||(e[i]=[]),e[i].push(r)):e[o].push(r),e)},{}),kr=(n=0)=>{let t=n;return function(){return t++}},Ue=$.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Ue);const xr=(n,t)=>{const o=n.get(Ue),{values:e,unitId:r,subUnitId:i}=t,a=[],c=[],u=o.getModel(r,i)||void 0;Object.keys(e).forEach(d=>{e[d].ranges.forEach(g=>{s.Range.foreach(g,(v,h)=>{const S=o.getValue(r,i,v,h,u);S?a.push({pattern:S.pattern,type:S.type,row:v,col:h}):c.push({startColumn:h,endColumn:h,startRow:v,endRow:v})})})});const l=[];if(a.length){const d=it(r,i,a);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=$t(g.ranges)}),l.push({id:St.id,params:it(r,i,a)})}return c.length&&l.push({id:Gt.id,params:{unitId:r,subUnitId:i,ranges:c}}),l},St={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(Ue),i=t.unitId,a=t.subUnitId,c=Object.keys(o).reduce((u,l)=>{const d=e[l],m=o[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(i,a,c),!0}},Gt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Ue).deleteValues(o,e,r),!0}},Br=(n,t)=>{const o=n.get(Ue),{ranges:e,unitId:r,subUnitId:i}=t,a=[],c=o.getModel(r,i)||void 0;if(e.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=o.getValue(r,i,d,m,c);g&&a.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!a.length)return[];const u=it(r,i,a);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=$t(d.ranges)}),[{id:St.id,params:u}]},it=(n,t,o)=>{const e=Pr(o,"pattern"),r={},i={},a=kr();return Object.keys(e).forEach(c=>{const u=e[c],l=u[0],d=a();r[d]={pattern:c,type:l.type},u.forEach(m=>{i[d]||(i[d]={ranges:[]}),i[d].ranges.push(s.cellToRange(m.row,m.col))})}),{unitId:n,subUnitId:t,refMap:r,values:i}},fo={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Io={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ee.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ee.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ee.SetDefinedNameMutation.id,params:r}]}),!0):!1}},Ro={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ee.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ee.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ee.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},po={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ee.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ee.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ee.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},Mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},wo="maxCellsPerSheet",Lr=3e6;var Vr=Object.defineProperty,Wr=Object.getOwnPropertyDescriptor,jr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Wr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Vr(t,o,r),r},gn=(n,t)=>(o,e)=>t(o,e,n);let tt=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[L,at,Mt,ct,Un,dt,lt,Bt,go,kn,Pn,xe,fe,mt,gt,On,Nn,ke,Ce,xn,Me,Et,Ee,ut,je,Dt,De,vt,Re,ht,Ie,Nt,He,jn,V,no,eo,to,Fn,Gn,Be,Hn,$n,qn,Ne,Oe,Lt,Sr,Kn,ve,ro,we,H,ho,Xn,Pe,Ae,zn,Jn,Ot,Pt,Y,ao,Ve,Qn,io,so,oo,kt,Ge,ue,uo,Se,Vt,st,lo,We,jt,de,Ft,re,vo,St,G,Gt,fo,Io,Ro,po,Mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(wo,Lr)}};tt=jr([s.OnLifecycle(s.LifecycleStages.Starting,tt),gn(0,s.ICommandService),gn(1,s.IConfigService)],tt);var Fr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(n,t,o,e)=>{for(var r=e>1?void 0:e?Hr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Fr(t,o,r),r},Gr=(n,t)=>(o,e)=>t(o,e,n);let nt=class extends s.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ee.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o,unitOtherData:e}=t,r=Object.keys(o),i=[];return r.forEach(c=>{const u=o[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const m=u[d];if(m==null)return!0;const g={subUnitId:d,unitId:c,cellValue:m};i.push({id:H.id,params:g})})}),i.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};nt=$r([s.OnLifecycle(s.LifecycleStages.Ready,nt),Gr(0,s.ICommandService)],nt);var zr=Object.defineProperty,qr=Object.getOwnPropertyDescriptor,Yr=(n,t,o,e)=>{for(var r=e>1?void 0:e?qr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&zr(t,o,r),r},Je=(n,t)=>(o,e)=>t(o,e,n);let ot=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._currentUniverService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};ot=Yr([s.OnLifecycle(s.LifecycleStages.Ready,ot),Je(0,s.ICommandService),Je(1,ee.IFeatureCalculationManagerService),Je(2,s.IUniverInstanceService),Je(3,$.Inject(ee.FormulaDataModel))],ot);const A={MoveRangeCommandId:_n,InsertRowCommandId:En,InsertColCommandId:An,RemoveColCommandId:Wn,RemoveRowCommandId:Vn,DeleteRangeMoveLeftCommandId:bn,DeleteRangeMoveUpCommandId:Tn,InsertRangeMoveDownCommandId:ar,InsertRangeMoveRightCommandId:Dn,MoveColsCommandId:Ln,MoveRowsCommandId:Bn};var F=(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))(F||{}),Kr=Object.defineProperty,Jr=Object.getOwnPropertyDescriptor,Xr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Jr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Kr(t,o,r),r},ft=(n,t)=>(o,e)=>t(o,e,n);const Zr=s.createInterceptorKey("MERGE_REDO"),Qr=s.createInterceptorKey("MERGE_UNDO");exports.RefRangeService=class extends s.Disposable{constructor(o,e,r){super();B(this,"interceptor",new s.InterceptorManager({MERGE_REDO:Zr,MERGE_UNDO:Qr}));B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",es());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=hn(this._univerInstanceService),i=vn(this._univerInstanceService),u=((()=>{switch(o.id){case A.MoveColsCommandId:{const v=o.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],r,i)}case A.MoveRowsCommandId:{const v=o.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],r,i)}case A.MoveRangeCommandId:{const v=o;return this._checkRange([v.params.fromRange,v.params.toRange],r,i)}case A.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,i)}case A.InsertColCommandId:{const h=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,i)}case A.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,i)}case A.RemoveColCommandId:{const h=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,i)}case A.DeleteRangeMoveUpCommandId:case A.InsertRangeMoveDownCommandId:{const h=o.params.range||Sn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,i)}case A.DeleteRangeMoveLeftCommandId:case A.InsertRangeMoveRightCommandId:{const h=o.params.range||Sn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,i)}}})()||[]).reduce((v,h)=>{const S=h(o);return v.push(S),v},[]).reduce((v,h)=>{var S,C;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(C=h.preUndos)!=null?C:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});B(this,"_checkRange",(o,e,r)=>{const i=Cn(e,r),a=this._refRangeManagerMap.get(i);if(a){const c=new Set;return[...a.keys()].forEach(l=>{const d=a.get(l),m=this._serializer.deserialize(l);o.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});B(this,"registerRefRange",(o,e,r,i)=>{const a=r||hn(this._univerInstanceService),c=i||vn(this._univerInstanceService),u=Cn(a,c),l=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(e):d.set(l,new Set([e])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(e),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._sheetInterceptorService=o,this._univerInstanceService=e,this._selectionManagerService=r,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}};exports.RefRangeService=Xr([s.OnLifecycle(s.LifecycleStages.Steady,exports.RefRangeService),ft(0,$.Inject(exports.SheetInterceptorService)),ft(1,$.Inject(s.IUniverInstanceService)),ft(2,$.Inject(exports.SelectionManagerService))],exports.RefRangeService);function hn(n){return n.getCurrentUniverSheetInstance().getUnitId()}function vn(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Sn(n){return n.getSelectionRanges()||[]}function Cn(n,t){return`${n}_${t}`}function es(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((i,a,c)=>(i[String(c)]=a,i),{});return o.split(t).reduce((i,a,c)=>{const u=String(c);return a&&e[u]&&(i[e[u]]=a),i},{})},serialize:o=>n.reduce((e,r,i)=>{const a=o[r];return a!==void 0?`${e}${i>0?t:""}${a}`:`${e}`},"")}}const Xe=Number.MAX_SAFE_INTEGER,ce=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=Xe),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=Xe),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=Xe,t.startRow=0,t.endRow=Xe),t},le=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),zt=(n,t,o)=>{const e={...o},r={...t},i=(S,C)=>{const I=Math.max(S.start,C.start),p=Math.min(S.end,C.end);return p<I?null:{start:I,end:p}},a=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),l=t.start>n.start;if(l){const S=Math.min(n.end,t.start)-n.start+1;r.start-=S,r.end-=S}const d=a(n),m=d,g=i(n,e),v=g&&a(g)>=a(e);if(n.end<e.start)e.start-=d,e.end-=d;else if(g){const S=a(g);if(v){const C=c(e,n),I=u(C,r);e.start=I.start,e.end=I.end}else g.start>n.start||l?e.end-=S:(e.start-=d,e.end-=d+S)}const h=i(r,e);if(r.start<=e.start&&!v)e.start+=m,e.end+=m;else if(h){const S=r.start;if(a(h)<=a(e))return{step:e.start-o.start,length:0};S<e.start?(e.start+=m,e.end+=m):S>=e.start&&S<=e.end&&(e.end+=m,e.start+=m)}return{step:e.start-o.start,length:a(e)-a(o)}},qt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ce(o),i=ce(e),a=ce(t),c=zt({start:r.startRow,end:r.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return c===null?[{type:F.Delete}]:[{type:F.VerticalMove,step:c.step||0,length:c.length||0}]},ts=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return null;const{startRow:r}=o,{startRow:i}=e,a=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveRows(r,a,i),s.queryObjectMatrix(c,u=>u===1)},Yt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ce(o),i=ce(e),a=ce(t),c=zt({start:r.startColumn,end:r.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return c===null?[{type:F.Delete}]:[{type:F.HorizontalMove,step:c.step||0,length:c.length||0}]},ns=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return null;const{startColumn:r}=o,{startColumn:i}=e,a=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,a,i),s.queryObjectMatrix(c,u=>u===1)},yo=(n,t)=>{var i,a;const o=(i=n.params)==null?void 0:i.toRange,e=(a=n.params)==null?void 0:a.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:F.Delete}),s.Rectangle.contains(e,t)){r.push({type:F.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,o);return[{type:F.Set,range:u}]}return r},os=(n,t)=>{var g,v;const o=(g=n.params)==null?void 0:g.toRange,e=(v=n.params)==null?void 0:v.fromRange;if(!o||!e||s.Rectangle.contains(o,t))return null;if(s.Rectangle.contains(e,t)){const h=s.Rectangle.getRelativeRange(t,e);return s.Rectangle.getPositionRange(h,o)}const r=new s.ObjectMatrix;s.Range.foreach(t,(h,S)=>{r.setValue(h,S,1)});const i=new s.ObjectMatrix,a=s.Rectangle.getIntersects(e,t);a&&s.Range.foreach(a,(h,S)=>{r.getValue(h,S)&&(r.setValue(h,S,void 0),i.setValue(h,S,1))});const c=o.startColumn-e.startColumn,u=o.startRow-e.startRow,l={startColumn:o.startColumn-c,endColumn:o.endColumn-c,startRow:o.startRow-u,endRow:o.endRow-u},d=s.Rectangle.getIntersects(l,t);return d&&s.Range.foreach(d,(h,S)=>{const C=h+u,I=S+c;r.setValue(C,I,i.getValue(h,S))}),s.queryObjectMatrix(r,h=>h===1)},ze=(n,t)=>{const o=ce(n),e=ce(t),r=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const a=s.Rectangle.getIntersects(e,o);if(a)return{step:0,length:-r(a)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&i(o)>=i(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const a=s.Rectangle.getIntersects(e,o);if(a){const c=-r(a);return{step:-(r(o)-r(a)),length:c}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Kt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],r=ze(o,t);if(!r)e.push({type:F.Delete});else{const{step:a,length:c}=r;e.push({type:F.HorizontalMove,step:a,length:c})}return e},Jt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],r=ze(le(o),le(t));if(!r)e.push({type:F.Delete});else{const{step:a,length:c}=r;e.push({type:F.VerticalMove,step:a,length:c})}return e},qe=(n,t)=>{const o=ce(n),e=ce(t),r=i=>i.endColumn-i.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}},Xt=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=qe(le(o),le(t)),{step:i,length:a}=r;return e.push({type:F.VerticalMove,step:i,length:a}),e},Zt=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=qe(o,t),{step:i,length:a}=r;return e.push({type:F.HorizontalMove,step:i,length:a}),e},Qt=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=qe(le(o),le(t)),{step:i,length:a}=r;return e.push({type:F.VerticalMove,step:i,length:a}),e},en=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=qe(o,t),{step:i,length:a}=r;return e.push({type:F.HorizontalMove,step:i,length:a}),e},tn=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],r=ze(o,t);if(!r)e.push({type:F.Delete});else{const{step:a,length:c}=r;e.push({type:F.HorizontalMove,step:a,length:c})}return e},nn=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],r=ze(le(o),le(t));if(!r)e.push({type:F.Delete});else{const{step:a,length:c}=r;e.push({type:F.VerticalMove,step:a,length:c})}return e},Fe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case F.Delete:{o=null;break}case F.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case F.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case F.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},rs=(n,t)=>{let o=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:{o=tn(t,n);break}case A.DeleteRangeMoveUpCommandId:{o=nn(t,n);break}case A.InsertColCommandId:{o=Zt(t,n);break}case A.InsertRangeMoveDownCommandId:{o=Qt(t,n);break}case A.InsertRangeMoveRightCommandId:{o=en(t,n);break}case A.InsertRowCommandId:{o=Xt(t,n);break}case A.MoveColsCommandId:{o=Yt(t,n);break}case A.MoveRangeCommandId:{o=yo(t,n);break}case A.MoveRowsCommandId:{o=qt(t,n);break}case A.RemoveColCommandId:{o=Kt(t,n);break}case A.RemoveRowCommandId:{o=Jt(t,n);break}}return Fe(o,n)},ss=(n,t)=>{let o=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:{o=tn(t,n);break}case A.DeleteRangeMoveUpCommandId:{o=nn(t,n);break}case A.InsertRangeMoveDownCommandId:{o=Qt(t,n);break}case A.InsertRangeMoveRightCommandId:{o=en(t,n);break}case A.InsertColCommandId:{o=Zt(t,n);break}case A.InsertRowCommandId:{o=Xt(t,n);break}case A.MoveColsCommandId:return ns(t,n);case A.MoveRangeCommandId:return os(t,n);case A.MoveRowsCommandId:return ts(t,n);case A.RemoveColCommandId:{o=Kt(t,n);break}case A.RemoveRowCommandId:{o=Jt(t,n);break}}return Fe(o,n)};var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(n,t,o,e)=>{for(var r=e>1?void 0:e?as(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&is(t,o,r),r},_e=(n,t)=>(o,e)=>t(o,e,n);const us=[fe.id,Ce.id,Re.id,Ie.id],ds=[De.id,Ee.id];function Uo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:i,endRow:a,startColumn:c,endColumn:u}=o[r];if(t===s.Dimension.ROWS)for(let l=i;l<=a;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};e.push(d)}else if(t===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:i,endRow:a,startColumn:l,endColumn:l};e.push(d)}}o=e}return o}exports.MergeCellController=class extends s.Disposable{constructor(o,e,r,i,a,c){super();B(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case at.id:case ct.id:{const r=o._univerInstanceService.getCurrentUniverSheetInstance(),i=r.getUnitId(),a=r.getActiveSheet(),c=a.getSheetId(),u=a.getConfig().mergeData,l=o._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:i,subUnitId:c,ranges:l},g=Q(o._injector,m),v=[{id:V.id,params:m}],h=[{id:L.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case A.MoveColsCommandId:{const i=o.params;return this._handleMoveColsCommand(i,e,r)}case A.MoveRowsCommandId:{const i=o.params;return this._handleMoveRowsCommand(i,e,r)}case ke.id:{const i=o.params,a=i.unitId||e,c=i.subUnitId||r;return this._handleInsertRowCommand(i,a,c)}case xe.id:{const i=o.params,a=i.unitId||e,c=i.subUnitId||r;return this._handleInsertColCommand(i,a,c)}case vt.id:{const i=o.params;return this._handleRemoveColCommand(i,e,r)}case ht.id:{const i=o.params;return this._handleRemoveRowCommand(i,e,r)}case ut.id:{const i=o.params;return this._handleMoveRangeCommand(i,e,r)}case gt.id:{const i=o.params;return this._handleInsertRangeMoveRightCommand(i,e,r)}case mt.id:{const i=o.params;return this._handleInsertRangeMoveDownCommand(i,e,r)}case lt.id:{const i=o.params;return this._handleDeleteRangeMoveUpCommand(i,e,r)}case dt.id:{const i=o.params;return this._handleDeleteRangeMoveLeftCommand(i,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(i,a)=>{const c=this._univerInstanceService.getUniverSheetInstance(i);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const l=u.getMergeData(),d=m=>this.refRangeHandle(m,i,a);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,d,i,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===kt.id){const a=i.params,c=a.subUnitId,u=a.unitId;if(!c||!u)return;o(u,c)}if(i.id===L.id){const a=i.params,c=a.subUnitId,u=a.unitId;if(!c||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startRow:m,endRow:g}=d;if(c.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){u.ranges.push(S);const C=qt({id:A.MoveRowsCommandId,params:o},S),I=Fe(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=Q(this._injector,u),h=ae(this._injector,l);return{redos:[{id:V.id,params:u},{id:L.id,params:l}],undos:[{id:V.id,params:h},{id:L.id,params:v}]}}_handleMoveColsCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=[...a.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startColumn:m,endColumn:g}=d;if(c.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){u.ranges.push(S);const C=Yt({id:A.MoveColsCommandId,params:o},S),I=Fe(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=Q(this._injector,u),h=ae(this._injector,l);return{redos:[{id:V.id,params:u},{id:L.id,params:l}],undos:[{id:V.id,params:h},{id:L.id,params:v}]}}_handleMoveRangeCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=a.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,o.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,o.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,o.fromRange)).map(h=>s.Rectangle.getPositionRange(h,o.toRange)),m=Uo(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:V.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:V.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:V.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const{range:c}=o,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((p,f)=>(u>f.startRow&&u<=f.endRow&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((p,f)=>{if(u>f.startRow&&u<=f.endRow){const R=l-u+1;f.endRow+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g},{id:L.id,params:h}],I=[{id:V.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,r){const{range:i}=o,a=se(this._univerInstanceService,e);if(!a)return this._handleNull();const c=ie(a,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>(u>f.startColumn&&u<=f.endColumn&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>{if(u>f.startColumn&&u<=f.endColumn){const R=l-u+1;f.endColumn+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g},{id:L.id,params:h}],I=[{id:V.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const{range:c}=o,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(a.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(c,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(a.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(c,M)){if(u<=M.startColumn&&l>=M.endColumn)return R;u>=M.startColumn&&l<=M.endColumn?M.endColumn-=l-u+1:u<M.startColumn?(M.startColumn=u,M.endColumn-=l-u+1):l>M.endColumn&&(M.endColumn=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g}],I=[{id:L.id,params:h}],p=[{id:V.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,r){const{range:i}=o,a=se(this._univerInstanceService,e);if(!a)return this._handleNull();const c=ie(a,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=i,d=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(i,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(i,M)){if(u<=M.startRow&&l>=M.endRow)return R;u>=M.startRow&&l<=M.endRow?M.endRow-=l-u+1:u<M.startRow?(M.startRow=u,M.endRow-=l-u+1):l>M.endRow&&(M.endRow=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g}],I=[{id:L.id,params:h}],p=[{id:V.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=o.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn+U,endRow:C.endRow,endColumn:C.endColumn+U})}});const g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h);return{redos:[{id:V.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:V.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=o.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:T}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const _=T-f+1;m.push({startRow:p.startRow+_,startColumn:p.startColumn,endRow:p.endRow+_,endColumn:p.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:V.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=o.range,u=a.getMaxRows()-1,l=a.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:T}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const _=T-f+1,E=s.Rectangle.moveVertical(p,-_);m.push(E)}});const g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h),C=[{id:V.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:V.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,r){const i=se(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ie(i,r);if(!a)return this._handleNull();const c=o.range,u=a.getMaxColumns()-1,l=a.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn-U,endRow:C.endRow,endColumn:C.endColumn-U})}});const g={unitId:e,subUnitId:r,ranges:d},v=Q(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ae(this._injector,h);return{redos:[{id:V.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:V.id,params:S}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(ds.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:i,targetRange:a}=o.params,c=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,u=c?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=c?i.startRow:i.startColumn,d=c?a.startRow:a.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M}=C;s.Rectangle.intersects(C,i)||(c?l<I&&d>p?(I-=u,p-=u):l>p&&d<=I&&(I+=u,p+=u):l<f&&d>R?(f-=u,R-=u):l>R&&d<=f&&(f+=u,R+=u)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=o.params,S=C=>this.refRangeHandle(C,v,h);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,S,v,h))})}if(us.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const i=r.getConfig().mergeData,a=o.params;if(!a)return;const{range:c}=a,u=o.id.includes("row"),l=o.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,v=[];i.forEach(I=>{let{startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:T}=I;l?u?d<=p&&(p+=g,f+=g):d<=R&&(R+=g,M+=g):u?m<p&&(p-=g,f-=g):m<R&&(R-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||v.push({startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:T})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=o.params,C=I=>this.refRangeHandle(I,h,S);v.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,h,S))})}}))}};exports.MergeCellController=cs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),_e(0,$.Inject(s.ICommandService)),_e(1,$.Inject(exports.RefRangeService)),_e(2,$.Inject(s.IUniverInstanceService)),_e(3,$.Inject($.Injector)),_e(4,$.Inject(exports.SheetInterceptorService)),_e(5,$.Inject(exports.SelectionManagerService))],exports.MergeCellController);function se(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUniverSheetInstance()}function ie(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const ls={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},_o={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var ms=Object.defineProperty,gs=Object.getOwnPropertyDescriptor,hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?gs(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&ms(t,o,r),r},Ze=(n,t)=>(o,e)=>t(o,e,n);const fn="SHEET_NUMFMT_PLUGIN",vs=24*60*60*1e3;exports.NumfmtService=class extends s.Disposable{constructor(o,e,r,i){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new be.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=e,this._univerInstanceService=r,this._logService=i,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=r=>{const i=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(i,fn,{toJson:a=>this._toJson(a),parseJson:a=>this._parseJson(a),onChange:(a,c)=>{const{model:u,refModel:l}=c;if(u){const d=Object.keys(u).reduce((m,g)=>(m.set(g,new s.ObjectMatrix(u[g])),m),new Map);this._numfmtModel.set(a,d)}l&&this._refAliasModel.set(a,new s.RefAlias(l,["pattern","i"])),this._modelReplace$.next(a)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const i=r.getUnitId();this._numfmtModel.get(i)&&this._numfmtModel.delete(i),this._refAliasModel.get(i)&&this._refAliasModel.delete(i),this._resourceManagerService.disposePluginResource(i,fn)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(r=>o(r))}_toJson(o){const e=this._numfmtModel.get(o),r=this._refAliasModel.get(o);if(!e||!r)return"";const i=[...e.keys()].reduce((u,l)=>{const d=e.get(l);return u[l]=d.toJSON(),u},{}),a=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:i,refModel:a})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,e,r,i,a){let c=this.getModel(o,e);if(!c){const u=this._numfmtModel.get(o)||new Map,l=u.get(e)||new s.ObjectMatrix;u.set(e,l),this._numfmtModel.set(o,u),c=l}if(a)c.setValue(r,i,a);else if(c.realDeleteValue(r,i),!c.getSizeOf()){const l=this._numfmtModel.get(o);l==null||l.delete(e)}}_getUniqueRefId(o){const e=this._refAliasModel.get(o);if(!e)return"0";const r=e.getKeyMap("i");return`${Math.max(...r.map(a=>Number(a||0)),0)+1}`}getValue(o,e,r,i,a){const c=a||this.getModel(o,e);if(!c)return null;const u=this._refAliasModel.get(o),l=c.getValue(r,i);if(l&&u){const d=u.getValue(l==null?void 0:l.i,["i"]);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,e,r){let i=this._refAliasModel.get(o);const a=this.getModel(o,e);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),r.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=this.getValue(o,e,u,l,a);if(d&&d.pattern){const m=i.getValue(d.pattern,["pattern"]);m&&m.count--}this._setValue(o,e,u,l,null)})})}setValues(o,e,r){const i=this.getModel(o,e);let a=this._refAliasModel.get(o);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),r.forEach(c=>{let u=a.getValue(c.pattern,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(o),pattern:c.pattern,type:r[0].type},a.addValue(u)),c.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{if(i){const g=this.getValue(o,e,d,m,i);if(g&&g.pattern){const v=a.getValue(g.pattern,["pattern"]);v&&v.count--}}this._setValue(o,e,d,m,{i:u.i}),u.count++})})})}getModel(o,e){const r=this._numfmtModel.get(o);return r==null?void 0:r.get(e)}getRefModel(o){return this._refAliasModel.get(o)}serialTimeToTimestamp(o,e=!0){const r=new Date("1900-01-01").getTime();return(o-(e?25569:24107))*vs+r}};exports.NumfmtService=hs([Ze(0,$.Inject(s.ICommandService)),Ze(1,$.Inject(s.IResourceManagerService)),Ze(2,$.Inject(s.IUniverInstanceService)),Ze(3,$.Inject(s.ILogService))],exports.NumfmtService);const In="univer.sheet.editable";class pe extends s.PermissionPoint{constructor(o,e){super();B(this,"id",In);B(this,"value",!0);B(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${In}_${o}_${e}`}}var Ss=Object.defineProperty,Cs=Object.getOwnPropertyDescriptor,fs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Cs(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Ss(t,o,r),r},It=(n,t)=>(o,e)=>t(o,e,n);exports.SheetPermissionService=class extends s.Disposable{constructor(t,o,e){super(),this._permissionService=t,this._univerInstanceService=o,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),o=t.getUnitId();t.getSheets().forEach(e=>{const r=e.getSheetId(),i=new pe(o,r);this._permissionService.addPermissionPoint(t.getUnitId(),i)}),this.disposeWithMe(s.toDisposable(t.sheetCreated$.subscribe(e=>{const r=e.getSheetId(),i=new pe(o,r);this._permissionService.addPermissionPoint(t.getUnitId(),i)}))),this.disposeWithMe(s.toDisposable(t.sheetDisposed$.subscribe(e=>{const r=e.getSheetId(),i=new pe(o,r);this._permissionService.deletePermissionPoint(t.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(Te.PERMISSION,{priority:99,handler:(t,o,e)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=r==null?void 0:r.getActiveSheet(),a=r==null?void 0:r.getUnitId(),c=i==null?void 0:i.getSheetId();if(!a||!c)return!1;switch(o.id){case we.id:return this.getSheetEditable(a,c)}return e()}}))}getEditable$(t,o){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),i=e.getActiveSheet(),a=o||i.getSheetId(),c=new pe(r,a);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(No.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(t,o){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),i=e.getActiveSheet(),a=o||i.getSheetId(),c=new pe(r,a);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(t,o,e){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),i=o||r.getUnitId(),a=r.getActiveSheet(),c=e||a.getSheetId(),u=new pe(i,c);this._permissionService.updatePermissionPoint(i,u.id,t)}};exports.SheetPermissionService=fs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),It(0,$.Inject(s.IPermissionService)),It(1,$.Inject(s.IUniverInstanceService)),It(2,$.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function Is(n){const t=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),r=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new be.Observable(i=>{var c;const a=(c=o.getEditable$(e,r))==null?void 0:c.subscribe(u=>{i.next(!u.value)});return()=>{a==null||a.unsubscribe()}})}var Rs=Object.defineProperty,ps=Object.getOwnPropertyDescriptor,Ms=(n,t,o,e)=>{for(var r=e>1?void 0:e?ps(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&Rs(t,o,r),r},Qe=(n,t)=>(o,e)=>t(o,e,n);const Rn="SHEET_DEFINED_NAME_PLUGIN";let rt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=r=>{const i=this._definedNamesService.getDefinedNameMap(r);return i?JSON.stringify(i):""},t=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},o=r=>{const i=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(i,Rn,{toJson:a=>n(a),parseJson:a=>t(a),onChange:(a,c)=>{this._definedNamesService.registerDefinedNames(a,c)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const i=r.getUnitId();this._resourceManagerService.disposePluginResource(i,Rn)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();o(e)}};rt=Ms([s.OnLifecycle(s.LifecycleStages.Ready,rt),Qe(0,s.ICommandService),Qe(1,s.IUniverInstanceService),Qe(2,ee.IDefinedNamesService),Qe(3,s.IResourceManagerService)],rt);var ws=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Us=(n,t,o,e)=>{for(var r=e>1?void 0:e?ys(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(r=(e?a(t,o,r):a(r))||r);return e&&r&&ws(t,o,r),r},Rt=(n,t)=>(o,e)=>t(o,e,n);const _s="sheet";var pt;exports.UniverSheetsPlugin=(pt=class extends s.Plugin{constructor(t,o,e,r){super(_s),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[ye],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Ue,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[tt],[exports.MergeCellController],[rt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([nt],[ot]),o.forEach(r=>{t.add(r)})}},B(pt,"type",s.PluginType.Sheet),pt);exports.UniverSheetsPlugin=Us([Rt(1,s.ICommandService),Rt(2,$.Inject(s.LocaleService)),Rt(3,$.Inject($.Injector))],exports.UniverSheetsPlugin);const bs=[de.id,re.id,jt.id,ue.id,Ge.id,De.id,Ee.id,Ne.id,Oe.id,Pe.id,Ae.id,fe.id,Ce.id,Re.id,Ie.id],Ts=[H.id,je.id,V.id,L.id],Ds=1.5,Es="rgba(255,255,255, 0.01)";function Ns(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Os(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=bo(o)),r}function bo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:i,startColumn:a,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:i,startColumn:a,endRow:c,endColumn:u}}function As(n,t,o){const e=Oo.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Ps=(n,t,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:c,subUnitId:u}=t;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:v,startColumn:h,endRow:S,endColumn:C}=a[a.length-1];if(i===s.Dimension.COLUMNS){const R=o.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);R&&(C=R.endColumn,v=R.startRow,S=R.endRow)}else if(i===s.Dimension.ROWS){const R=o.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);R&&(S=R.endRow,h=R.startColumn,C=R.endColumn)}const I={startRow:v,startColumn:h,endRow:S,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},p=r.map((R,M,T)=>({range:R.range,style:null,primary:M===T.length-1?I:null})),f={unitId:c,subUnitId:u,pluginName:z,selections:p};return{id:G.id,params:f}}return null}return null},ks=(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:i}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:i,pluginName:z,selections:[...e]};return{id:G.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Ps;exports.AddMergeUndoMutationFactory=ae;exports.AddMergeUndoSelectionsOperationFactory=ks;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=ye;exports.COMMAND_LISTENER_SKELETON_CHANGE=bs;exports.COMMAND_LISTENER_VALUE_CHANGE=Ts;exports.ClearSelectionAllCommand=at;exports.ClearSelectionContentCommand=Mt;exports.ClearSelectionFormatCommand=ct;exports.CopySheetCommand=Un;exports.DeleteRangeMoveLeftCommand=dt;exports.DeleteRangeMoveUpCommand=lt;exports.DeltaColumnWidthCommand=Bt;exports.DeltaRowHeightCommand=go;exports.EffectRefRangId=A;exports.EmptyMutation=fo;exports.INTERCEPTOR_POINT=Te;exports.INumfmtService=Ue;exports.InsertColAfterCommand=kn;exports.InsertColBeforeCommand=Pn;exports.InsertColCommand=xe;exports.InsertColMutation=fe;exports.InsertColMutationUndoFactory=Tt;exports.InsertDefinedNameCommand=Io;exports.InsertRangeMoveDownCommand=mt;exports.InsertRangeMoveRightCommand=gt;exports.InsertRowAfterCommand=On;exports.InsertRowBeforeCommand=Nn;exports.InsertRowCommand=ke;exports.InsertRowMutation=Ce;exports.InsertRowMutationUndoFactory=bt;exports.InsertSheetCommand=xn;exports.InsertSheetMutation=Me;exports.InsertSheetUndoMutationFactory=wt;exports.MAX_CELL_PER_SHEET_KEY=wo;exports.MoveColsCommand=Et;exports.MoveColsMutation=Ee;exports.MoveRangeCommand=ut;exports.MoveRangeMutation=je;exports.MoveRowsCommand=Dt;exports.MoveRowsMutation=De;exports.NORMAL_SELECTION_PLUGIN_NAME=z;exports.OperatorType=F;exports.RangeMergeUtil=Ar;exports.RemoveColCommand=vt;exports.RemoveColMutation=Re;exports.RemoveDefinedNameCommand=Ro;exports.RemoveMergeUndoMutationFactory=Q;exports.RemoveNumfmtMutation=Gt;exports.RemoveRowCommand=ht;exports.RemoveRowMutation=Ie;exports.RemoveSheetCommand=Nt;exports.RemoveSheetMutation=He;exports.RemoveSheetUndoMutationFactory=yn;exports.RemoveWorksheetMergeCommand=jn;exports.RemoveWorksheetMergeMutation=V;exports.ResetBackgroundColorCommand=no;exports.ResetTextColorCommand=eo;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Es;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Ds;exports.ScrollToCellOperation=Mo;exports.SelectionMoveType=pn;exports.SetBackgroundColorCommand=to;exports.SetBoldCommand=Rr;exports.SetBorderBasicCommand=Fn;exports.SetBorderColorCommand=Gn;exports.SetBorderCommand=Be;exports.SetBorderPositionCommand=Hn;exports.SetBorderStyleCommand=$n;exports.SetColHiddenCommand=qn;exports.SetColHiddenMutation=Ne;exports.SetColVisibleMutation=Oe;exports.SetColWidthCommand=Lt;exports.SetDefinedNameCommand=po;exports.SetFontFamilyCommand=yr;exports.SetFontSizeCommand=Ur;exports.SetFrozenCommand=Kn;exports.SetFrozenMutation=ve;exports.SetFrozenMutationFactory=At;exports.SetHorizontalTextAlignCommand=ro;exports.SetItalicCommand=pr;exports.SetNumfmtMutation=St;exports.SetRangeValuesCommand=we;exports.SetRangeValuesMutation=H;exports.SetRangeValuesUndoMutationFactory=me;exports.SetRowHeightCommand=ho;exports.SetRowHiddenCommand=Xn;exports.SetRowHiddenMutation=Pe;exports.SetRowVisibleMutation=Ae;exports.SetSelectedColsVisibleCommand=zn;exports.SetSelectedRowsVisibleCommand=Jn;exports.SetSelectionsOperation=G;exports.SetSpecificColsVisibleCommand=Ot;exports.SetSpecificRowsVisibleCommand=Pt;exports.SetStrikeThroughCommand=wr;exports.SetStyleCommand=Y;exports.SetTabColorCommand=ao;exports.SetTabColorMutation=Ve;exports.SetTextColorCommand=Qn;exports.SetTextRotationCommand=io;exports.SetTextWrapCommand=so;exports.SetUnderlineCommand=Mr;exports.SetVerticalTextAlignCommand=oo;exports.SetWorksheetActivateCommand=kt;exports.SetWorksheetActiveOperation=Ge;exports.SetWorksheetColWidthMutation=ue;exports.SetWorksheetColWidthMutationFactory=xt;exports.SetWorksheetHideCommand=uo;exports.SetWorksheetHideMutation=Se;exports.SetWorksheetNameCommand=Vt;exports.SetWorksheetNameMutation=st;exports.SetWorksheetOrderCommand=lo;exports.SetWorksheetOrderMutation=We;exports.SetWorksheetRowAutoHeightMutation=jt;exports.SetWorksheetRowAutoHeightMutationFactory=Nr;exports.SetWorksheetRowHeightMutation=de;exports.SetWorksheetRowIsAutoHeightCommand=Ft;exports.SetWorksheetRowIsAutoHeightMutation=re;exports.SetWorksheetShowCommand=vo;exports.SheetEditablePermission=pe;exports.alignToMergedCellsBorders=$e;exports.convertPrimaryWithCoordToPrimary=bo;exports.convertSelectionDataToRange=Os;exports.createTopMatrixFromMatrix=Co;exports.createTopMatrixFromRanges=So;exports.enUS=ls;exports.factoryRemoveNumfmtUndoMutation=Br;exports.factorySetNumfmtUndoMutation=xr;exports.findAllRectangle=Ht;exports.followSelectionOperation=ge;exports.getAddMergeMutationRangeByType=Uo;exports.getCellAtRowCol=er;exports.getCurrentSheetDisabled$=Is;exports.getInsertRangeMutations=Ut;exports.getNormalSelectionStyle=Ns;exports.getPrimaryForRange=X;exports.getRemoveRangeMutations=_t;exports.handleBaseInsertRange=qe;exports.handleBaseMoveRowsCols=zt;exports.handleBaseRemoveRange=ze;exports.handleDefaultRangeChangeWithEffectRefCommands=rs;exports.handleDeleteRangeMoveLeft=tn;exports.handleDeleteRangeMoveUp=nn;exports.handleDeleteRangeMutation=or;exports.handleIRemoveCol=Kt;exports.handleIRemoveRow=Jt;exports.handleInsertCol=Zt;exports.handleInsertRangeMoveDown=Qt;exports.handleInsertRangeMoveRight=en;exports.handleInsertRangeMutation=nr;exports.handleInsertRow=Xt;exports.handleMoveCols=Yt;exports.handleMoveRange=yo;exports.handleMoveRows=qt;exports.handleOtherDefaultRangeChangeWithEffectRefCommands=ss;exports.rangeMerge=$t;exports.rotateRange=le;exports.runRefRangeMutations=Fe;exports.setEndForRange=tr;exports.transformCellDataToSelectionData=As;exports.transformCellsToRange=it;exports.zhCN=_o;