@univerjs/sheets 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use strict";var ko=Object.defineProperty;var Ao=(n,t,o)=>t in n?ko(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var L=(n,t,o)=>(Ao(n,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),K=require("@wendellhu/redi"),ke=require("rxjs"),ne=require("@univerjs/engine-formula"),dn=require("rxjs/operators"),xo=require("@univerjs/engine-render");var Vo=Object.defineProperty,Lo=Object.getOwnPropertyDescriptor,Bo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Lo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Vo(t,o,r),r},Fo=(n,t)=>(o,e)=>t(o,e,n);const Y="normalSelectionPluginName";var Mn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(Mn||{});exports.SelectionManagerService=class{constructor(t){L(this,"_selectionInfo",new Map);L(this,"_currentSelection",null);L(this,"_selectionMoveStart$",new ke.Subject);L(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());L(this,"_selectionMoving$",new ke.Subject);L(this,"selectionMoving$",this._selectionMoving$.asObservable());L(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));L(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());L(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:Y,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=Y,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:r},a)=>e===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.push(...i)}o&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const c=i.get(e);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(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=Bo([Fo(0,K.Inject(s.ThemeService))],exports.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),st={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Ho=Object.defineProperty,$o=Object.getOwnPropertyDescriptor,Go=(n,t,o,e)=>{for(var r=e>1?void 0:e?$o(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ho(t,o,r),r},zo=(n,t)=>(o,e)=>t(o,e,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();L(this,"_interceptorsByName",new Map);L(this,"_commandInterceptors",[]);L(this,"_workbookDisposables",new Map);L(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(st.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.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(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection;a._worksheetDisposables.set(ln(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(st.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:o})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(st.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:o,worksheet:c})}}))})};o.getSheets().forEach(c=>i(c)),e.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),e.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=ln(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Go([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),zo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function ln(n,t){return`${n}|${t.getSheetId()}`}const Ie=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.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))||{},f=l.getStyleByCell(S),R=Ko(f,h&&h.s?h.s:null);S.s=R,d.setValue(g,v,qo(S))}),{...t,options:{},cellValue:d.getMatrix()}};function qo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=i.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?v.t:v.v!==void 0?mn(v.v,v.t):mn(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?Yo(v.v)?1:0:v.v),h.v!==void 0&&(h.t=S),v.s!==void 0){const f=l.getStyleByCell(h);f==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const R=at(f,v.s?v.s:null);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!v.p&&h.p&&Zo(h.p,v.s?v.s:null)}v.custom!==void 0&&(h.custom=v.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function mn(n,t){return n===null?null:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Yo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function Ko(n,t){return Xo(n,t)}function Xo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Jo(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Jo(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function at(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 wn(n,t){return n.some(o=>o.startIndex===t)?wn(n,t+1):t}function Zo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(o<u){const g={st:o,ed:u},v=at({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=at(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),o=wn(r,l)}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=at({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}n.body.textRuns=s.normalizeTextRuns(e)}const gt={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:gt.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:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.clone()}const Tt={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:er(d)},g=Ie(n,m),v=a.onCommandExecute({id:Tt.id}),h=[{id:$.id,params:m},...v.redos],S=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function er(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const ht={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:tr(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:ht.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 tr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.clone()}const Et=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Ue={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function yn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function V(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function vt(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const Un=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=vt(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:c}=a,u=c.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:u,unitId:r}},Fe={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},_n={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=V(r,t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l}=i,d=s.Tools.deepClone(u.getConfig());d.name+=a.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},v=Et(n,g);return o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:Fe.id,params:v}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Ae={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.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}},H={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 Ke(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,l)||r.push(l)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Ke(a,t,o):a}function nr(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,c)=>(e={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)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function or(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const pe=(n,t,o)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:Y,selections:[{range:n,primary:oe(n,o)}]}});function rr(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function sr(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let c=a.startColumn;c<=a.endColumn;c++)e(i,c,a)}r(o)}return{forOperableEach:t}}const bn="sheet.command.move-range",St={type:s.CommandType.COMMAND,id:bn,handler:(n,t)=>{var R,C;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),c=V(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=ft(n,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const v=n.get(exports.SheetInterceptorService).onCommandExecute({id:St.id,params:{...t}}),h=[...(R=v.preRedos)!=null?R:[],...m.redos,...v.redos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:oe(t.toRange,u)}]}}],S=[...(C=v.preUndos)!=null?C:[],...m.undos,...v.undos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:oe(t.fromRange,u)}]}}];return s.sequenceExecute(h,o).result?(e.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:h}),!0):!1}};function ft(n,t,o,e=!1){const r=[],a=[],{range:i,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(),f=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&f){const R=Ke(l,v,!1);if(!s.Rectangle.equals(l,R)&&!e)return null;const C=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{C.setValue(U,E,f.getValue(U,E)),p.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(l,(U,E)=>{M.setValue(U,E,S.getValue(U,E))});const I=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{const P=s.cellToRange(U,E),G=s.Rectangle.getRelativeRange(P,i),z=s.Rectangle.getPositionRange(G,l);I.setValue(z.startRow,z.startColumn,f.getValue(U,E))});const w={from:{value:p.getMatrix(),subUnitId:c},to:{value:I.getMatrix(),subUnitId:d},unitId:u},_={from:{value:C.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u};r.push({id:Ae.id,params:w}),a.push({id:Ae.id,params:_})}return{redos:r,undos:a}}const Xe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!c)return!1;const{subUnitId:u,unitId:l}=c,{value:d,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const v=new s.ObjectMatrix;let h;if(s.Tools.isArray(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=0;P<=U-w;P++)for(let G=0;G<=E-_;G++)v.setValue(P+w,G+_,d[P][G])}else if(s.isICellData(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=w;P<=U;P++)for(let G=_;G<=E;G++)v.setValue(P,G,d)}else h=d;const S={subUnitId:u,unitId:l,cellValue:h!=null?h:v.getMatrix()},f=Ie(n,S),R=o.syncExecuteCommand($.id,S),{undos:C,redos:p}=i.onCommandExecute({id:Xe.id,params:{...S,range:g}}),M=s.sequenceExecute([...p],o);return R&&M.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}};function Nt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,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(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let p,M;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,h.endRow);let _=0;for(let E=i.startRow;E<=w;E++){const P=v.getRow(E),G=P?s.getArrayLength(P)-1:0;_=Math.max(_,G)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const U=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:p.startColumn+U,endRow:w,endColumn:p.endColumn+U}}else{const w=Math.min(i.endColumn,h.endColumn),_=h.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const U=i.endRow-i.startRow+1;M={startRow:p.startRow+U,startColumn:i.startColumn,endRow:p.endRow+U,endColumn:w}}const I=ft(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:M},!0);I&&(o.push(...I.redos),e.push(...I.undos))}if(Object.entries(u).length===0)for(let p=i.startRow;p<=i.endRow;p++){u[p]||(u[p]={});for(let M=i.startColumn;M<=i.endColumn;M++)u[p][M]=null}const S={subUnitId:a,unitId:r,cellValue:u},f=Ie(n,S),{undos:R,redos:C}=d.onCommandExecute({id:Xe.id,params:{...S,range:i}});o.push({id:$.id,params:S},...C),e.push({id:$.id,params:f},...R)}return{redo:o,undo:e}}function Dt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:cr([i])},S=Ie(n,h),f=l.onCommandExecute({id:Xe.id,params:h});if(o.push({id:$.id,params:h},...f.redos),e.push(...f.undos,{id:$.id,params:S}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,C=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const p=Math.min(i.endRow,v.endRow);let M=0;for(let w=i.startRow;w<=p;w++){const _=g.getRow(w),U=_?s.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:M};const I=i.endColumn-i.startColumn+1;C={startRow:i.startRow,startColumn:R.startColumn-I,endRow:p,endColumn:R.endColumn-I}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const p=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:p};const I=i.endRow-i.startRow+1;C={startRow:R.startRow-I,startColumn:i.startColumn,endRow:R.endRow-I,endColumn:p}}if(R&&C){const p=ft(n,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:C},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ar(n,t,o,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=o;m>=i;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>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;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=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ir(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;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=a;m<=i;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 cr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Tn="sheet.command.delete-range-move-left",Ct={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:Ct.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,l,u)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:m,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},En="sheet.command.delete-range-move-up",Rt={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:Rt.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,d,m)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:u,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},Ot=(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-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=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++)a?s.insertMatrixArray(S,(h=a[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}},Pt=(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-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 a=r.getColumnManager(),{range:i,colInfo:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const f={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-i.startColumn])!=null?h:f,l):s.insertMatrixArray(S,f,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},ur=(n,t)=>{const r=t.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}},ye={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getRowManager().getRowData();for(let d=a.startRow;d<=a.endRow;d++)r.getRowFiltered(d);const 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}},dr=(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 a=t.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}},lr="sheet.command.insert-range-move-down",It={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:g,workbook:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=g.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(C.startRow,C.endRow,h.startColumn,h.endColumn).getDataRange().endRow,I=Math.max(M+(h.endRow-h.startRow+1)-C.endRow,0);if(I>0){const X=h.startRow-1,J=g.getRowHeight(X),q={unitId:d,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+I,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:J,hd:s.BooleanNumber.FALSE}))};S.push({id:fe.id,params:q});const Q=Ot(n,q);f.push({id:ye.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=g.getCell(X,J);q&&(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:It.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,v,g)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:d,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Nn="sheet.command.insert-range-move-right",pt={type:s.CommandType.COMMAND,id:Nn,handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:g,subUnitId:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=m.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(h.startRow,h.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,I=Math.max(M+(h.endColumn-h.startColumn+1)-C.endColumn,0);if(I>0){const X=h.startColumn-1,J=m.getColumnWidth(X),q={unitId:g,subUnitId:v,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:J,hd:s.BooleanNumber.FALSE}))};S.push({id:Ce.id,params:q});const Q=Pt(n,q);f.push({id:Re.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=m.getCell(X,J);!q||!q.s||(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:v,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:pt.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,d,m)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Dn="sheet.command.insert-row",We={type:s.CommandType.COMMAND,id:Dn,handler:async(n,t)=>{var M,I;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.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),f={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},R=Ot(n,f),C=a.onCommandExecute({id:We.id,params:t});return s.sequenceExecute([{id:fe.id,params:f},...C.redos,pe(u,i,c)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=C.preUndos)!=null?M:[],{id:ye.id,params:R},...C.undos],redoMutations:[...(I=C.preRedos)!=null?I:[],{id:fe.id,params:f},...C.redos]}),!0):!1}},On={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=i.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:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(We.id,m)}},Pn={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(We.id,d)}},kn="sheet.command.insert-col",je={type:s.CommandType.COMMAND,id:kn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l}=t,{startColumn:d,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),v=g.getSheetBySheetId(t.subUnitId),h=c===s.Direction.LEFT?d:d-1,S=v.getColumnWidth(h),f={unitId:l,subUnitId:u,range:i,colInfo:new Array(m-d+1).fill(void 0).map(()=>({w:S,hd:s.BooleanNumber.FALSE}))},R=Pt(n,f),C=a.onCommandExecute({id:je.id,params:t});return s.sequenceExecute([...(M=C.preRedos)!=null?M:[],{id:Ce.id,params:f},...C.redos,pe(i,g,v)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(I=C.preUndos)!=null?I:[],{id:Re.id,params:R},...C.undos].filter(Boolean),redoMutations:[...(w=C.preRedos)!=null?w:[],{id:Ce.id,params:f},...C.redos].filter(Boolean)}),!0):!1}},An={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.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:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(je.id,m)}},xn={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(je.id,d)}},Vn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var h;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=yn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:c,workbook:u}=i;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});t?(l=(h=t.index)!=null?h:l,t.sheet?d=t.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},g=Et(n,m);return o.syncExecuteCommand(Ue.id,m)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Fe.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}};function mr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=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=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function gr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=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=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function hr(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function vr(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const Ln="sheet.command.move-rows",kt={id:Ln,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.ROW&&Q.range.startRow<=r&&r<=Q.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(hr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startRow:a,endRow:a+S.endRow-S.startRow},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=mr(n,p),w=a-r<0,_=S.endRow-S.startRow+1,U=w?C:{...C,startRow:C.startRow-_,endRow:C.endRow-_},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:kt.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:_e.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:_e.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0):!1}},Bn="sheet.command.move-cols",At={id:Bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.COLUMN&&Q.range.startColumn<=r&&r<=Q.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(vr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=gr(n,p),I=S.endColumn-S.startColumn+1,U=a-r<0?C:{...C,startColumn:C.startColumn-I,endColumn:C.endColumn-I},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:At.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:be.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:be.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0}},Fn="sheet.command.remove-row",Mt={type:s.CommandType.COMMAND,id:Fn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let w=r.startRow;w<=r.endRow;w++)u.getRowFiltered(w)&&m.push(w);const g=[];if(m.length){const w=[r.startRow,...m.map(U=>U+1)],_=[...m.map(U=>U-1),r.endRow];for(let U=w.length-1;U>=0;U--)w[U]<=_[U]&&g.push({startRow:w[U],endRow:_[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const v=[],h=[];g.forEach(w=>{const _={unitId:d,subUnitId:l,range:w},U=u.getCellMatrix().getSlice(w.startRow,w.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:U.getMatrix()},P=ur(_,u);v.push({id:ye.id,params:_}),h.unshift({id:fe.id,params:P},{id:$.id,params:E})});const S=e.onCommandExecute({id:Mt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],...v,...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],...h,...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],...v,...S.redos]}),!0):!1}},Wn="sheet.command.remove-col",wt={type:s.CommandType.COMMAND,id:Wn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},g=dr(n,m),v=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),h={unitId:d,subUnitId:l,cellValue:v.getMatrix()},S=e.onCommandExecute({id:wt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],{id:Re.id,params:m},...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],{id:Ce.id,params:g},{id:$.id,params:h},...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],{id:Re.id,params:m},...S.redos]}),!0):!1}},xt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var C,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=V(r,t);if(!i)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=i;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:d.getName()},v=Un(n,g),h=a.onCommandExecute({id:xt.id,params:{unitId:c,subUnitId:u}}),S=[...(C=h.preRedos)!=null?C:[],{id:Fe.id,params:g},...h.redos],f=[...(p=h.preUndos)!=null?p:[],{id:Ue.id,params:v},...h.undos];return s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:S}),!0):!1}},ge=(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}},B={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},se=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.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),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{subUnitId:c,unitId:u,worksheet:l}=i,d={unitId:u,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(I=>{g.forEach(w=>{s.Rectangle.intersects(I,w)&&(m=!0)})}),!m)return!1;const v=se(n,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),f=s.Tools.deepClone(h),R=f[f.length-1],{startRow:C,startColumn:p}=R.range;return R.primary={startRow:C,startColumn:p,endRow:C,endColumn:p,actualRow:C,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:v},{id:H.id,params:{selections:f}}],o)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:B.id,params:v},{id:H.id,params:{selections:S}}],redoMutations:[{id:F.id,params:v},{id:H.id,params:{selections:f}}]}),!0):!1}};class De{constructor(){L(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));L(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 Qe(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const Hn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),l=n.get(De);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(He.id,{unitId:o,subUnitId:e})}},$n={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(De).setType(t.value),o.executeCommand(He.id)}},Gn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setStyle(t.value),o.executeCommand(He.id)}},zn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setColor(t.value),o.executeCommand(He.id)}},He={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(De),c=V(r,t);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=a.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:v,color:h,type:S,activeBorderType:f}=i.getBorderInfo();if(!f)return!1;const R=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,C=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,I=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,w=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,_=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,E=S.indexOf("tlmr")>-1,P=S.indexOf("bltr")>-1,G=S.indexOf("mltr")>-1,z=S.indexOf("bctr")>-1,y=m[0],ie={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},X={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},J={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},q={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},Q={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},sn={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},an={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},cn={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},k=new s.ObjectMatrix,j={s:v,cl:{rgb:h}},Ze=(N,b)=>{let x=null;return g.forEach(ee=>{s.Rectangle.intersects(ee,{startColumn:b,endColumn:b,startRow:N,endRow:N})&&(x=ee)}),x};function W(N,b,x){N.startRow<0||N.startColumn<0||Qe(N,(ee,ce)=>{var T,$e;const te=Ze(ee,ce);let re=b;if(te&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(x){const ue=s.Tools.deepClone((T=k.getValue(te.startRow,te.startColumn))==null?void 0:T.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(te.startRow,te.startColumn,{s:{bd:re}})}else{if(x){const ue=s.Tools.deepClone(($e=k.getValue(ee,ce))==null?void 0:$e.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(ee,ce,{s:{bd:re}})}})}R&&(W(ie,{b:null}),W(Q,{t:s.Tools.deepClone(j)},!0)),p&&(W(J,{t:null}),W(an,{b:s.Tools.deepClone(j)},!0)),C&&(W(X,{r:null}),W(sn,{l:s.Tools.deepClone(j)},!0)),M&&(W(q,{l:null}),W(cn,{r:s.Tools.deepClone(j)},!0)),_&&W(y,{tl_br:s.Tools.deepClone(j)},!0),U&&W(y,{tl_bc:s.Tools.deepClone(j)},!0),E&&W(y,{tl_mr:s.Tools.deepClone(j)},!0),P&&W(y,{bl_tr:s.Tools.deepClone(j)},!0),G&&W(y,{ml_tr:s.Tools.deepClone(j)},!0),z&&W(y,{bc_tr:s.Tools.deepClone(j)},!0),I&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(x.startColumn!==y.startColumn){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==y.endColumn){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==y.startColumn){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),w&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endRow!==y.endRow){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(x.startRow!==y.startRow){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(N!==y.endRow){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(N!==y.startRow){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!R&&!p&&!C&&!M&&!I&&!w&&!_&&!U&&!E&&!P&&!G&&!z&&(W(ie,{b:null}),W(Q,{t:null},!0),W(J,{t:null}),W(an,{b:null},!0),W(X,{r:null}),W(sn,{l:null},!0),W(q,{l:null}),W(cn,{r:null},!0),W(y,{tl_br:null},!0),W(y,{tl_bc:null},!0),W(y,{tl_mr:null},!0),W(y,{bl_tr:null},!0),W(y,{ml_tr:null},!0),W(y,{bc_tr:null},!0),Qe(y,(N,b)=>{var ee,ce,te,re,T,$e,ue,un;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const D=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(x.startColumn!==y.startColumn){const D=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(x.endRow!==y.endRow){const D=(te=k.getValue(x.startRow,x.startColumn))==null?void 0:te.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(x.startRow!==y.startRow){const D=(re=k.getValue(x.startRow,x.startColumn))==null?void 0:re.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}else{if(b!==y.endColumn){const D=(T=k.getValue(N,b))==null?void 0:T.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(b!==y.startColumn){const D=($e=k.getValue(N,b))==null?void 0:$e.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(N!==y.endRow){const D=(ue=k.getValue(N,b))==null?void 0:ue.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(N!==y.startRow){const D=(un=k.getValue(N,b))==null?void 0:un.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}}));const Ut={unitId:l,subUnitId:d,cellValue:k.getData()},Po=Ie(n,Ut);return o.syncExecuteCommand($.id,Ut)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:Po}],redoMutations:[{id:$.id,params:Ut}]}),!0):!1}},Sr=(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}},xe={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}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}},Ve={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},c=fr(n,i),u={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},l={unitId:o,subUnitId:e,pluginName:Y,selections:Kn(r).map(g=>({range:g,primary:oe(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:xe.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},qn={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).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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(Vt.id,{unitId:i,subUnitId:c,ranges:u})}},Yn={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).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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},l={unitId:i,subUnitId:c,pluginName:Y,selections:Kn(o).map(h=>({range:h,primary:oe(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:o.map(h=>({range:h,primary:oe(h,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:xe.id,params:u},{id:H.id,params:l}],m).result){const h=n.get(s.IUndoRedoService),S=Sr(n,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:S},{id:H.id,params:d}],redoMutations:[{id:xe.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function Kn(n){return Cr(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Cr(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 Lt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},Me={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=V(r);if(!a)return!1;const{unitId:i,subUnitId:c,worksheet:u}=a,{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:c,...t},h=Lt(n,v);return o.syncExecuteCommand(Me.id,v)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:h}],redoMutations:[{id:Me.id,params:v}]}),!0):!1}},Rr={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=V(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=Lt(n,c);return t.syncExecuteCommand(Me.id,c)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:u}],redoMutations:[{id:Me.id,params:c}]}),!0):!1}},Ir=(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}},Le={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},pr=(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}},Be={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={unitId:o,subUnitId:e,ranges:r},l=Ir(n,u),d={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:oe(v,c),style:null}))},m={unitId:o,subUnitId:e,pluginName:Y,selections:Qn(r).map(v=>({range:v,primary:oe(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Be.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.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.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},Zn={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),a=(S=t.getSelections())==null?void 0:S.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,d={unitId:c,subUnitId:u,ranges:a},m={unitId:c,subUnitId:u,pluginName:Y,selections:Qn(a).map(f=>({range:f,primary:oe(f,l),style:null}))},g={unitId:c,subUnitId:u,pluginName:Y,selections:a.map(f=>({range:f,primary:oe(f,l),style:null}))},v=pr(n,d);return s.sequenceExecute([{id:Be.id,params:d},{id:H.id,params:m}],o).result&&e.pushUndoRedo({unitID:c,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:Be.id,params:d},{id:H.id,params:m}]}),!0}};function Qn(n){return Mr(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Mr(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 Z={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=V(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:c,style:u}=t,l=n.get(s.ICommandService),d=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const v=new s.ObjectMatrix,h=sr(i);if(s.Tools.isArray(u.value))for(let I=0;I<g.length;I++)h.forOperableEach(g[I],(w,_,U)=>{v.setValue(w,_,{s:{[u.type]:u.value[w-U.startRow][_-U.startColumn]}})});else for(let I=0;I<g.length;I++){const w={s:{[u.type]:u.value}};h.forOperableEach(g[I],(_,U)=>v.setValue(_,U,w))}const S={subUnitId:a,unitId:r,cellValue:v.getMatrix()},f=Ie(n,S),R=l.syncExecuteCommand($.id,S),{undos:C,redos:p}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Z.id,params:t}),M=s.sequenceExecute([...p],l);return R&&M.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}},wr={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,c={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,c)}},yr={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:c}=t.primary;r=e.getRange(i,c).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},Ur={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},_r={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}};s.CommandType.COMMAND;const br={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(Z.id,e)}},Tr={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(Z.id,e)}},eo={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(Z.id,e)}},to={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(Z.id,o)}},no={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(Z.id,e)}},oo={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(Z.id,o)}},ro={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(Z.id,e)}},so={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(Z.id,e)}},ao={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(Z.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(Z.id,r)}},Er=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={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}},co={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=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={color:t.value,unitId:a,subUnitId:i},u=Er(n,c);return o.syncExecuteCommand(ze.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:u}],redoMutations:[{id:ze.id,params:c}]}),!0):!1}},Je={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}},Nr=4,Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(c=>{setTimeout(()=>{const u=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},o);c(u)},Nr)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),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=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ve={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 a=r.getConfig().defaultColumnWidth,i=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=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={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),a=n.get(s.IUndoRedoService),i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:c,unitId:u,subUnitId:l}=i,{anchorCol:d,deltaX:m}=t,v=c.getColumnWidth(d)+m,h=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(_=>_.range.rangeType===s.RANGE_TYPE.COLUMN),f=h?s.RANGE_TYPE.ALL:S.some(({range:_})=>{const{startColumn:U,endColumn:E}=_;return U<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(f===s.RANGE_TYPE.ALL){const _=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,P)=>({startRow:0,endRow:_-1,startColumn:P,endColumn:P}));R={subUnitId:l,unitId:u,colWidth:v,ranges:U}}else f===s.RANGE_TYPE.COLUMN?R={subUnitId:l,unitId:u,ranges:S.map(_=>s.Rectangle.clone(_.range)),colWidth:v}:R={subUnitId:l,unitId:u,colWidth:v,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const C=Wt(n,R),p=r.syncExecuteCommand(ve.id,R),{undos:M,redos:I}=n.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:R}),w=s.sequenceExecute([...I],r);return p&&w.result&&a.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:C},...M],redoMutations:[{id:ve.id,params:R},...I]}),!0}},Ht={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),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:c,unitId:u}=i,l={subUnitId:c,unitId:u,ranges:a,colWidth:t.value},d=Wt(n,l),m=e.syncExecuteCommand(ve.id,l),{undos:g,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ht.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:d},...g],redoMutations:[{id:ve.id,params:l},...v]}),!0):!1}},uo=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},we={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}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=V(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=i;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},v=uo(n,g);return c.getSheets().filter(R=>R.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(we.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:we.id,params:v}],redoMutations:[{id:we.id,params:g}]}),!0):!1}},Dr=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},lt={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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var h,S;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),a=V(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:c}=a,u={subUnitId:c,name:t.name,unitId:i},l=Dr(n,u),d=r.onCommandExecute({id:$t.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:lt.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:lt.id,params:l},...d.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Or=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={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}},mo={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=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:c}=r,l={fromOrder:a.getConfig().sheetOrder.indexOf(c),toOrder:t.order,unitId:i,subUnitId:c},d=Or(n,l);return o.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:qe.id,params:d}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Pr=2e3,go=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.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}},Gt=(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}},kr=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.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}},Se={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,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 a=="number"?S.h=a:S.h=(m=a[h])!=null?m:l,S.h=Math.min(Pr,S.h)}return!0}},de={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,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 a=="number"?S.ia=a:S.ia=(m=a[h-g])!=null?m:l}return!0}},zt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},ho={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 r=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:c}=r,{anchorRow:u,deltaY:l}=t,m=a.getRowHeight(u)+l,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,v=e.filter(w=>w.range.rangeType===s.RANGE_TYPE.ROW),h=g?s.RANGE_TYPE.ALL:v.some(({range:w})=>{const{startRow:_,endRow:U}=w;return _<=u&&u<=U})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let S;if(h===s.RANGE_TYPE.ALL){const w=a.getRowCount(),_=new Array(a.getColumnCount()).fill(void 0).map((U,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:w-1}));S={subUnitId:i,unitId:c,rowHeight:m,ranges:_}}else h===s.RANGE_TYPE.ROW?S={subUnitId:i,unitId:c,ranges:v.map(w=>s.Rectangle.clone(w.range)),rowHeight:m}:S={subUnitId:i,unitId:c,rowHeight:m,ranges:[{startRow:u,endRow:u,startColumn:0,endColumn:a.getMaxColumns()-1}]};const f=go(n,S),R={unitId:c,subUnitId:i,ranges:S.ranges,autoHeightInfo:s.BooleanNumber.FALSE},C=Gt(n,R),p=n.get(s.ICommandService),M=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:Se.id,params:S},{id:de.id,params:R}],p).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:Se.id,params:f},{id:de.id,params:C}],redoMutations:[{id:Se.id,params:S},{id:de.id,params:R}]}),!0):!1}},vo={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),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=V(a);if(!c)return!1;const{unitId:u,subUnitId:l}=c,d={subUnitId:l,unitId:u,ranges:i,rowHeight:t.value},m=go(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Gt(n,g);return s.sequenceExecute([{id:Se.id,params:d},{id:de.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:Se.id,params:m},{id:de.id,params:v}],redoMutations:[{id:Se.id,params:d},{id:de.id,params:g}]}),!0):!1}},qt={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),a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,{anchorRow:d}=t!=null?t:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},v=Gt(n,g),h=o.syncExecuteCommand(de.id,g),{undos:S,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:qt.id,params:g}),R=s.sequenceExecute([...f],o);return h&&R.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:v},...S],redoMutations:[{id:de.id,params:g},...f]}),!0):!1}},So={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!V(n.get(s.IUniverInstanceService)))return!1;const u=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const l=u.getSheetBySheetId(e);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=uo(n,m),v=r.syncExecuteCommand(we.id,m),h={unitId:o,subUnitId:e},S=r.syncExecuteCommand(Je.id,h);return v&&S?(a.pushUndoRedo({unitID:o,undoMutations:[{id:we.id,params:g}],redoMutations:[{id:we.id,params:m}]}),!0):!1}},fo=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},gn=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,c=a;o(i*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),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,o(d,u)}}),t},Ar=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),Yt=n=>{const t=[];let o=gn(n);for(;o.area>0;)o.range&&(t.push(o.range),Ar(n,o.range)),o=gn(n);return t},Kt=n=>{const t=fo(n);return Yt(t)};class xr{constructor(){L(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 Yt(t)}}const Vr=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Lr=(n=0)=>{let t=n;return function(){return t++}},Oe=K.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const Br=(n,t)=>{const o=n.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[];Object.keys(e).forEach(l=>{e[l].ranges.forEach(m=>{s.Range.foreach(m,(g,v)=>{const h=o.getValue(r,a,g,v);h?i.push({pattern:h.pattern,row:g,col:v}):c.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const u=[];if(i.length){const l=mt(r,a,i);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=Kt(m.ranges)}),u.push({id:yt.id,params:mt(r,a,i)})}return c.length&&u.push({id:Xt.id,params:{unitId:r,subUnitId:a,ranges:c}}),u},yt={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(Oe),a=t.unitId,i=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(a,i,c),!0}},Xt={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(Oe).deleteValues(o,e,r),!0}},Fr=(n,t)=>{const o=n.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=o.getValue(r,a,l,d);m&&i.push({pattern:m.pattern,row:l,col:d})})}),!i.length)return[];const c=mt(r,a,i);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=Kt(l.ranges)}),[{id:yt.id,params:c}]},mt=(n,t,o)=>{const e=Vr(o,"pattern"),r={},a={},i=Lr();return Object.keys(e).forEach(c=>{const u=e[c],l=i();r[l]={pattern:c},u.forEach(d=>{a[l]||(a[l]={ranges:[]}),a[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},Ro={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(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},po={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},Mo={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},wo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Jt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Zt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var l;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(exports.SheetInterceptorService).onCommandExecute({id:Zt.id,params:t}),i={name:t.name,unitId:t.unitId},c=[...(l=a.preRedos)!=null?l:[],{id:Jt.id,params:i},...a.redos],u=n.get(s.ICommandService);return s.sequenceExecute(c,u).result}},yo="maxCellsPerSheet",Wr=3e6;var jr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(n,t,o,e)=>{for(var r=e>1?void 0:e?Hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&jr(t,o,r),r},hn=(n,t)=>(o,e)=>t(o,e,n);let it=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[B,gt,Tt,ht,_n,Ct,Rt,jt,ho,xn,An,je,Ce,It,pt,Pn,On,We,fe,Vn,Ue,At,be,St,Ae,kt,_e,wt,Re,Mt,ye,xt,Fe,jn,F,oo,to,no,Hn,zn,He,$n,Gn,Yn,xe,Ve,Ht,Rr,Xn,Me,so,Xe,$,vo,Zn,Be,Le,qn,Jn,Vt,Bt,Z,co,ze,eo,io,ao,ro,Zt,Jt,Ft,Je,ve,lo,we,$t,lt,mo,qe,zt,Se,qt,de,So,yt,H,Xt,Ro,Io,po,Mo,wo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(yo,Wr)}};it=$r([s.OnLifecycle(s.LifecycleStages.Starting,it),hn(0,s.ICommandService),hn(1,s.IConfigService)],it);var Gr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,qr=(n,t,o,e)=>{for(var r=e>1?void 0:e?zr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Gr(t,o,r),r},vn=(n,t)=>(o,e)=>t(o,e,n);let ct=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const c=o[i];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(i,l,d),g={subUnitId:l,unitId:i,cellValue:m};r.push({id:$.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),c=new s.ObjectMatrix(o);return c.forValue((u,l,d)=>{const m=i==null?void 0:i.getValue(u,l),g=ne.handleNumfmtInCell(m,d,r);c.setValue(u,l,g)}),c.clone()}};ct=qr([s.OnLifecycle(s.LifecycleStages.Ready,ct),vn(0,K.Inject(s.IUniverInstanceService)),vn(1,s.ICommandService)],ct);var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Xr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Kr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Yr(t,o,r),r},et=(n,t)=>(o,e)=>t(o,e,n);let ut=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};ut=Xr([s.OnLifecycle(s.LifecycleStages.Ready,ut),et(0,s.ICommandService),et(1,ne.IFeatureCalculationManagerService),et(2,s.IUniverInstanceService),et(3,K.Inject(ne.FormulaDataModel))],ut);const O={MoveRangeCommandId:bn,InsertRowCommandId:Dn,InsertColCommandId:kn,RemoveColCommandId:Wn,RemoveRowCommandId:Fn,DeleteRangeMoveLeftCommandId:Tn,DeleteRangeMoveUpCommandId:En,InsertRangeMoveDownCommandId:lr,InsertRangeMoveRightCommandId:Nn,MoveColsCommandId:Bn,MoveRowsCommandId:Ln};var A=(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))(A||{});const tt=Number.MAX_SAFE_INTEGER,he=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=tt),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=tt),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=tt,t.startRow=0,t.endRow=tt),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ye=(n,t,o)=>{const e={...o},r={...t},a=(S,f)=>{const R=Math.max(S.start,f.start),C=Math.min(S.end,f.end);return C<R?null:{start:R,end:C}},i=S=>S.end-S.start+1,c=(S,f)=>({start:S.start-f.start,end:S.start-f.start+S.end-S.start}),u=(S,f)=>({start:f.start+S.start,end:f.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=i(n),m=d,g=a(n,e),v=g&&i(g)>=i(e);if(n.end<e.start)e.start-=d,e.end-=d;else if(g){const S=i(g);if(v){const f=c(e,n),R=u(f,r);e.start=R.start,e.end=R.end}else g.start>n.start?l?(e.end-=S+d,e.start-=d):e.end-=S:l?e.end-=S:e.start>n.start&&e.end>n.end?(e.start-=d,e.end-=d+S):e.end-=S}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Qt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:c.step||0,length:c.length||0}]},Jr=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},en=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:c.step||0,length:c.length||0}]},Zr=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Uo=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:A.Delete}),s.Rectangle.contains(e,t)){r.push({type:A.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,o);return[{type:A.Set,range:u}]}return r},Qr=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,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};return l&&s.Range.foreach(l,(v,h)=>{var R;const S=v+u,f=h+c;r.setValue(S,f,(R=a.getValue(v,h))!=null?R:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(n,t)=>{const o=he(n),e=he(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},tn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},nn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},Ee=(n,t)=>{const o=he(n),e=he(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function es(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:A.Delete}),s.Rectangle.contains(n,o)){e.push({type:A.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:A.Set,range:a}]}return e}const on=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},rn=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},_o=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},ts=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},bo=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},ns=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},To=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},os=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Eo=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},rs=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ne=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},ss=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:{o=To(t,n);break}case O.DeleteRangeMoveUpCommandId:{o=Eo(t,n);break}case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRangeMoveDownCommandId:{o=_o(t,n);break}case O.InsertRangeMoveRightCommandId:{o=bo(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:{o=en(t,n);break}case O.MoveRangeCommandId:{o=Uo(t,n);break}case O.MoveRowsCommandId:{o=Qt(t,n);break}case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)},as=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:return os(t,n);case O.DeleteRangeMoveUpCommandId:return rs(t,n);case O.InsertRangeMoveDownCommandId:return ts(t,n);case O.InsertRangeMoveRightCommandId:return ns(t,n);case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:return Zr(t,n);case O.MoveRangeCommandId:return Qr(t,n);case O.MoveRowsCommandId:return Jr(t,n);case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)};function is(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:A.Unknown};switch(o){case Fe.id:r.type=A.Delete;break;case _e.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=A.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Re.id:r=Te(e.range,n),r?r.type=A.HorizontalMove:r={step:0,length:0,type:A.Delete};break;case ye.id:r=Te(ae(e.range),ae(n)),r?r.type=A.VerticalMove:r={step:0,length:0,type:A.Delete};break;case fe.id:r=Ee(ae(e.range),ae(n)),r.type=A.VerticalMove;break;case Ce.id:r=Ee(e.range,n),r.type=A.HorizontalMove;break;case Ae.id:r=es(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Ne(r,n):Ne([r],n):n}var cs=Object.defineProperty,us=Object.getOwnPropertyDescriptor,ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?us(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&cs(t,o,r),r},nt=(n,t)=>(o,e)=>t(o,e,n);const ls=s.createInterceptorKey("MERGE_REDO"),ms=s.createInterceptorKey("MERGE_UNDO");class gs extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=is(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}exports.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();L(this,"interceptor",new s.InterceptorManager({MERGE_REDO:ls,MERGE_UNDO:ms}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",hs());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Sn(this._univerInstanceService),a=fn(this._univerInstanceService),u=((()=>{switch(o.id){case O.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,a)}case O.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,a)}case O.MoveRangeCommandId:{const v=o;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case O.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.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,a)}case O.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.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,a)}case O.DeleteRangeMoveUpCommandId:case O.InsertRangeMoveDownCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,a)}case O.DeleteRangeMoveLeftCommandId:case O.InsertRangeMoveRightCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,a)}}})()||[]).reduce((v,h)=>{const S=h(o);return v.push(S),v},[]).reduce((v,h)=>{var S,f;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(f=h.preUndos)!=null?f:[]),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}}})});L(this,"_checkRange",(o,e,r)=>{const a=Rn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);o.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});L(this,"registerRefRange",(o,e,r,a)=>{const i=r||Sn(this._univerInstanceService),c=a||fn(this._univerInstanceService),u=Rn(i,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._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new gs(o,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=ds([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),nt(0,s.ICommandService),nt(1,K.Inject(exports.SheetInterceptorService)),nt(2,K.Inject(s.IUniverInstanceService)),nt(3,K.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Sn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function fn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Cn(n){return n.getSelectionRanges()||[]}function Rn(n,t){return`${n}_${t}`}function hs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var vs=Object.defineProperty,Ss=Object.getOwnPropertyDescriptor,fs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ss(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&vs(t,o,r),r},Pe=(n,t)=>(o,e)=>t(o,e,n);const Cs=[Ce.id,fe.id,Re.id,ye.id],Rs=[_e.id,be.id];function No(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;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:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}o=e}return o}exports.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,c){super();L(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case gt.id:case ht.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.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:a,subUnitId:c,ranges:l},g=se(o._injector,m),v=[{id:F.id,params:m}],h=[{id:B.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case O.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case O.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case We.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case je.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case wt.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case Mt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case St.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case pt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case It.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case Rt.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case Ct.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const c=i==null?void 0:i.getSheetBySheetId(a);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,a);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ft.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(c,i)}if(r.id===B.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.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 f=Qt({id:O.MoveRowsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveColsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.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 f=en({id:O.MoveColsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveRangeCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=i.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=No(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>(u>p.startRow&&u<=p.endRow&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>{if(u>p.startRow&&u<=p.endRow){const M=l-u+1;p.endRow+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>(u>p.startColumn&&u<=p.endColumn&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>{if(u>p.startColumn&&u<=p.endColumn){const M=l-u+1;p.endColumn+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleRemoveColCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(c,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(c,I)){if(u<=I.startColumn&&l>=I.endColumn)return M;u>=I.startColumn&&l<=I.endColumn?I.endColumn-=l-u+1:u<I.startColumn?(I.startColumn=u,I.endColumn-=l-u+1):l>I.endColumn&&(I.endColumn=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(a,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(a,I)){if(u<=I.startRow&&l>=I.endRow)return M;u>=I.startRow&&l<=I.endRow?I.endRow-=l-u+1:u<I.startRow?(I.startRow=u,I.endRow-=l-u+1):l>I.endRow&&(I.endRow=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1;m.push({startRow:C.startRow+E,startColumn:C.startColumn,endRow:C.endRow+E,endColumn:C.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1,P=s.Rectangle.moveVertical(C,-E);m.push(P)}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.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(Rs.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I}=f;s.Rectangle.intersects(f,a)||(c?l<R&&d>C?(R-=u,C-=u):l>C&&d<=R&&(R+=u,C+=u):l<p&&d>M?(p-=u,M-=u):l>M&&d<=p&&(p+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=o.params,S=f=>this.refRangeHandle(f,v,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,v,h))})}if(Cs.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:c}=i,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=[];a.forEach(R=>{let{startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w}=R;l?u?d<=C&&(C+=g,p+=g):d<=M&&(M+=g,I+=g):u?m<C&&(C-=g,p-=g):m<M&&(M-=g,I-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=o.params,f=R=>this.refRangeHandle(R,h,S);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,S))})}}))}};exports.MergeCellController=fs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Pe(0,K.Inject(s.ICommandService)),Pe(1,K.Inject(exports.RefRangeService)),Pe(2,K.Inject(s.IUniverInstanceService)),Pe(3,K.Inject(K.Injector)),Pe(4,K.Inject(exports.SheetInterceptorService)),Pe(5,K.Inject(exports.SelectionManagerService))],exports.MergeCellController);function le(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function me(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Is={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},Do={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},ps={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ms=Object.defineProperty,ws=Object.getOwnPropertyDescriptor,ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?ws(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ms(t,o,r),r},_t=(n,t)=>(o,e)=>t(o,e,n);exports.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const c=a.getStyles(),u=i.getCellRaw(e,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=a.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,v={...m&&i.get(m)||{}};delete v.n;const h=i.setValue(v);d.s=h})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),c=a.getCellMatrix();e.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=a.getCellRaw(d,m);if(g){const h={...g.s&&i.get(g.s)||{},n:{pattern:u.pattern}},S=i.setValue(h);g.s=S}else{const v={n:{pattern:u.pattern}},h=i.setValue(v);h&&c.setValue(d,m,{s:h})}})})})}};exports.NumfmtService=ys([_t(0,s.IResourceManagerService),_t(1,s.IUniverInstanceService),_t(2,s.ILogService)],exports.NumfmtService);const In="univer.sheet.editable";class Ge extends s.PermissionPoint{constructor(o,e){super();L(this,"id",In);L(this,"value",!0);L(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${In}_${o}_${e}`}}var Us=Object.defineProperty,_s=Object.getOwnPropertyDescriptor,bs=(n,t,o,e)=>{for(var r=e>1?void 0:e?_s(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Us(t,o,r),r},pn=(n,t)=>(o,e)=>t(o,e,n);exports.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();L(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(dn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(dn.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),c.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),c=a.getActiveSheet(),u=r||c.getSheetId(),l=new Ge(i,u);this._permissionService.updatePermissionPoint(i,l.id,o)}};exports.SheetPermissionService=bs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),pn(0,K.Inject(s.IPermissionService)),pn(1,K.Inject(s.IUniverInstanceService))],exports.SheetPermissionService);function Ts(n){var a,i,c;const t=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(c=o.getEditable$(e,r))==null?void 0:c.pipe(ke.map(u=>!u.value))}var Es=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ns(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Es(t,o,r),r},ot=(n,t)=>(o,e)=>t(o,e,n);const Os="SHEET_DEFINED_NAME_PLUGIN";let dt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Os,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};dt=Ds([s.OnLifecycle(s.LifecycleStages.Ready,dt),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,ne.IDefinedNamesService),ot(3,s.IResourceManagerService)],dt);var Ps=Object.defineProperty,ks=Object.getOwnPropertyDescriptor,As=(n,t,o,e)=>{for(var r=e>1?void 0:e?ks(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ps(t,o,r),r},bt=(n,t)=>(o,e)=>t(o,e,n);const xs="sheets";var rt;exports.UniverSheetsPlugin=(rt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Do})}_initializeDependencies(t){var e;const o=[[De],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[it],[exports.MergeCellController],[dt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ct],[ut]),o.forEach(r=>{t.add(r)})}},L(rt,"pluginName",xs),L(rt,"type",s.UniverInstanceType.UNIVER_SHEET),rt);exports.UniverSheetsPlugin=As([bt(1,s.ICommandService),bt(2,K.Inject(s.LocaleService)),bt(3,K.Inject(K.Injector))],exports.UniverSheetsPlugin);const Vs=[Se.id,de.id,zt.id,ve.id,Je.id,_e.id,be.id,xe.id,Ve.id,Be.id,Le.id,Ce.id,fe.id,Re.id,ye.id],Ls=[$.id,Ae.id,F.id,B.id],Bs=1.5,Fs="rgba(255, 255, 255, 0.01)";function Ws(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 js(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=Oo(o)),r}function Oo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function Hs(n,t,o){const e=xo.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const $s=(n,t,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,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:f}=i[i.length-1];if(a===s.Dimension.COLUMNS){const M=o.find(I=>I.startColumn===m&&I.endColumn===m&&g===I.startRow);M&&(f=M.endColumn,v=M.startRow,S=M.endRow)}else if(a===s.Dimension.ROWS){const M=o.find(I=>I.startRow===g&&I.endRow===g&&m===I.startColumn);M&&(S=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:v,startColumn:h,endRow:S,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},C=r.map((M,I,w)=>({range:M.range,style:null,primary:I===w.length-1?R:null})),p={unitId:c,subUnitId:u,pluginName:Y,selections:C};return{id:H.id,params:p}}return null}return null},Gs=(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=$s;exports.AddMergeUndoMutationFactory=ge;exports.AddMergeUndoSelectionsOperationFactory=Gs;exports.AddWorksheetMergeMutation=B;exports.BorderStyleManagerService=De;exports.COMMAND_LISTENER_SKELETON_CHANGE=Vs;exports.COMMAND_LISTENER_VALUE_CHANGE=Ls;exports.ClearSelectionAllCommand=gt;exports.ClearSelectionContentCommand=Tt;exports.ClearSelectionFormatCommand=ht;exports.CopySheetCommand=_n;exports.DeleteRangeMoveLeftCommand=Ct;exports.DeleteRangeMoveUpCommand=Rt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=ho;exports.EffectRefRangId=O;exports.EmptyMutation=Ro;exports.INTERCEPTOR_POINT=st;exports.INumfmtService=Oe;exports.InsertColAfterCommand=xn;exports.InsertColBeforeCommand=An;exports.InsertColCommand=je;exports.InsertColMutation=Ce;exports.InsertColMutationUndoFactory=Pt;exports.InsertDefinedNameCommand=Io;exports.InsertRangeMoveDownCommand=It;exports.InsertRangeMoveRightCommand=pt;exports.InsertRowAfterCommand=Pn;exports.InsertRowBeforeCommand=On;exports.InsertRowCommand=We;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ot;exports.InsertSheetCommand=Vn;exports.InsertSheetMutation=Ue;exports.InsertSheetUndoMutationFactory=Et;exports.MAX_CELL_PER_SHEET_KEY=yo;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=St;exports.MoveRangeMutation=Ae;exports.MoveRowsCommand=kt;exports.MoveRowsMutation=_e;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=A;exports.RangeMergeUtil=xr;exports.RemoveColCommand=wt;exports.RemoveColMutation=Re;exports.RemoveDefinedNameCommand=po;exports.RemoveMergeUndoMutationFactory=se;exports.RemoveNumfmtMutation=Xt;exports.RemoveRowCommand=Mt;exports.RemoveRowMutation=ye;exports.RemoveSheetCommand=xt;exports.RemoveSheetMutation=Fe;exports.RemoveSheetUndoMutationFactory=Un;exports.RemoveWorksheetMergeCommand=jn;exports.RemoveWorksheetMergeMutation=F;exports.ResetBackgroundColorCommand=oo;exports.ResetTextColorCommand=to;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Fs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Bs;exports.ScrollToCellOperation=wo;exports.SelectionMoveType=Mn;exports.SetBackgroundColorCommand=no;exports.SetBoldCommand=wr;exports.SetBorderBasicCommand=Hn;exports.SetBorderColorCommand=zn;exports.SetBorderCommand=He;exports.SetBorderPositionCommand=$n;exports.SetBorderStyleCommand=Gn;exports.SetColHiddenCommand=Yn;exports.SetColHiddenMutation=xe;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Ht;exports.SetDefinedNameCommand=Mo;exports.SetFontFamilyCommand=br;exports.SetFontSizeCommand=Tr;exports.SetFrozenCommand=Xn;exports.SetFrozenMutation=Me;exports.SetFrozenMutationFactory=Lt;exports.SetHorizontalTextAlignCommand=so;exports.SetItalicCommand=yr;exports.SetNumfmtMutation=yt;exports.SetRangeValuesCommand=Xe;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=vo;exports.SetRowHiddenCommand=Zn;exports.SetRowHiddenMutation=Be;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=qn;exports.SetSelectedRowsVisibleCommand=Jn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=Vt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=_r;exports.SetStyleCommand=Z;exports.SetTabColorCommand=co;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=eo;exports.SetTextRotationCommand=io;exports.SetTextWrapCommand=ao;exports.SetUnderlineCommand=Ur;exports.SetVerticalTextAlignCommand=ro;exports.SetWorkbookNameCommand=Zt;exports.SetWorkbookNameMutation=Jt;exports.SetWorksheetActivateCommand=Ft;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ve;exports.SetWorksheetColWidthMutationFactory=Wt;exports.SetWorksheetHideCommand=lo;exports.SetWorksheetHideMutation=we;exports.SetWorksheetNameCommand=$t;exports.SetWorksheetNameMutation=lt;exports.SetWorksheetOrderCommand=mo;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=zt;exports.SetWorksheetRowAutoHeightMutationFactory=kr;exports.SetWorksheetRowHeightMutation=Se;exports.SetWorksheetRowIsAutoHeightCommand=qt;exports.SetWorksheetRowIsAutoHeightMutation=de;exports.SetWorksheetShowCommand=So;exports.SheetEditablePermission=Ge;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=Oo;exports.convertSelectionDataToRange=js;exports.createTopMatrixFromMatrix=Co;exports.createTopMatrixFromRanges=fo;exports.enUS=Is;exports.factoryRemoveNumfmtUndoMutation=Fr;exports.factorySetNumfmtUndoMutation=Br;exports.findAllRectangle=Yt;exports.followSelectionOperation=pe;exports.getAddMergeMutationRangeByType=No;exports.getCellAtRowCol=nr;exports.getCurrentSheetDisabled$=Ts;exports.getInsertRangeMutations=Nt;exports.getMoveRangeUndoRedoMutations=ft;exports.getNormalSelectionStyle=Ws;exports.getPrimaryForRange=oe;exports.getRemoveRangeMutations=Dt;exports.getSheetCommandTarget=V;exports.getSheetCommandTargetWorkbook=yn;exports.getSheetMutationTarget=vt;exports.handleBaseInsertRange=Ee;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=as;exports.handleDefaultRangeChangeWithEffectRefCommands=ss;exports.handleDeleteRangeMoveLeft=To;exports.handleDeleteRangeMoveUp=Eo;exports.handleDeleteRangeMutation=ir;exports.handleIRemoveCol=tn;exports.handleIRemoveRow=nn;exports.handleInsertCol=rn;exports.handleInsertRangeMoveDown=_o;exports.handleInsertRangeMoveRight=bo;exports.handleInsertRangeMutation=ar;exports.handleInsertRow=on;exports.handleMoveCols=en;exports.handleMoveRange=Uo;exports.handleMoveRows=Qt;exports.isSingleCellSelection=rr;exports.rangeMerge=Kt;exports.rotateRange=ae;exports.ruRU=ps;exports.runRefRangeMutations=Ne;exports.setEndForRange=or;exports.transformCellDataToSelectionData=Hs;exports.transformCellsToRange=mt;exports.zhCN=Do;
2
+ `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=at({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}n.body.textRuns=s.normalizeTextRuns(e)}const gt={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:gt.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:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.clone()}const Tt={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:er(d)},g=Ie(n,m),v=a.onCommandExecute({id:Tt.id}),h=[{id:$.id,params:m},...v.redos],S=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,o).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function er(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const ht={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),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:tr(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:ht.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 tr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.clone()}const Et=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Ue={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function yn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function V(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function vt(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const Un=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=vt(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:c}=a,u=c.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:u,unitId:r}},Fe={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},_n={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=V(r,t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l}=i,d=s.Tools.deepClone(u.getConfig());d.name+=a.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},v=Et(n,g);return o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:Fe.id,params:v}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Ae={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.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}},H={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 Ke(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,l)||r.push(l)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Ke(a,t,o):a}function nr(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,c)=>(e={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)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function or(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const pe=(n,t,o)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:Y,selections:[{range:n,primary:oe(n,o)}]}});function rr(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function sr(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let c=a.startColumn;c<=a.endColumn;c++)e(i,c,a)}r(o)}return{forOperableEach:t}}const bn="sheet.command.move-range",St={type:s.CommandType.COMMAND,id:bn,handler:(n,t)=>{var R,C;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),c=V(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=ft(n,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const v=n.get(exports.SheetInterceptorService).onCommandExecute({id:St.id,params:{...t}}),h=[...(R=v.preRedos)!=null?R:[],...m.redos,...v.redos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:oe(t.toRange,u)}]}}],S=[...(C=v.preUndos)!=null?C:[],...m.undos,...v.undos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:oe(t.fromRange,u)}]}}];return s.sequenceExecute(h,o).result?(e.pushUndoRedo({unitID:d,undoMutations:S,redoMutations:h}),!0):!1}};function ft(n,t,o,e=!1){const r=[],a=[],{range:i,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(),f=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&f){const R=Ke(l,v,!1);if(!s.Rectangle.equals(l,R)&&!e)return null;const C=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{C.setValue(U,E,f.getValue(U,E)),p.setValue(U,E,null)});const M=new s.ObjectMatrix;s.Range.foreach(l,(U,E)=>{M.setValue(U,E,S.getValue(U,E))});const I=new s.ObjectMatrix;s.Range.foreach(i,(U,E)=>{const P=s.cellToRange(U,E),G=s.Rectangle.getRelativeRange(P,i),z=s.Rectangle.getPositionRange(G,l);I.setValue(z.startRow,z.startColumn,f.getValue(U,E))});const w={from:{value:p.getMatrix(),subUnitId:c},to:{value:I.getMatrix(),subUnitId:d},unitId:u},_={from:{value:C.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u};r.push({id:Ae.id,params:w}),a.push({id:Ae.id,params:_})}return{redos:r,undos:a}}const Xe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r,{subUnitId:t.subUnitId,unitId:t.unitId});if(!c)return!1;const{subUnitId:u,unitId:l}=c,{value:d,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const v=new s.ObjectMatrix;let h;if(s.Tools.isArray(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=0;P<=U-w;P++)for(let G=0;G<=E-_;G++)v.setValue(P+w,G+_,d[P][G])}else if(s.isICellData(d))for(let I=0;I<g.length;I++){const{startRow:w,startColumn:_,endRow:U,endColumn:E}=g[I];for(let P=w;P<=U;P++)for(let G=_;G<=E;G++)v.setValue(P,G,d)}else h=d;const S={subUnitId:u,unitId:l,cellValue:h!=null?h:v.getMatrix()},f=Ie(n,S),R=o.syncExecuteCommand($.id,S),{undos:C,redos:p}=i.onCommandExecute({id:Xe.id,params:{...S,range:g}}),M=s.sequenceExecute([...p],o);return R&&M.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}};function Nt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,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(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let p,M;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,h.endRow);let _=0;for(let E=i.startRow;E<=w;E++){const P=v.getRow(E),G=P?s.getArrayLength(P)-1:0;_=Math.max(_,G)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:_};const U=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:p.startColumn+U,endRow:w,endColumn:p.endColumn+U}}else{const w=Math.min(i.endColumn,h.endColumn),_=h.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:w};const U=i.endRow-i.startRow+1;M={startRow:p.startRow+U,startColumn:i.startColumn,endRow:p.endRow+U,endColumn:w}}const I=ft(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:M},!0);I&&(o.push(...I.redos),e.push(...I.undos))}if(Object.entries(u).length===0)for(let p=i.startRow;p<=i.endRow;p++){u[p]||(u[p]={});for(let M=i.startColumn;M<=i.endColumn;M++)u[p][M]=null}const S={subUnitId:a,unitId:r,cellValue:u},f=Ie(n,S),{undos:R,redos:C}=d.onCommandExecute({id:Xe.id,params:{...S,range:i}});o.push({id:$.id,params:S},...C),e.push({id:$.id,params:f},...R)}return{redo:o,undo:e}}function Dt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:cr([i])},S=Ie(n,h),f=l.onCommandExecute({id:Xe.id,params:h});if(o.push({id:$.id,params:h},...f.redos),e.push(...f.undos,{id:$.id,params:S}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,C=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const p=Math.min(i.endRow,v.endRow);let M=0;for(let w=i.startRow;w<=p;w++){const _=g.getRow(w),U=_?s.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:M};const I=i.endColumn-i.startColumn+1;C={startRow:i.startRow,startColumn:R.startColumn-I,endRow:p,endColumn:R.endColumn-I}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const p=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:p};const I=i.endRow-i.startRow+1;C={startRow:R.startRow-I,startColumn:i.startColumn,endRow:R.endRow-I,endColumn:p}}if(R&&C){const p=ft(n,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:C},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ar(n,t,o,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=o;m>=i;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>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;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=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ir(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;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=a;m<=i;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 cr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Tn="sheet.command.delete-range-move-left",Ct={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:Ct.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,l,u)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:m,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},En="sheet.command.delete-range-move-up",Rt={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:Rt.id,params:{range:g}}),{redo:S,undo:f}=Dt(n,v),R=[...(I=h.preRedos)!=null?I:[],...S],C=[...h.undos,...f];return R.push(...h.redos),R.push(pe(g,d,m)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:u,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},Ot=(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-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=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++)a?s.insertMatrixArray(S,(h=a[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}},Pt=(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-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 a=r.getColumnManager(),{range:i,colInfo:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const f={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-i.startColumn])!=null?h:f,l):s.insertMatrixArray(S,f,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},ur=(n,t)=>{const r=t.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}},ye={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getRowManager().getRowData();for(let d=a.startRow;d<=a.endRow;d++)r.getRowFiltered(d);const 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}},dr=(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 a=t.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}},lr="sheet.command.insert-range-move-down",It={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:g,workbook:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=g.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(C.startRow,C.endRow,h.startColumn,h.endColumn).getDataRange().endRow,I=Math.max(M+(h.endRow-h.startRow+1)-C.endRow,0);if(I>0){const X=h.startRow-1,J=g.getRowHeight(X),q={unitId:d,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+I,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:J,hd:s.BooleanNumber.FALSE}))};S.push({id:fe.id,params:q});const Q=Ot(n,q);f.push({id:ye.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=g.getCell(X,J);q&&(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:It.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,v,g)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:d,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Nn="sheet.command.insert-range-move-right",pt={type:s.CommandType.COMMAND,id:Nn,handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:g,subUnitId:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const S=[],f=[],R=m.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(h.startRow,h.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,I=Math.max(M+(h.endColumn-h.startColumn+1)-C.endColumn,0);if(I>0){const X=h.startColumn-1,J=m.getColumnWidth(X),q={unitId:g,subUnitId:v,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:J,hd:s.BooleanNumber.FALSE}))};S.push({id:Ce.id,params:q});const Q=Pt(n,q);f.push({id:Re.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=m.getCell(X,J);!q||!q.s||(w[X]||(w[X]={}),w[X][J]={s:q.s})});const _={range:h,subUnitId:v,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:w},{redo:U,undo:E}=Nt(n,_);S.push(...U),f.push(...E);const P=i.onCommandExecute({id:pt.id,params:{range:h}});return S.push(...P.redos),S.push(pe(h,d,m)),f.push(...(y=P.preUndos)!=null?y:[]),S.unshift(...(ie=P.preRedos)!=null?ie:[]),f.unshift(...P.undos),s.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:g,undoMutations:f.reverse(),redoMutations:S}),!0):!1}},Dn="sheet.command.insert-row",We={type:s.CommandType.COMMAND,id:Dn,handler:async(n,t)=>{var M,I;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.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),f={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},R=Ot(n,f),C=a.onCommandExecute({id:We.id,params:t});return s.sequenceExecute([{id:fe.id,params:f},...C.redos,pe(u,i,c)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=C.preUndos)!=null?M:[],{id:ye.id,params:R},...C.undos],redoMutations:[...(I=C.preRedos)!=null?I:[],{id:fe.id,params:f},...C.redos]}),!0):!1}},On={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=i.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:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(We.id,m)}},Pn={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(We.id,d)}},kn="sheet.command.insert-col",je={type:s.CommandType.COMMAND,id:kn,handler:async(n,t)=>{var M,I,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l}=t,{startColumn:d,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),v=g.getSheetBySheetId(t.subUnitId),h=c===s.Direction.LEFT?d:d-1,S=v.getColumnWidth(h),f={unitId:l,subUnitId:u,range:i,colInfo:new Array(m-d+1).fill(void 0).map(()=>({w:S,hd:s.BooleanNumber.FALSE}))},R=Pt(n,f),C=a.onCommandExecute({id:je.id,params:t});return s.sequenceExecute([...(M=C.preRedos)!=null?M:[],{id:Ce.id,params:f},...C.redos,pe(i,g,v)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(I=C.preUndos)!=null?I:[],{id:Re.id,params:R},...C.undos].filter(Boolean),redoMutations:[...(w=C.preRedos)!=null?w:[],{id:Ce.id,params:f},...C.redos].filter(Boolean)}),!0):!1}},An={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.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:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(je.id,m)}},xn={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 a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.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:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(je.id,d)}},Vn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var h;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=yn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:c,workbook:u}=i;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});t?(l=(h=t.index)!=null?h:l,t.sheet?d=t.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},g=Et(n,m);return o.syncExecuteCommand(Ue.id,m)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Fe.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}};function mr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=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=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function gr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=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=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function hr(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function vr(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const Ln="sheet.command.move-rows",kt={id:Ln,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.ROW&&Q.range.startRow<=r&&r<=Q.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(hr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startRow:a,endRow:a+S.endRow-S.startRow},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=mr(n,p),w=a-r<0,_=S.endRow-S.startRow+1,U=w?C:{...C,startRow:C.startRow-_,endRow:C.endRow-_},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:kt.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:_e.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:_e.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0):!1}},Bn="sheet.command.move-cols",At={id:Bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.COLUMN&&Q.range.startColumn<=r&&r<=Q.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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=n.get(s.LocaleService),S=i[0].range,f=i[0].primary,R=Ke(S,d,!1);if(!s.Rectangle.equals(S,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(vr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},p={unitId:m,subUnitId:g,sourceRange:S,targetRange:C},M=gr(n,p),I=S.endColumn-S.startColumn+1,U=a-r<0?C:{...C,startColumn:C.startColumn-I,endColumn:C.endColumn-I},E={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:oe(U,d),style:null}]},P={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:S,primary:f,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:At.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:be.id,params:p},{id:H.id,params:E},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:be.id,params:M},{id:H.id,params:P},...z.undos];return s.sequenceExecute(y,G).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0}},Fn="sheet.command.remove-row",Mt={type:s.CommandType.COMMAND,id:Fn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let w=r.startRow;w<=r.endRow;w++)u.getRowFiltered(w)&&m.push(w);const g=[];if(m.length){const w=[r.startRow,...m.map(U=>U+1)],_=[...m.map(U=>U-1),r.endRow];for(let U=w.length-1;U>=0;U--)w[U]<=_[U]&&g.push({startRow:w[U],endRow:_[U],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const v=[],h=[];g.forEach(w=>{const _={unitId:d,subUnitId:l,range:w},U=u.getCellMatrix().getSlice(w.startRow,w.endRow,0,u.getColumnCount()-1),E={unitId:d,subUnitId:l,cellValue:U.getMatrix()},P=ur(_,u);v.push({id:ye.id,params:_}),h.unshift({id:fe.id,params:P},{id:$.id,params:E})});const S=e.onCommandExecute({id:Mt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],...v,...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],...h,...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],...v,...S.redos]}),!0):!1}},Wn="sheet.command.remove-col",wt={type:s.CommandType.COMMAND,id:Wn,handler:async(n,t)=>{var C,p,M,I;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},g=dr(n,m),v=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),h={unitId:d,subUnitId:l,cellValue:v.getMatrix()},S=e.onCommandExecute({id:wt.id,params:{range:r}}),f=n.get(s.ICommandService);return s.sequenceExecute([...(p=S.preRedos)!=null?p:[],{id:Re.id,params:m},...S.redos,pe(r,c,u)],f).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=S.preUndos)!=null?M:[],{id:Ce.id,params:g},{id:$.id,params:h},...S.undos],redoMutations:[...(I=S.preRedos)!=null?I:[],{id:Re.id,params:m},...S.redos]}),!0):!1}},xt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var C,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=V(r,t);if(!i)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=i;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:d.getName()},v=Un(n,g),h=a.onCommandExecute({id:xt.id,params:{unitId:c,subUnitId:u}}),S=[...(C=h.preRedos)!=null?C:[],{id:Fe.id,params:g},...h.redos],f=[...(p=h.preUndos)!=null?p:[],{id:Ue.id,params:v},...h.undos];return s.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:S}),!0):!1}},ge=(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}},B={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},se=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.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),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{subUnitId:c,unitId:u,worksheet:l}=i,d={unitId:u,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(I=>{g.forEach(w=>{s.Rectangle.intersects(I,w)&&(m=!0)})}),!m)return!1;const v=se(n,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),f=s.Tools.deepClone(h),R=f[f.length-1],{startRow:C,startColumn:p}=R.range;return R.primary={startRow:C,startColumn:p,endRow:C,endColumn:p,actualRow:C,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:v},{id:H.id,params:{selections:f}}],o)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:B.id,params:v},{id:H.id,params:{selections:S}}],redoMutations:[{id:F.id,params:v},{id:H.id,params:{selections:f}}]}),!0):!1}};class De{constructor(){L(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));L(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 Qe(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const Hn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),l=n.get(De);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(He.id,{unitId:o,subUnitId:e})}},$n={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(De).setType(t.value),o.executeCommand(He.id)}},Gn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setStyle(t.value),o.executeCommand(He.id)}},zn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setColor(t.value),o.executeCommand(He.id)}},He={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(De),c=V(r,t);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=a.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:v,color:h,type:S,activeBorderType:f}=i.getBorderInfo();if(!f)return!1;const R=S===s.BorderType.TOP||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,C=S===s.BorderType.LEFT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,p=S===s.BorderType.BOTTOM||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,M=S===s.BorderType.RIGHT||S===s.BorderType.ALL||S===s.BorderType.OUTSIDE,I=S===s.BorderType.VERTICAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,w=S===s.BorderType.HORIZONTAL||S===s.BorderType.ALL||S===s.BorderType.INSIDE,_=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,E=S.indexOf("tlmr")>-1,P=S.indexOf("bltr")>-1,G=S.indexOf("mltr")>-1,z=S.indexOf("bctr")>-1,y=m[0],ie={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},X={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},J={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},q={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},Q={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},sn={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},an={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},cn={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},k=new s.ObjectMatrix,j={s:v,cl:{rgb:h}},Ze=(N,b)=>{let x=null;return g.forEach(ee=>{s.Rectangle.intersects(ee,{startColumn:b,endColumn:b,startRow:N,endRow:N})&&(x=ee)}),x};function W(N,b,x){N.startRow<0||N.startColumn<0||Qe(N,(ee,ce)=>{var T,$e;const te=Ze(ee,ce);let re=b;if(te&&(b.bc_tr||b.ml_tr||b.bl_tr||b.tl_mr||b.tl_bc||b.tl_br)){if(x){const ue=s.Tools.deepClone((T=k.getValue(te.startRow,te.startColumn))==null?void 0:T.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(te.startRow,te.startColumn,{s:{bd:re}})}else{if(x){const ue=s.Tools.deepClone(($e=k.getValue(ee,ce))==null?void 0:$e.s);re=ue!=null&&ue.bd?Object.assign(ue.bd,b):b}k.setValue(ee,ce,{s:{bd:re}})}})}R&&(W(ie,{b:null}),W(Q,{t:s.Tools.deepClone(j)},!0)),p&&(W(J,{t:null}),W(an,{b:s.Tools.deepClone(j)},!0)),C&&(W(X,{r:null}),W(sn,{l:s.Tools.deepClone(j)},!0)),M&&(W(q,{l:null}),W(cn,{r:s.Tools.deepClone(j)},!0)),_&&W(y,{tl_br:s.Tools.deepClone(j)},!0),U&&W(y,{tl_bc:s.Tools.deepClone(j)},!0),E&&W(y,{tl_mr:s.Tools.deepClone(j)},!0),P&&W(y,{bl_tr:s.Tools.deepClone(j)},!0),G&&W(y,{ml_tr:s.Tools.deepClone(j)},!0),z&&W(y,{bc_tr:s.Tools.deepClone(j)},!0),I&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(x.startColumn!==y.startColumn){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(b!==y.endColumn){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(b!==y.startColumn){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),w&&Qe(y,(N,b)=>{var ee,ce,te,re;const x=Ze(N,b);if(x){if(x.endRow!==y.endRow){const T=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(x.startRow!==y.startRow){const T=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(N!==y.endRow){const T=(te=k.getValue(N,b))==null?void 0:te.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(N!==y.startRow){const T=(re=k.getValue(N,b))==null?void 0:re.s;k.setValue(N,b,{s:{bd:T!=null&&T.bd?Object.assign(T.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!R&&!p&&!C&&!M&&!I&&!w&&!_&&!U&&!E&&!P&&!G&&!z&&(W(ie,{b:null}),W(Q,{t:null},!0),W(J,{t:null}),W(an,{b:null},!0),W(X,{r:null}),W(sn,{l:null},!0),W(q,{l:null}),W(cn,{r:null},!0),W(y,{tl_br:null},!0),W(y,{tl_bc:null},!0),W(y,{tl_mr:null},!0),W(y,{bl_tr:null},!0),W(y,{ml_tr:null},!0),W(y,{bc_tr:null},!0),Qe(y,(N,b)=>{var ee,ce,te,re,T,$e,ue,un;const x=Ze(N,b);if(x){if(x.endColumn!==y.endColumn){const D=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(x.startColumn!==y.startColumn){const D=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(x.endRow!==y.endRow){const D=(te=k.getValue(x.startRow,x.startColumn))==null?void 0:te.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(x.startRow!==y.startRow){const D=(re=k.getValue(x.startRow,x.startColumn))==null?void 0:re.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}else{if(b!==y.endColumn){const D=(T=k.getValue(N,b))==null?void 0:T.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:null}):{r:null}}})}if(b!==y.startColumn){const D=($e=k.getValue(N,b))==null?void 0:$e.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:null}):{l:null}}})}if(N!==y.endRow){const D=(ue=k.getValue(N,b))==null?void 0:ue.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:null}):{b:null}}})}if(N!==y.startRow){const D=(un=k.getValue(N,b))==null?void 0:un.s;k.setValue(N,b,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:null}):{t:null}}})}}}));const Ut={unitId:l,subUnitId:d,cellValue:k.getData()},Po=Ie(n,Ut);return o.syncExecuteCommand($.id,Ut)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:Po}],redoMutations:[{id:$.id,params:Ut}]}),!0):!1}},Sr=(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}},xe={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}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}},Ve={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},c=fr(n,i),u={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},l={unitId:o,subUnitId:e,pluginName:Y,selections:Kn(r).map(g=>({range:g,primary:oe(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:xe.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},qn={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).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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(Vt.id,{unitId:i,subUnitId:c,ranges:u})}},Yn={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).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);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},l={unitId:i,subUnitId:c,pluginName:Y,selections:Kn(o).map(h=>({range:h,primary:oe(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:o.map(h=>({range:h,primary:oe(h,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:xe.id,params:u},{id:H.id,params:l}],m).result){const h=n.get(s.IUndoRedoService),S=Sr(n,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:S},{id:H.id,params:d}],redoMutations:[{id:xe.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function Kn(n){return Cr(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Cr(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 Lt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},Me={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=V(r);if(!a)return!1;const{unitId:i,subUnitId:c,worksheet:u}=a,{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:c,...t},h=Lt(n,v);return o.syncExecuteCommand(Me.id,v)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:h}],redoMutations:[{id:Me.id,params:v}]}),!0):!1}},Rr={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=V(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=Lt(n,c);return t.syncExecuteCommand(Me.id,c)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:u}],redoMutations:[{id:Me.id,params:c}]}),!0):!1}},Ir=(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}},Le={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},pr=(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}},Be={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={unitId:o,subUnitId:e,ranges:r},l=Ir(n,u),d={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:oe(v,c),style:null}))},m={unitId:o,subUnitId:e,pluginName:Y,selections:Qn(r).map(v=>({range:v,primary:oe(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Be.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.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.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},Zn={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),a=(S=t.getSelections())==null?void 0:S.map(f=>f.range).filter(f=>f.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,d={unitId:c,subUnitId:u,ranges:a},m={unitId:c,subUnitId:u,pluginName:Y,selections:Qn(a).map(f=>({range:f,primary:oe(f,l),style:null}))},g={unitId:c,subUnitId:u,pluginName:Y,selections:a.map(f=>({range:f,primary:oe(f,l),style:null}))},v=pr(n,d);return s.sequenceExecute([{id:Be.id,params:d},{id:H.id,params:m}],o).result&&e.pushUndoRedo({unitID:c,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:Be.id,params:d},{id:H.id,params:m}]}),!0}};function Qn(n){return Mr(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Mr(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 Z={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=V(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:c,style:u}=t,l=n.get(s.ICommandService),d=n.get(s.IUndoRedoService),m=n.get(exports.SelectionManagerService),g=c?[c]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const v=new s.ObjectMatrix,h=sr(i);if(s.Tools.isArray(u.value))for(let I=0;I<g.length;I++)h.forOperableEach(g[I],(w,_,U)=>{v.setValue(w,_,{s:{[u.type]:u.value[w-U.startRow][_-U.startColumn]}})});else for(let I=0;I<g.length;I++){const w={s:{[u.type]:u.value}};h.forOperableEach(g[I],(_,U)=>v.setValue(_,U,w))}const S={subUnitId:a,unitId:r,cellValue:v.getMatrix()},f=Ie(n,S),R=l.syncExecuteCommand($.id,S),{undos:C,redos:p}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Z.id,params:t}),M=s.sequenceExecute([...p],l);return R&&M.result?(d.pushUndoRedo({unitID:r,undoMutations:[{id:$.id,params:f},...C],redoMutations:[{id:$.id,params:S},...p]}),!0):!1}},wr={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,c={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,c)}},yr={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:c}=t.primary;r=e.getRange(i,c).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},Ur={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},_r={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=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}};s.CommandType.COMMAND;const br={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(Z.id,e)}},Tr={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(Z.id,e)}},eo={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(Z.id,e)}},to={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(Z.id,o)}},no={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(Z.id,e)}},oo={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(Z.id,o)}},ro={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(Z.id,e)}},so={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(Z.id,e)}},ao={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(Z.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(Z.id,r)}},Er=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={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}},co={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=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={color:t.value,unitId:a,subUnitId:i},u=Er(n,c);return o.syncExecuteCommand(ze.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:u}],redoMutations:[{id:ze.id,params:c}]}),!0):!1}},Je={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}},Nr=4,Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(c=>{setTimeout(()=>{const u=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},o);c(u)},Nr)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),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=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ve={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 a=r.getConfig().defaultColumnWidth,i=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=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={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),a=n.get(s.IUndoRedoService),i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:c,unitId:u,subUnitId:l}=i,{anchorCol:d,deltaX:m}=t,v=c.getColumnWidth(d)+m,h=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(_=>_.range.rangeType===s.RANGE_TYPE.COLUMN),f=h?s.RANGE_TYPE.ALL:S.some(({range:_})=>{const{startColumn:U,endColumn:E}=_;return U<=d&&d<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(f===s.RANGE_TYPE.ALL){const _=c.getRowCount(),U=new Array(c.getColumnCount()).fill(void 0).map((E,P)=>({startRow:0,endRow:_-1,startColumn:P,endColumn:P}));R={subUnitId:l,unitId:u,colWidth:v,ranges:U}}else f===s.RANGE_TYPE.COLUMN?R={subUnitId:l,unitId:u,ranges:S.map(_=>s.Rectangle.clone(_.range)),colWidth:v}:R={subUnitId:l,unitId:u,colWidth:v,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const C=Wt(n,R),p=r.syncExecuteCommand(ve.id,R),{undos:M,redos:I}=n.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:R}),w=s.sequenceExecute([...I],r);return p&&w.result&&a.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:C},...M],redoMutations:[{id:ve.id,params:R},...I]}),!0}},Ht={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),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:c,unitId:u}=i,l={subUnitId:c,unitId:u,ranges:a,colWidth:t.value},d=Wt(n,l),m=e.syncExecuteCommand(ve.id,l),{undos:g,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ht.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:d},...g],redoMutations:[{id:ve.id,params:l},...v]}),!0):!1}},uo=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},we={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}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=V(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=i;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},v=uo(n,g);return c.getSheets().filter(R=>R.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(we.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:we.id,params:v}],redoMutations:[{id:we.id,params:g}]}),!0):!1}},Dr=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},lt={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}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var h,S;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),a=V(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:c}=a,u={subUnitId:c,name:t.name,unitId:i},l=Dr(n,u),d=r.onCommandExecute({id:$t.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:lt.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:lt.id,params:l},...d.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Or=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={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}},mo={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=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:c}=r,l={fromOrder:a.getConfig().sheetOrder.indexOf(c),toOrder:t.order,unitId:i,subUnitId:c},d=Or(n,l);return o.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:qe.id,params:d}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Pr=2e3,go=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.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}},Gt=(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}},kr=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e);if(!c)return{unitId:o,subUnitId:e,rowsAutoHeightInfo:[]};const 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}},Se={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,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 a=="number"?S.h=a:S.h=(m=a[h])!=null?m:l,S.h=Math.min(Pr,S.h)}return!0}},de={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,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 a=="number"?S.ia=a:S.ia=(m=a[h-g])!=null?m:l}return!0}},zt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},ho={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 r=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:c}=r,{anchorRow:u,deltaY:l}=t,m=a.getRowHeight(u)+l,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,v=e.filter(w=>w.range.rangeType===s.RANGE_TYPE.ROW),h=g?s.RANGE_TYPE.ALL:v.some(({range:w})=>{const{startRow:_,endRow:U}=w;return _<=u&&u<=U})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let S;if(h===s.RANGE_TYPE.ALL){const w=a.getRowCount(),_=new Array(a.getColumnCount()).fill(void 0).map((U,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:w-1}));S={subUnitId:i,unitId:c,rowHeight:m,ranges:_}}else h===s.RANGE_TYPE.ROW?S={subUnitId:i,unitId:c,ranges:v.map(w=>s.Rectangle.clone(w.range)),rowHeight:m}:S={subUnitId:i,unitId:c,rowHeight:m,ranges:[{startRow:u,endRow:u,startColumn:0,endColumn:a.getMaxColumns()-1}]};const f=go(n,S),R={unitId:c,subUnitId:i,ranges:S.ranges,autoHeightInfo:s.BooleanNumber.FALSE},C=Gt(n,R),p=n.get(s.ICommandService),M=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:Se.id,params:S},{id:de.id,params:R}],p).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:Se.id,params:f},{id:de.id,params:C}],redoMutations:[{id:Se.id,params:S},{id:de.id,params:R}]}),!0):!1}},vo={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),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=V(a);if(!c)return!1;const{unitId:u,subUnitId:l}=c,d={subUnitId:l,unitId:u,ranges:i,rowHeight:t.value},m=go(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Gt(n,g);return s.sequenceExecute([{id:Se.id,params:d},{id:de.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:Se.id,params:m},{id:de.id,params:v}],redoMutations:[{id:Se.id,params:d},{id:de.id,params:g}]}),!0):!1}},qt={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),a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,{anchorRow:d}=t!=null?t:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},v=Gt(n,g),h=o.syncExecuteCommand(de.id,g),{undos:S,redos:f}=n.get(exports.SheetInterceptorService).onCommandExecute({id:qt.id,params:g}),R=s.sequenceExecute([...f],o);return h&&R.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:v},...S],redoMutations:[{id:de.id,params:g},...f]}),!0):!1}},So={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!V(n.get(s.IUniverInstanceService)))return!1;const u=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!u)return!1;const l=u.getSheetBySheetId(e);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=uo(n,m),v=r.syncExecuteCommand(we.id,m),h={unitId:o,subUnitId:e},S=r.syncExecuteCommand(Je.id,h);return v&&S?(a.pushUndoRedo({unitID:o,undoMutations:[{id:we.id,params:g}],redoMutations:[{id:we.id,params:m}]}),!0):!1}},fo=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},gn=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,c=a;o(i*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),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,o(d,u)}}),t},Ar=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),Yt=n=>{const t=[];let o=gn(n);for(;o.area>0;)o.range&&(t.push(o.range),Ar(n,o.range)),o=gn(n);return t},Kt=n=>{const t=fo(n);return Yt(t)};class xr{constructor(){L(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 Yt(t)}}const Vr=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Lr=(n=0)=>{let t=n;return function(){return t++}},Oe=K.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const Br=(n,t)=>{const o=n.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[];Object.keys(e).forEach(l=>{e[l].ranges.forEach(m=>{s.Range.foreach(m,(g,v)=>{const h=o.getValue(r,a,g,v);h?i.push({pattern:h.pattern,row:g,col:v}):c.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const u=[];if(i.length){const l=mt(r,a,i);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=Kt(m.ranges)}),u.push({id:yt.id,params:mt(r,a,i)})}return c.length&&u.push({id:Xt.id,params:{unitId:r,subUnitId:a,ranges:c}}),u},yt={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(Oe),a=t.unitId,i=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(a,i,c),!0}},Xt={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(Oe).deleteValues(o,e,r),!0}},Fr=(n,t)=>{const o=n.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=o.getValue(r,a,l,d);m&&i.push({pattern:m.pattern,row:l,col:d})})}),!i.length)return[];const c=mt(r,a,i);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=Kt(l.ranges)}),[{id:yt.id,params:c}]},mt=(n,t,o)=>{const e=Vr(o,"pattern"),r={},a={},i=Lr();return Object.keys(e).forEach(c=>{const u=e[c],l=i();r[l]={pattern:c},u.forEach(d=>{a[l]||(a[l]={ranges:[]}),a[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},Ro={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(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},po={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},Mo={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},wo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Jt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Zt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var l;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(exports.SheetInterceptorService).onCommandExecute({id:Zt.id,params:t}),i={name:t.name,unitId:t.unitId},c=[...(l=a.preRedos)!=null?l:[],{id:Jt.id,params:i},...a.redos],u=n.get(s.ICommandService);return s.sequenceExecute(c,u).result}},yo="maxCellsPerSheet",Wr=3e6;var jr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(n,t,o,e)=>{for(var r=e>1?void 0:e?Hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&jr(t,o,r),r},hn=(n,t)=>(o,e)=>t(o,e,n);let it=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[B,gt,Tt,ht,_n,Ct,Rt,jt,ho,xn,An,je,Ce,It,pt,Pn,On,We,fe,Vn,Ue,At,be,St,Ae,kt,_e,wt,Re,Mt,ye,xt,Fe,jn,F,oo,to,no,Hn,zn,He,$n,Gn,Yn,xe,Ve,Ht,Rr,Xn,Me,so,Xe,$,vo,Zn,Be,Le,qn,Jn,Vt,Bt,Z,co,ze,eo,io,ao,ro,Zt,Jt,Ft,Je,ve,lo,we,$t,lt,mo,qe,zt,Se,qt,de,So,yt,H,Xt,Ro,Io,po,Mo,wo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(yo,Wr)}};it=$r([s.OnLifecycle(s.LifecycleStages.Starting,it),hn(0,s.ICommandService),hn(1,s.IConfigService)],it);var Gr=Object.defineProperty,zr=Object.getOwnPropertyDescriptor,qr=(n,t,o,e)=>{for(var r=e>1?void 0:e?zr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Gr(t,o,r),r},vn=(n,t)=>(o,e)=>t(o,e,n);let ct=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const c=o[i];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(i,l,d),g={subUnitId:l,unitId:i,cellValue:m};r.push({id:$.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),c=new s.ObjectMatrix(o);return c.forValue((u,l,d)=>{const m=i==null?void 0:i.getValue(u,l),g=ne.handleNumfmtInCell(m,d,r);c.setValue(u,l,g)}),c.clone()}};ct=qr([s.OnLifecycle(s.LifecycleStages.Ready,ct),vn(0,K.Inject(s.IUniverInstanceService)),vn(1,s.ICommandService)],ct);var Yr=Object.defineProperty,Kr=Object.getOwnPropertyDescriptor,Xr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Kr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Yr(t,o,r),r},et=(n,t)=>(o,e)=>t(o,e,n);let ut=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};ut=Xr([s.OnLifecycle(s.LifecycleStages.Ready,ut),et(0,s.ICommandService),et(1,ne.IFeatureCalculationManagerService),et(2,s.IUniverInstanceService),et(3,K.Inject(ne.FormulaDataModel))],ut);const O={MoveRangeCommandId:bn,InsertRowCommandId:Dn,InsertColCommandId:kn,RemoveColCommandId:Wn,RemoveRowCommandId:Fn,DeleteRangeMoveLeftCommandId:Tn,DeleteRangeMoveUpCommandId:En,InsertRangeMoveDownCommandId:lr,InsertRangeMoveRightCommandId:Nn,MoveColsCommandId:Bn,MoveRowsCommandId:Ln};var A=(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))(A||{});const tt=Number.MAX_SAFE_INTEGER,he=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=tt),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=tt),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=tt,t.startRow=0,t.endRow=tt),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ye=(n,t,o)=>{const e={...o},r={...t},a=(S,f)=>{const R=Math.max(S.start,f.start),C=Math.min(S.end,f.end);return C<R?null:{start:R,end:C}},i=S=>S.end-S.start+1,c=(S,f)=>({start:S.start-f.start,end:S.start-f.start+S.end-S.start}),u=(S,f)=>({start:f.start+S.start,end:f.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=i(n),m=d,g=a(n,e),v=g&&i(g)>=i(e);if(n.end<e.start)e.start-=d,e.end-=d;else if(g){const S=i(g);if(v){const f=c(e,n),R=u(f,r);e.start=R.start,e.end=R.end}else g.start>n.start?l?(e.end-=S+d,e.start-=d):e.end-=S:l?e.end-=S:e.start>n.start&&e.end>n.end?(e.start-=d,e.end-=d+S):e.end-=S}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Qt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:c.step||0,length:c.length||0}]},Jr=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},en=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:c.step||0,length:c.length||0}]},Zr=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Uo=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:A.Delete}),s.Rectangle.contains(e,t)){r.push({type:A.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,o);return[{type:A.Set,range:u}]}return r},Qr=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,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};return l&&s.Range.foreach(l,(v,h)=>{var R;const S=v+u,f=h+c;r.setValue(S,f,(R=a.getValue(v,h))!=null?R:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(n,t)=>{const o=he(n),e=he(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},tn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},nn=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},Ee=(n,t)=>{const o=he(n),e=he(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function es(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:A.Delete}),s.Rectangle.contains(n,o)){e.push({type:A.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:A.Set,range:a}]}return e}const on=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},rn=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},_o=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},ts=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},bo=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},ns=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},To=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},os=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Eo=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(ae(o),ae(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},rs=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ne=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},ss=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:{o=To(t,n);break}case O.DeleteRangeMoveUpCommandId:{o=Eo(t,n);break}case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRangeMoveDownCommandId:{o=_o(t,n);break}case O.InsertRangeMoveRightCommandId:{o=bo(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:{o=en(t,n);break}case O.MoveRangeCommandId:{o=Uo(t,n);break}case O.MoveRowsCommandId:{o=Qt(t,n);break}case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)},as=(n,t)=>{let o=[];switch(t.id){case O.DeleteRangeMoveLeftCommandId:return os(t,n);case O.DeleteRangeMoveUpCommandId:return rs(t,n);case O.InsertRangeMoveDownCommandId:return ts(t,n);case O.InsertRangeMoveRightCommandId:return ns(t,n);case O.InsertColCommandId:{o=rn(t,n);break}case O.InsertRowCommandId:{o=on(t,n);break}case O.MoveColsCommandId:return Zr(t,n);case O.MoveRangeCommandId:return Qr(t,n);case O.MoveRowsCommandId:return Jr(t,n);case O.RemoveColCommandId:{o=tn(t,n);break}case O.RemoveRowCommandId:{o=nn(t,n);break}}return Ne(o,n)};function is(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:A.Unknown};switch(o){case Fe.id:r.type=A.Delete;break;case _e.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=A.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Re.id:r=Te(e.range,n),r?r.type=A.HorizontalMove:r={step:0,length:0,type:A.Delete};break;case ye.id:r=Te(ae(e.range),ae(n)),r?r.type=A.VerticalMove:r={step:0,length:0,type:A.Delete};break;case fe.id:r=Ee(ae(e.range),ae(n)),r.type=A.VerticalMove;break;case Ce.id:r=Ee(e.range,n),r.type=A.HorizontalMove;break;case Ae.id:r=es(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Ne(r,n):Ne([r],n):n}var cs=Object.defineProperty,us=Object.getOwnPropertyDescriptor,ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?us(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&cs(t,o,r),r},nt=(n,t)=>(o,e)=>t(o,e,n);const ls=s.createInterceptorKey("MERGE_REDO"),ms=s.createInterceptorKey("MERGE_UNDO");class gs extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=is(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}exports.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();L(this,"interceptor",new s.InterceptorManager({MERGE_REDO:ls,MERGE_UNDO:ms}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",hs());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Sn(this._univerInstanceService),a=fn(this._univerInstanceService),u=((()=>{switch(o.id){case O.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,a)}case O.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,a)}case O.MoveRangeCommandId:{const v=o;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case O.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.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,a)}case O.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case O.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,a)}case O.DeleteRangeMoveUpCommandId:case O.InsertRangeMoveDownCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,a)}case O.DeleteRangeMoveLeftCommandId:case O.InsertRangeMoveRightCommandId:{const h=o.params.range||Cn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,a)}}})()||[]).reduce((v,h)=>{const S=h(o);return v.push(S),v},[]).reduce((v,h)=>{var S,f;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(f=h.preUndos)!=null?f:[]),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}}})});L(this,"_checkRange",(o,e,r)=>{const a=Rn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);o.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});L(this,"registerRefRange",(o,e,r,a)=>{const i=r||Sn(this._univerInstanceService),c=a||fn(this._univerInstanceService),u=Rn(i,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._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new gs(o,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=ds([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),nt(0,s.ICommandService),nt(1,K.Inject(exports.SheetInterceptorService)),nt(2,K.Inject(s.IUniverInstanceService)),nt(3,K.Inject(exports.SelectionManagerService))],exports.RefRangeService);function Sn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function fn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Cn(n){return n.getSelectionRanges()||[]}function Rn(n,t){return`${n}_${t}`}function hs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var vs=Object.defineProperty,Ss=Object.getOwnPropertyDescriptor,fs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ss(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&vs(t,o,r),r},Pe=(n,t)=>(o,e)=>t(o,e,n);const Cs=[Ce.id,fe.id,Re.id,ye.id],Rs=[_e.id,be.id];function No(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;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:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}o=e}return o}exports.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,c){super();L(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case gt.id:case ht.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.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:a,subUnitId:c,ranges:l},g=se(o._injector,m),v=[{id:F.id,params:m}],h=[{id:B.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case O.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case O.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case We.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case je.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case wt.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case Mt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case St.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case pt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case It.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case Rt.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case Ct.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const c=i==null?void 0:i.getSheetBySheetId(a);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,a);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ft.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(c,i)}if(r.id===B.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.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 f=Qt({id:O.MoveRowsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveColsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.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 f=en({id:O.MoveColsCommandId,params:o},S),R=Ne(f,S);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=se(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveRangeCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=i.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=No(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>(u>p.startRow&&u<=p.endRow&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((C,p)=>{if(u>p.startRow&&u<=p.endRow){const M=l-u+1;p.endRow+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>(u>p.startColumn&&u<=p.endColumn&&C.push(p),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((C,p)=>{if(u>p.startColumn&&u<=p.endColumn){const M=l-u+1;p.endColumn+=M,this._checkIsMergeCell(p)&&C.push(p)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:S},{id:B.id,params:v}];return{redos:f,undos:R}}_handleRemoveColCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(c,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(c,I)){if(u<=I.startColumn&&l>=I.endColumn)return M;u>=I.startColumn&&l<=I.endColumn?I.endColumn-=l-u+1:u<I.startColumn?(I.startColumn=u,I.endColumn-=l-u+1):l>I.endColumn&&(I.endColumn=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>(s.Rectangle.intersects(a,I)&&M.push(I),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,I)=>{if(s.Rectangle.intersects(a,I)){if(u<=I.startRow&&l>=I.endRow)return M;u>=I.startRow&&l<=I.endRow?I.endRow-=l-u+1:u<I.startRow?(I.startRow=u,I.endRow-=l-u+1):l>I.endRow&&(I.endRow=u-1),this._checkIsMergeCell(I)&&M.push(I)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:S}],p=[{id:B.id,params:v}];return{preUndos:C,undos:p,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1;m.push({startRow:C.startRow+E,startColumn:C.startColumn,endRow:C.endRow+E,endColumn:C.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:p,startColumn:M,endColumn:I,endRow:w}=c;if(s.Rectangle.intersects({startRow:p,startColumn:M,endRow:u,endColumn:I},C)&&(d.push(C),s.Rectangle.contains({startRow:p,startColumn:M,endRow:u,endColumn:I},C))){const E=w-p+1,P=s.Rectangle.moveVertical(C,-E);m.push(P)}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h),f=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:S}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(f=>{const{startRow:R,endRow:C,startColumn:p,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:p,endRow:C,endColumn:u},f)&&(d.push(f),s.Rectangle.contains({startRow:R,startColumn:p,endRow:C,endColumn:u},f))){const _=M-p+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:r,ranges:d},v=se(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.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(Rs.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I}=f;s.Rectangle.intersects(f,a)||(c?l<R&&d>C?(R-=u,C-=u):l>C&&d<=R&&(R+=u,C+=u):l<p&&d>M?(p-=u,M-=u):l>M&&d<=p&&(p+=u,M+=u)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:C,startColumn:p,endColumn:M,rangeType:I})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=o.params,S=f=>this.refRangeHandle(f,v,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,S,v,h))})}if(Cs.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:c}=i,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=[];a.forEach(R=>{let{startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w}=R;l?u?d<=C&&(C+=g,p+=g):d<=M&&(M+=g,I+=g):u?m<C&&(C-=g,p-=g):m<M&&(M-=g,I-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:C,endRow:p,startColumn:M,endColumn:I,rangeType:w})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=o.params,f=R=>this.refRangeHandle(R,h,S);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,S))})}}))}};exports.MergeCellController=fs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Pe(0,K.Inject(s.ICommandService)),Pe(1,K.Inject(exports.RefRangeService)),Pe(2,K.Inject(s.IUniverInstanceService)),Pe(3,K.Inject(K.Injector)),Pe(4,K.Inject(exports.SheetInterceptorService)),Pe(5,K.Inject(exports.SelectionManagerService))],exports.MergeCellController);function le(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function me(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Is={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},Do={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}},ps={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ms=Object.defineProperty,ws=Object.getOwnPropertyDescriptor,ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?ws(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ms(t,o,r),r},_t=(n,t)=>(o,e)=>t(o,e,n);exports.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const c=a.getStyles(),u=i.getCellRaw(e,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=a.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,v={...m&&i.get(m)||{}};delete v.n;const h=i.setValue(v);d.s=h})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),c=a.getCellMatrix();e.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=a.getCellRaw(d,m);if(g){const h={...g.s&&i.get(g.s)||{},n:{pattern:u.pattern}},S=i.setValue(h);g.s=S}else{const v={n:{pattern:u.pattern}},h=i.setValue(v);h&&c.setValue(d,m,{s:h})}})})})}};exports.NumfmtService=ys([_t(0,s.IResourceManagerService),_t(1,s.IUniverInstanceService),_t(2,s.ILogService)],exports.NumfmtService);const In="univer.sheet.editable";class Ge extends s.PermissionPoint{constructor(o,e){super();L(this,"id",In);L(this,"value",!0);L(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${In}_${o}_${e}`}}var Us=Object.defineProperty,_s=Object.getOwnPropertyDescriptor,bs=(n,t,o,e)=>{for(var r=e>1?void 0:e?_s(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Us(t,o,r),r},pn=(n,t)=>(o,e)=>t(o,e,n);exports.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();L(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(dn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(dn.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),c.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),c=a.getActiveSheet(),u=r||c.getSheetId(),l=new Ge(i,u);this._permissionService.updatePermissionPoint(i,l.id,o)}};exports.SheetPermissionService=bs([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),pn(0,K.Inject(s.IPermissionService)),pn(1,K.Inject(s.IUniverInstanceService))],exports.SheetPermissionService);function Ts(n){var a,i,c;const t=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(c=o.getEditable$(e,r))==null?void 0:c.pipe(ke.map(u=>!u.value))}var Es=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Ds=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ns(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Es(t,o,r),r},ot=(n,t)=>(o,e)=>t(o,e,n);const Os="SHEET_DEFINED_NAME_PLUGIN";let dt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Os,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};dt=Ds([s.OnLifecycle(s.LifecycleStages.Ready,dt),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,ne.IDefinedNamesService),ot(3,s.IResourceManagerService)],dt);var Ps=Object.defineProperty,ks=Object.getOwnPropertyDescriptor,As=(n,t,o,e)=>{for(var r=e>1?void 0:e?ks(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ps(t,o,r),r},bt=(n,t)=>(o,e)=>t(o,e,n);const xs="SHEET_PLUGIN";var rt;exports.UniverSheetsPlugin=(rt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:Do})}_initializeDependencies(t){var e;const o=[[De],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[it],[exports.MergeCellController],[dt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ct],[ut]),o.forEach(r=>{t.add(r)})}},L(rt,"pluginName",xs),L(rt,"type",s.UniverInstanceType.UNIVER_SHEET),rt);exports.UniverSheetsPlugin=As([bt(1,s.ICommandService),bt(2,K.Inject(s.LocaleService)),bt(3,K.Inject(K.Injector))],exports.UniverSheetsPlugin);const Vs=[Se.id,de.id,zt.id,ve.id,Je.id,_e.id,be.id,xe.id,Ve.id,Be.id,Le.id,Ce.id,fe.id,Re.id,ye.id],Ls=[$.id,Ae.id,F.id,B.id],Bs=1.5,Fs="rgba(255, 255, 255, 0.01)";function Ws(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 js(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=Oo(o)),r}function Oo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function Hs(n,t,o){const e=xo.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const $s=(n,t,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,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:f}=i[i.length-1];if(a===s.Dimension.COLUMNS){const M=o.find(I=>I.startColumn===m&&I.endColumn===m&&g===I.startRow);M&&(f=M.endColumn,v=M.startRow,S=M.endRow)}else if(a===s.Dimension.ROWS){const M=o.find(I=>I.startRow===g&&I.endRow===g&&m===I.startColumn);M&&(S=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:v,startColumn:h,endRow:S,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},C=r.map((M,I,w)=>({range:M.range,style:null,primary:I===w.length-1?R:null})),p={unitId:c,subUnitId:u,pluginName:Y,selections:C};return{id:H.id,params:p}}return null}return null},Gs=(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=$s;exports.AddMergeUndoMutationFactory=ge;exports.AddMergeUndoSelectionsOperationFactory=Gs;exports.AddWorksheetMergeMutation=B;exports.BorderStyleManagerService=De;exports.COMMAND_LISTENER_SKELETON_CHANGE=Vs;exports.COMMAND_LISTENER_VALUE_CHANGE=Ls;exports.ClearSelectionAllCommand=gt;exports.ClearSelectionContentCommand=Tt;exports.ClearSelectionFormatCommand=ht;exports.CopySheetCommand=_n;exports.DeleteRangeMoveLeftCommand=Ct;exports.DeleteRangeMoveUpCommand=Rt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=ho;exports.EffectRefRangId=O;exports.EmptyMutation=Ro;exports.INTERCEPTOR_POINT=st;exports.INumfmtService=Oe;exports.InsertColAfterCommand=xn;exports.InsertColBeforeCommand=An;exports.InsertColCommand=je;exports.InsertColMutation=Ce;exports.InsertColMutationUndoFactory=Pt;exports.InsertDefinedNameCommand=Io;exports.InsertRangeMoveDownCommand=It;exports.InsertRangeMoveRightCommand=pt;exports.InsertRowAfterCommand=Pn;exports.InsertRowBeforeCommand=On;exports.InsertRowCommand=We;exports.InsertRowMutation=fe;exports.InsertRowMutationUndoFactory=Ot;exports.InsertSheetCommand=Vn;exports.InsertSheetMutation=Ue;exports.InsertSheetUndoMutationFactory=Et;exports.MAX_CELL_PER_SHEET_KEY=yo;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=St;exports.MoveRangeMutation=Ae;exports.MoveRowsCommand=kt;exports.MoveRowsMutation=_e;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=A;exports.RangeMergeUtil=xr;exports.RemoveColCommand=wt;exports.RemoveColMutation=Re;exports.RemoveDefinedNameCommand=po;exports.RemoveMergeUndoMutationFactory=se;exports.RemoveNumfmtMutation=Xt;exports.RemoveRowCommand=Mt;exports.RemoveRowMutation=ye;exports.RemoveSheetCommand=xt;exports.RemoveSheetMutation=Fe;exports.RemoveSheetUndoMutationFactory=Un;exports.RemoveWorksheetMergeCommand=jn;exports.RemoveWorksheetMergeMutation=F;exports.ResetBackgroundColorCommand=oo;exports.ResetTextColorCommand=to;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Fs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Bs;exports.ScrollToCellOperation=wo;exports.SelectionMoveType=Mn;exports.SetBackgroundColorCommand=no;exports.SetBoldCommand=wr;exports.SetBorderBasicCommand=Hn;exports.SetBorderColorCommand=zn;exports.SetBorderCommand=He;exports.SetBorderPositionCommand=$n;exports.SetBorderStyleCommand=Gn;exports.SetColHiddenCommand=Yn;exports.SetColHiddenMutation=xe;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Ht;exports.SetDefinedNameCommand=Mo;exports.SetFontFamilyCommand=br;exports.SetFontSizeCommand=Tr;exports.SetFrozenCommand=Xn;exports.SetFrozenMutation=Me;exports.SetFrozenMutationFactory=Lt;exports.SetHorizontalTextAlignCommand=so;exports.SetItalicCommand=yr;exports.SetNumfmtMutation=yt;exports.SetRangeValuesCommand=Xe;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=vo;exports.SetRowHiddenCommand=Zn;exports.SetRowHiddenMutation=Be;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=qn;exports.SetSelectedRowsVisibleCommand=Jn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=Vt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=_r;exports.SetStyleCommand=Z;exports.SetTabColorCommand=co;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=eo;exports.SetTextRotationCommand=io;exports.SetTextWrapCommand=ao;exports.SetUnderlineCommand=Ur;exports.SetVerticalTextAlignCommand=ro;exports.SetWorkbookNameCommand=Zt;exports.SetWorkbookNameMutation=Jt;exports.SetWorksheetActivateCommand=Ft;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ve;exports.SetWorksheetColWidthMutationFactory=Wt;exports.SetWorksheetHideCommand=lo;exports.SetWorksheetHideMutation=we;exports.SetWorksheetNameCommand=$t;exports.SetWorksheetNameMutation=lt;exports.SetWorksheetOrderCommand=mo;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=zt;exports.SetWorksheetRowAutoHeightMutationFactory=kr;exports.SetWorksheetRowHeightMutation=Se;exports.SetWorksheetRowIsAutoHeightCommand=qt;exports.SetWorksheetRowIsAutoHeightMutation=de;exports.SetWorksheetShowCommand=So;exports.SheetEditablePermission=Ge;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=Oo;exports.convertSelectionDataToRange=js;exports.createTopMatrixFromMatrix=Co;exports.createTopMatrixFromRanges=fo;exports.enUS=Is;exports.factoryRemoveNumfmtUndoMutation=Fr;exports.factorySetNumfmtUndoMutation=Br;exports.findAllRectangle=Yt;exports.followSelectionOperation=pe;exports.getAddMergeMutationRangeByType=No;exports.getCellAtRowCol=nr;exports.getCurrentSheetDisabled$=Ts;exports.getInsertRangeMutations=Nt;exports.getMoveRangeUndoRedoMutations=ft;exports.getNormalSelectionStyle=Ws;exports.getPrimaryForRange=oe;exports.getRemoveRangeMutations=Dt;exports.getSheetCommandTarget=V;exports.getSheetCommandTargetWorkbook=yn;exports.getSheetMutationTarget=vt;exports.handleBaseInsertRange=Ee;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=as;exports.handleDefaultRangeChangeWithEffectRefCommands=ss;exports.handleDeleteRangeMoveLeft=To;exports.handleDeleteRangeMoveUp=Eo;exports.handleDeleteRangeMutation=ir;exports.handleIRemoveCol=tn;exports.handleIRemoveRow=nn;exports.handleInsertCol=rn;exports.handleInsertRangeMoveDown=_o;exports.handleInsertRangeMoveRight=bo;exports.handleInsertRangeMutation=ar;exports.handleInsertRow=on;exports.handleMoveCols=en;exports.handleMoveRange=Uo;exports.handleMoveRows=Qt;exports.isSingleCellSelection=rr;exports.rangeMerge=Kt;exports.rotateRange=ae;exports.ruRU=ps;exports.runRefRangeMutations=Ne;exports.setEndForRange=or;exports.transformCellDataToSelectionData=Hs;exports.transformCellsToRange=mt;exports.zhCN=Do;