@univerjs/sheets 0.1.6 → 0.1.7
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 +2 -2
- package/lib/es/index.js +2186 -1984
- package/lib/types/commands/commands/remove-row-col.command.d.ts +1 -1
- package/lib/types/commands/utils/handle-merge-operation.d.ts +1 -1
- package/lib/types/index.d.ts +2 -2
- package/lib/types/services/ref-range/__tests__/ref-range.service.spec.d.ts +14 -0
- package/lib/types/services/ref-range/__tests__/watch-range.spec.d.ts +16 -0
- package/lib/types/services/ref-range/ref-range.service.d.ts +6 -2
- package/lib/types/services/ref-range/util.d.ts +23 -4
- package/lib/umd/index.js +2 -2
- package/package.json +10 -10
- /package/lib/types/services/ref-range/__tests__/{util.d.ts → __testing__.d.ts} +0 -0
- /package/lib/types/services/ref-range/__tests__/{util.spec.d.ts → utils.spec.d.ts} +0 -0
package/lib/umd/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(v,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],r):(v=typeof globalThis<"u"?globalThis:v||self,r(v.UniverSheets={},v.UniverCore,v["@wendellhu/redi"],v.rxjs,v.UniverEngineFormula,v.rxjs.operators,v.UniverEngineRender))})(this,function(v,r,j,be,Q,Eo,Do){"use strict";var kr=Object.defineProperty;var Br=(v,r,j)=>r in v?kr(v,r,{enumerable:!0,configurable:!0,writable:!0,value:j}):v[r]=j;var V=(v,r,j)=>(Br(v,typeof r!="symbol"?r+"":r,j),j);var nn;var No=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,Ao=(n,t,o,e)=>{for(var s=e>1?void 0:e?Oo(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&No(t,o,s),s},Po=(n,t)=>(o,e)=>t(o,e,n);const x="normalSelectionPluginName";var sn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(sn||{});v.SelectionManagerService=class{constructor(t){V(this,"_selectionInfo",new Map);V(this,"_currentSelection",null);V(this,"_selectionMoveStart$",new be.Subject);V(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());V(this,"_selectionMoving$",new be.Subject);V(this,"selectionMoving$",this._selectionMoving$.asObservable());V(this,"_selectionMoveEnd$",new be.BehaviorSubject(null));V(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());V(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:x,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=x,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:s},i)=>e===i?!1:o.startRow<=s.endRow&&o.endRow>=s.startRow&&o.startColumn<=s.endColumn&&o.endColumn>=s.startColumn))}_getSelectionDatas(t){var i,a;if(t==null)return;const{pluginName:o,unitId:e,sheetId:s}=t;return(a=(i=this._selectionInfo.get(o))==null?void 0:i.get(e))==null?void 0:a.get(s)}_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:s,sheetId:i,selectionDatas:a}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(s)||u.set(s,new Map);const d=u.get(s);if(!d.has(i))d.set(i,[...a]);else{let l=d.get(i);l==null&&(l=[],d.set(i,l)),l.push(...a)}o&&this._refresh({pluginName:e,unitId:s,sheetId:i})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:s,selectionDatas:i}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const a=this._selectionInfo.get(o);a.has(e)||a.set(e,new Map);const u=a.get(e);if(!u.has(s))u.set(s,i);else{let d=u.get(s);d==null&&(d=[],u.set(s,d)),d.splice(0,d.length,...i)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}},v.SelectionManagerService=Ao([Po(0,j.Inject(r.ThemeService))],v.SelectionManagerService);const ko=r.createInterceptorKey("CELL_CONTENT"),Bo=r.createInterceptorKey("PERMISSION"),Te={CELL_CONTENT:ko,PERMISSION:Bo};var Lo=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,jo=(n,t,o,e)=>{for(var s=e>1?void 0:e?Vo(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&Lo(t,o,s),s},Wo=(n,t)=>(o,e)=>t(o,e,n);v.SheetInterceptorService=class extends r.Disposable{constructor(o){super();V(this,"_interceptorsByName",new Map);V(this,"_commandInterceptors",[]);V(this,"_workbookDisposables",new Map);V(this,"_worksheetDisposables",new Map);this._currentUniverService=o,this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(Te.CELL_CONTENT,{priority:-1,handler(e,s){const i=s.worksheet.getCellRaw(s.row,s.col);return e?{...i,...e}:i}}),this.intercept(Te.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,s)=>{var i,a;return((i=s.priority)!=null?i:0)-((a=e.priority)!=null?a:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(s=>s.getMutations(o));return{preUndos:e.map(s=>{var i;return(i=s.preUndos)!=null?i:[]}).flat(),undos:e.map(s=>s.undos).flat(),preRedos:e.map(s=>{var i;return(i=s.preRedos)!=null?i:[]}).flat(),redos:e.map(s=>s.redos).flat()}}intercept(o,e){const s=o;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const i=this._interceptorsByName.get(s);return i.push(e),this._interceptorsByName.set(s,i.sort((a,u)=>{var d,l;return((d=u.priority)!=null?d:0)-((l=a.priority)!=null?l:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),e)))}fetchThroughInterceptors(o){const e=o,s=this._interceptorsByName.get(e);return r.composeInterceptors(s||[])}_interceptWorkbook(o){const e=new r.DisposableCollection,s=o.getUnitId(),i=this,a=u=>{const d=u.getSheetId();u.__interceptViewModel(l=>{const c=new r.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,S){return i.fetchThroughInterceptors(Te.CELL_CONTENT)(u.getCellRaw(g,S),{unitId:s,subUnitId:d,row:g,col:S,worksheet:u,workbook:o})}});c.add(m),i._worksheetDisposables.set(rn(s,u),c)})};o.getSheets().forEach(u=>a(u)),e.add(r.toDisposable(o.sheetCreated$.subscribe(u=>a(u)))),e.add(r.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),e.add(r.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u))))}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),s=this._workbookDisposables.get(e);s&&(s.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const s=rn(o,e),i=this._worksheetDisposables.get(s);i&&(i.dispose(),this._worksheetDisposables.delete(s))}},v.SheetInterceptorService=jo([r.OnLifecycle(r.LifecycleStages.Starting,v.SheetInterceptorService),Wo(0,r.IUniverInstanceService)],v.SheetInterceptorService);function rn(n,t){return`${n}|${t.getSheetId()}`}const ce=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(a==null)throw new Error("workbook is null error!");const u=a.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),l=a.getStyles(),c=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,S,h)=>{const C=r.Tools.deepClone(d==null?void 0:d.getValue(g,S))||{},f=l.getStyleByCell(C),R=$o(f,h&&h.s?h.s:null);C.s=R,c.setValue(g,S,Fo(C))}),{...t,options:{},cellValue:c.getMatrix()}};function Fo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n)}const G={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!a)return!1;const u=a.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),l=a.getStyles();return new r.ObjectMatrix(o).forValue((m,g,S)=>{if(!S)d==null||d.setValue(m,g,{});else{const h=d.getValue(m,g)||{},C=S.t===r.CellValueType.FORCE_STRING?S.t:S.v!==void 0?an(S.v,S.t):an(h.v,h.t);if(S.f!==void 0&&(h.f=S.f),S.si!==void 0&&(h.si=S.si),S.p!==void 0&&(h.p=S.p),S.v!==void 0&&(h.v=C===r.CellValueType.NUMBER?Number(S.v):C===r.CellValueType.BOOLEAN?Ho(S.v)?1:0:S.v),h.v!==void 0&&(h.t=C),S.s!==void 0){const f=l.getStyleByCell(h);f==null&&delete h.s,typeof S.s=="string"&&(S.s=l.get(S.s));const R=Ke(f,S.s?S.s:null);R&&r.Tools.removeNull(R),r.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!S.p&&h.p&&qo(h.p,S.s?S.s:null)}d.setValue(m,g,r.Tools.removeNull(h))}}),!0}};function an(n,t){return n===null?null:typeof n=="string"?dn(n)?(+n==0||+n==1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:Yo(n)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:typeof n=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function Ho(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(dn(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 $o(n,t){return Go(n,t)}function Go(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=zo(o[e]||{},t[e]):e in o||(o[e]=null);return o}function zo(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function Ke(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=r.Tools.deepClone(n)||{};if(e){for(const s in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in e&&s==="bd"?e[s]=Object.assign(e[s],t[s]):e[s]=t[s]);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 un(n,t){return n.some(o=>o.startIndex===t)?un(n,t+1):t}function qo(n,t){var a;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],s=((a=n.body)==null?void 0:a.paragraphs)||[];for(const u of n.body.textRuns){const{st:d,ed:l,ts:c={}}=u;if(o<d){const g={st:o,ed:d},S=Ke({},t,!0);S&&r.Tools.removeNull(S),r.Tools.isEmptyObject(S)||(g.ts=S),e.push(g)}const m=Ke(c,t,!0);m&&r.Tools.removeNull(m),r.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=un(s,l)}const i=n.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<i){const u={st:o,ed:i},d=Ke({},t,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=e}function xo(n){return/^-?\d+(\.\d+)?$/.test(n)}function dn(n){return xo(n)?Number(n)<=Number.MAX_SAFE_INTEGER:!1}function Yo(n){return n.toUpperCase()==="TRUE"||n.toUpperCase()==="FALSE"}const Je={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(v.SelectionManagerService),s=n.get(r.IUndoRedoService),i=n.get(v.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],S={subUnitId:l,unitId:u,cellValue:Ko(c)},h=ce(n,S);m.push({id:G.id,params:S}),g.push({id:G.id,params:h});const C=i.onCommandExecute({id:Je.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Ko(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:i,endColumn:a}=o;for(let u=e;u<=i;u++)for(let d=s;d<=a;d++)t.setValue(u,d,null)}),t.getData()}const ft={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(v.SelectionManagerService),s=n.get(r.IUndoRedoService),i=n.get(v.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={subUnitId:l,unitId:u,cellValue:Jo(c)},g=ce(n,m),S=i.onCommandExecute({id:ft.id}),h=[{id:G.id,params:m},...S.redos],C=[...S.undos,{id:G.id,params:g}];return r.sequenceExecute(h,o).result?(s.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:h}),!0):!1}};function Jo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:i,endColumn:a}=o;for(let u=e;u<=i;u++)for(let d=s;d<=a;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null})}),t.getData()}const Xe={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(v.SelectionManagerService),s=n.get(r.IUndoRedoService),i=n.get(v.SheetInterceptorService),a=t.getCurrentUniverSheetInstance(),u=a.getUnitId(),l=a.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],S={subUnitId:l,unitId:u,cellValue:Xo(c)},h=ce(n,S);m.push({id:G.id,params:S}),g.push({id:G.id,params:h});const C=i.onCommandExecute({id:Xe.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:i,endColumn:a}=o;for(let u=e;u<=i;u++)for(let d=s;d<=a;d++)t.setValue(u,d,{s:null})}),t.getData()}const It=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),we={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{sheet:e,index:s,unitId:i}=t,a=o.getUniverSheetInstance(i);return a?a.addWorksheet(e.id,s,e):!1}},cn=(n,t)=>{const e=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:s,unitId:i}=t,a=e.getSheetBySheetId(s).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===s),sheet:a,unitId:i}},je={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,i=o.getUniverSheetInstance(s);return i?i.removeSheet(e):!1}},ln={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{var C,f;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.LocaleService);let a=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(C=t.unitId)!=null?C:a,u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c=r.Tools.deepClone(l.getConfig());c.name+=i.t("sheets.sheetCopy"),c.id=r.Tools.generateRandomId();const g={index:d.getSheetIndex(l)+1,sheet:c,unitId:a},S=It(n,g);return o.syncExecuteCommand(we.id,g)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:je.id,params:S}],redoMutations:[{id:we.id,params:g}]}),!0):!1}},We={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getSheetBySheetId(t.from.subUnitId),u=i.getSheetBySheetId(t.to.subUnitId);if(!a||!u)return!1;const d=a.getCellMatrix(),l=u.getCellMatrix();return new r.ObjectMatrix(o.value).forValue((c,m,g)=>{d.setValue(c,m,g)}),new r.ObjectMatrix(e.value).forValue((c,m,g)=>{l.setValue(c,m,g)}),!0}},q={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(v.SelectionManagerService);if(!t)return!1;const{selections:e,type:s}=t;return o.replace(e,s),!0}};function Fe(n,t,o=!0){const e=t.getMatrixWithMergedCells(...r.selectionToArray(n)),s=[];if(e.forValue((a,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const l={startRow:a,startColumn:u,endRow:a+d.rowSpan-1,endColumn:u+d.colSpan-1};r.Rectangle.contains(n,l)||s.push(l)}}),s.length===0)return n;const i=r.Rectangle.union(n,...s);return o?Fe(i,t,o):i}function Zo(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((i,a,u)=>(e={actualRow:i,actualColumn:a,startRow:i,startColumn:a,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:i+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:a+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:r.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function Qo(n,t,o){const{startRow:e,startColumn:s,endRow:i,endColumn:a}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(i)&&(n.endRow=t),Number.isNaN(s)&&(n.startColumn=0),Number.isNaN(a)&&(n.endColumn=o),n}function X(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,s=t.getMergedCell(o,e);return s?{...s,actualRow:o,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const le=(n,t,o)=>({id:q.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:x,selections:[{range:n,primary:X(n,o)}]}}),mn="sheet.command.move-range",Ze={type:r.CommandType.COMMAND,id:mn,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.ErrorService),a=s.getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId(),c=Rt(n,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(c===null)return i.emit("Across a merged cell."),!1;const g=n.get(v.SheetInterceptorService).onCommandExecute({id:Ze.id,params:{...t}}),S=[...c.redos,...g.redos,{id:q.id,params:{unitId:d,subUnitId:l,pluginName:x,selections:[{range:t.toRange,primary:X(t.toRange,u)}]}}],h=[{id:q.id,params:{unitId:d,subUnitId:l,pluginName:x,selections:[{range:t.fromRange,primary:X(t.fromRange,u)}]}},...c.undos,...g.undos];return r.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:d,undoMutations:h,redoMutations:S}),!0):!1}};function Rt(n,t,o,e=!1){const s=[],i=[],{range:a,subUnitId:u,unitId:d}=t,{range:l,subUnitId:c}=o,g=n.get(r.IUniverInstanceService).getUniverSheetInstance(d),S=g==null?void 0:g.getSheetBySheetId(c),h=g==null?void 0:g.getSheetBySheetId(u),C=S==null?void 0:S.getCellMatrix(),f=h==null?void 0:h.getCellMatrix();if(S&&h&&C&&f){const R=Fe(l,S,!1);if(!r.Rectangle.equals(l,R)&&!e)return null;const w=new r.ObjectMatrix,I=new r.ObjectMatrix;r.Range.foreach(a,(U,b)=>{w.setValue(U,b,f.getValue(U,b)),I.setValue(U,b,null)});const M=new r.ObjectMatrix;r.Range.foreach(l,(U,b)=>{M.setValue(U,b,C.getValue(U,b))});const p=new r.ObjectMatrix;r.Range.foreach(a,(U,b)=>{const N=r.cellToRange(U,b),L=r.Rectangle.getRelativeRange(N,a),y=r.Rectangle.getPositionRange(L,l);p.setValue(y.startRow,y.startColumn,f.getValue(U,b))});const E={from:{value:I.getMatrix(),subUnitId:u},to:{value:p.getMatrix(),subUnitId:c},unitId:d},_={from:{value:w.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:c},unitId:d};s.push({id:We.id,params:E}),i.push({id:We.id,params:_})}return{redos:s,undos:i}}const pe={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SelectionManagerService),a=n.get(v.SheetInterceptorService),{value:u,range:d,unitId:l=s.getCurrentUniverSheetInstance().getUnitId(),subUnitId:c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=d?[d]:i.getSelectionRanges();if(!m||!m.length)return!1;const g=new r.ObjectMatrix;let S;if(r.Tools.isArray(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:E,endRow:_,endColumn:U}=m[M];for(let b=0;b<=_-p;b++)for(let N=0;N<=U-E;N++)g.setValue(b+p,N+E,u[b][N])}else if(r.isICellData(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:E,endRow:_,endColumn:U}=m[M];for(let b=p;b<=_;b++)for(let N=E;N<=U;N++)g.setValue(b,N,u)}else S=u;const h={subUnitId:c,unitId:l,cellValue:S!=null?S:g.getMatrix()},C=ce(n,h);if(!a.fetchThroughInterceptors(Te.PERMISSION)(null,{id:pe.id,params:h}))return!1;const f=o.syncExecuteCommand(G.id,h),{undos:R,redos:w}=a.onCommandExecute({id:pe.id,params:{...h,range:m}}),I=r.sequenceExecute([...w],o);return f&&I.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:G.id,params:C},...R],redoMutations:[{id:G.id,params:h},...w]}),!0):!1}};function Mt(n,t){const o=[],e=[],{unitId:s,subUnitId:i,range:a,shiftDimension:u,cellValue:d={}}=t,l=n.get(r.IUniverInstanceService),c=n.get(v.SheetInterceptorService),m=l.getUniverSheetInstance(s),g=m==null?void 0:m.getSheetBySheetId(i);if(g){const S=g.getCellMatrix(),h=S.getDataRange();if(a.startColumn<=h.endColumn||a.startRow<=h.endRow){let I,M;if(u===r.Dimension.COLUMNS){const E=Math.min(a.endRow,h.endRow);let _=0;for(let b=a.startRow;b<=E;b++){const N=S.getRow(b),L=N?r.getArrayLength(N)-1:0;_=Math.max(_,L)}I={startRow:a.startRow,startColumn:a.startColumn,endRow:E,endColumn:_};const U=a.endColumn-a.startColumn+1;M={startRow:a.startRow,startColumn:I.startColumn+U,endRow:E,endColumn:I.endColumn+U}}else{const E=Math.min(a.endColumn,h.endColumn),_=h.endRow;I={startRow:a.startRow,startColumn:a.startColumn,endRow:_,endColumn:E};const U=a.endRow-a.startRow+1;M={startRow:I.startRow+U,startColumn:a.startColumn,endRow:I.endRow+U,endColumn:E}}const p=Rt(n,{unitId:s,subUnitId:i,range:I},{unitId:s,subUnitId:i,range:M},!0);p&&(o.push(...p.redos),e.push(...p.undos))}if(Object.entries(d).length===0)for(let I=a.startRow;I<=a.endRow;I++){d[I]||(d[I]={});for(let M=a.startColumn;M<=a.endColumn;M++)d[I][M]=null}const C={subUnitId:i,unitId:s,cellValue:d},f=ce(n,C),{undos:R,redos:w}=c.onCommandExecute({id:pe.id,params:{...C,range:a}});o.push({id:G.id,params:C},...w),e.push({id:G.id,params:f},...R)}return{redo:o,undo:e}}function wt(n,t){const o=[],e=[],{unitId:s,subUnitId:i,range:a,shiftDimension:u}=t,d=n.get(r.IUniverInstanceService),l=n.get(v.SheetInterceptorService),c=d.getUniverSheetInstance(s),m=c==null?void 0:c.getSheetBySheetId(i);if(m){const g=m.getCellMatrix(),S=g.getDataRange(),h={subUnitId:i,unitId:s,cellValue:ns([a])},C=ce(n,h),f=l.onCommandExecute({id:pe.id,params:h});if(o.push({id:G.id,params:h},...f.redos),e.push(...f.undos,{id:G.id,params:C}),a.startColumn<=S.endColumn||a.startRow<=S.endRow){let R=null,w=null;if(u===r.Dimension.COLUMNS&&a.endColumn<S.endColumn){const I=Math.min(a.endRow,S.endRow);let M=0;for(let E=a.startRow;E<=I;E++){const _=g.getRow(E),U=_?r.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:a.startRow,startColumn:a.endColumn+1,endRow:I,endColumn:M};const p=a.endColumn-a.startColumn+1;w={startRow:a.startRow,startColumn:R.startColumn-p,endRow:I,endColumn:R.endColumn-p}}if(u===r.Dimension.ROWS&&a.endRow<S.endRow){const I=Math.min(a.endColumn,S.endColumn),M=S.endRow;R={startRow:a.endRow+1,startColumn:a.startColumn,endRow:M,endColumn:I};const p=a.endRow-a.startRow+1;w={startRow:R.startRow-p,startColumn:a.startColumn,endRow:R.endRow-p,endColumn:I}}if(R&&w){const I=Rt(n,{unitId:s,subUnitId:i,range:R},{unitId:s,subUnitId:i,range:w},!0);I&&(o.push(...I.redos),e.push(...I.undos))}}}return{redo:o,undo:e}}function es(n,t,o,e,s,i){const{startRow:a,endRow:u,startColumn:d,endColumn:l}=t;if(s===r.Dimension.ROWS){const c=u-a+1;for(let m=o;m>=a;m--)for(let g=d;g<=l;g++){const S=n.getValue(m,g);S==null?n.realDeleteValue(m+c,g):n.setValue(m+c,g,S)}for(let m=u;m>=a;m--)for(let g=d;g<=l;g++)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const c=l-d+1;for(let m=a;m<=u;m++)for(let g=e;g>=d;g--){const S=n.getValue(m,g);S==null?n.realDeleteValue(m,g+c):n.setValue(m,g+c,S)}for(let m=a;m<=u;m++)for(let g=l;g>=d;g--)i&&i[m]&&i[m][g]?n.setValue(m,g,i[m][g]):n.realDeleteValue(m,g)}}function ts(n,t,o,e,s){const{startRow:i,endRow:a,startColumn:u,endColumn:d}=t,l=a-i+1,c=d-u+1;if(s===r.Dimension.ROWS)for(let m=i;m<=o;m++)for(let g=u;g<=d;g++){const S=n.getValue(m+l,g);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}else if(s===r.Dimension.COLUMNS)for(let m=i;m<=a;m++)for(let g=u;g<=e;g++){const S=n.getValue(m,g+c);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}}function ns(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:i,endColumn:a}=o;for(let u=e;u<=i;u++)for(let d=s;d<=a;d++)t.setValue(u,d,null)}),t.getData()}const gn="sheet.command.delete-range-move-left",Qe={type:r.CommandType.COMMAND,id:gn,handler:async(n,t)=>{var I;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SelectionManagerService),a=n.get(v.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=i.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.COLUMNS},S=a.onCommandExecute({id:Qe.id,params:{range:l}}),{redo:h,undo:C}=wt(n,g),f=[...h],R=[...C];return f.push(...S.redos),f.push(le(l,c,m)),R.push(...S.undos),r.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},hn="sheet.command.delete-range-move-up",et={type:r.CommandType.COMMAND,id:hn,handler:async(n,t)=>{var I;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SelectionManagerService),a=n.get(v.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=i.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.ROWS},S=a.onCommandExecute({id:et.id,params:{range:l}}),{redo:h,undo:C}=wt(n,g),f=[...h],R=[...C];return f.push(...S.redos),f.push(le(l,c,m)),R.push(...S.undos),await r.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},pt=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},ve={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:s,rowInfo:i}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const l=d.getRowManager().getRowData(),c={h:d.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let C=m;C<m+g;C++)i?r.insertMatrixArray(C,(h=i[C-s.startRow])!=null?h:c,l):r.insertMatrixArray(C,c,l);return d.setRowCount(d.getRowCount()+s.endRow-s.startRow+1),d.getCellMatrix().insertRows(s.startRow,g),!0}},yt=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Se={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(n,t)=>{var h;const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getColumnManager(),{range:a,colInfo:u}=t,l=i.getColumnData(),c=a.startColumn,m=a.endColumn-a.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let C=c;C<c+m;C++){const f={w:g,hd:0};u?r.insertMatrixArray(C,(h=u[C-a.startColumn])!=null?h:f,l):r.insertMatrixArray(C,f,l)}return s.setColumnCount(s.getColumnCount()+a.endColumn-a.startColumn+1),s.getCellMatrix().insertColumns(a.startColumn,m),!0}},os=(n,t)=>{const s=t.getRowManager().getRowData(),i={},a=n.range,u=r.sliceMatrixArray(a.startRow,a.endRow,s),d=r.concatMatrixArray(i,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},Ce={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=t.range,u=s.getRowManager().getRowData(),d=i.endRow-i.startRow+1;return r.spliceArray(i.startRow,d,u),s.getCellMatrix().removeRows(i.startRow,d),s.setRowCount(s.getRowCount()-d),!0}},ss=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),d={},l=t.range,c=r.sliceMatrixArray(l.startColumn,l.endColumn,u),m=r.concatMatrixArray(d,c);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=t.range,u=s.getColumnManager().getColumnData(),d=i.endColumn-i.startColumn+1;return r.spliceArray(i.startColumn,d,u),s.setColumnCount(s.getColumnCount()-d),s.getCellMatrix().removeColumns(i.startColumn,d),!0}},rs="sheet.command.insert-range-move-down",tt={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var N;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.ILogService),a=n.get(v.SelectionManagerService),u=n.get(v.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=a.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const S=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(f.startRow,f.endRow,c.startColumn,c.endColumn).getDataRange().endRow,I=Math.max(w+(c.endRow-c.startRow+1)-f.endRow,0);if(I>0){const L=c.startRow-1,y=g.getRowHeight(L),Y={unitId:d,subUnitId:l,range:{startRow:f.endRow+1,endRow:f.endRow+I,startColumn:f.startColumn,endColumn:f.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:y,hd:r.BooleanNumber.FALSE}))};S.push({id:ve.id,params:Y});const Me=pt(n,Y);h.push({id:Ce.id,params:Me})}const M={};r.Range.foreach(c,(L,y)=>{const Y=g.getCell(L,y);Y&&(M[L]||(M[L]={}),M[L][y]={s:Y.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.ROWS,cellValue:M},{redo:E,undo:_}=Mt(n,p);S.push(...E),h.push(..._);const U=u.onCommandExecute({id:tt.id,params:{range:c}});return S.push(...U.redos),S.push(le(c,m,g)),h.push(...U.undos),r.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:S}),!0):!1}},vn="sheet.command.insert-range-move-right",nt={type:r.CommandType.COMMAND,id:vn,handler:async(n,t)=>{var N;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.ILogService),a=n.get(v.SelectionManagerService),u=n.get(v.SheetInterceptorService);if(a.isOverlapping())return i.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=a.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const S=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(c.startRow,c.endRow,f.startColumn,f.endColumn).getDataRange().endColumn,I=Math.max(w+(c.endColumn-c.startColumn+1)-f.endColumn,0);if(I>0){const L=c.startColumn-1,y=g.getColumnWidth(L),Y={unitId:d,subUnitId:l,range:{startRow:f.startRow+1,endRow:f.endRow,startColumn:f.endColumn+1,endColumn:f.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:y,hd:r.BooleanNumber.FALSE}))};S.push({id:Se.id,params:Y});const Me=yt(n,Y);h.push({id:fe.id,params:Me})}const M={};r.Range.foreach(c,(L,y)=>{const Y=g.getCell(L,y);!Y||!Y.s||(M[L]||(M[L]={}),M[L][y]={s:Y.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.COLUMNS,cellValue:M},{redo:E,undo:_}=Mt(n,p);S.push(...E),h.push(..._);const U=u.onCommandExecute({id:nt.id,params:{range:c}});return S.push(...U.redos),S.push(le(c,m,g)),h.push(...U.undos),r.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:S}),!0):!1}},Sn="sheet.command.insert-row",Ee={type:r.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SheetInterceptorService),a=s.getUniverSheetInstance(t.unitId),u=a.getSheetBySheetId(t.subUnitId),{range:d,direction:l,unitId:c,subUnitId:m}=t,{startRow:g,endRow:S}=d,h=l===r.Direction.UP?g:g-1,C=u.getRowHeight(h),f={unitId:c,subUnitId:m,range:d,rowInfo:new Array(S-g+1).fill(void 0).map(()=>({h:C,hd:r.BooleanNumber.FALSE}))},R=pt(n,f),w=i.onCommandExecute({id:Ee.id,params:t});return r.sequenceExecute([{id:ve.id,params:f},...w.redos,le(d,a,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Ce.id,params:R},...w.undos],redoMutations:[{id:ve.id,params:f},...w.redos]}),!0):!1}},Cn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(v.SelectionManagerService).getSelections())==null?void 0:g.map(S=>S.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=e.endRow-e.startRow+1,c={};r.Range.foreach(e,(S,h)=>{const C=a.getCell(S,h);!C||!C.s||(c[S]||(c[S]={}),c[S][h]={s:C.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:a.getColumnCount()-1},cellValue:c};return n.get(r.ICommandService).executeCommand(Ee.id,m)}},fn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(v.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=e.endRow-e.startRow+1,c={unitId:u,subUnitId:d,direction:r.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:a.getColumnCount()-1}};return n.get(r.ICommandService).executeCommand(Ee.id,c)}},In="sheet.command.insert-col",De={type:r.CommandType.COMMAND,id:In,handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SheetInterceptorService),{range:a,direction:u,subUnitId:d,unitId:l,cellValue:c}=t,{startColumn:m,endColumn:g}=t.range,S=s.getUniverSheetInstance(t.unitId),h=S.getSheetBySheetId(t.subUnitId),C=u===r.Direction.LEFT?m:m-1,f=h.getColumnWidth(C),R={unitId:l,subUnitId:d,range:a,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:f,hd:r.BooleanNumber.FALSE}))},w=yt(n,R);t.unitId,t.subUnitId,t.range,r.Dimension.COLUMNS;const I=i.onCommandExecute({id:De.id,params:t});return r.sequenceExecute([{id:Se.id,params:R},...I.redos,le(a,S,h)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:fe.id,params:w},...I.undos].filter(Boolean),redoMutations:[{id:Se.id,params:R},...I.redos].filter(Boolean)}),!0):!1}},Rn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(v.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=e.endColumn-e.startColumn+1,c={};r.Range.foreach(e,(g,S)=>{const h=a.getCell(g,S);!h||!h.s||(c[g]||(c[g]={}),c[g][S]={s:h.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:a.getLastRowWithContent()},cellValue:c};return n.get(r.ICommandService).executeCommand(De.id,m)}},Mn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(v.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!i)return!1;const a=i.getActiveSheet();if(!a)return!1;const u=i.getUnitId(),d=a.getSheetId(),l=e.endColumn-e.startColumn+1,c={unitId:u,subUnitId:d,direction:r.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:a.getLastRowWithContent()}};return n.get(r.ICommandService).executeCommand(De.id,c)}},wn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(n,t)=>{var S,h;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.LocaleService),a=(S=t==null?void 0:t.unitId)!=null?S:s.getCurrentUniverSheetInstance().getUnitId(),u=s.getUniverSheetInstance(a);if(!u)return!1;let d=u.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});t?(d=(h=t.index)!=null?h:d,t.sheet?l=t.sheet:(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${i.t("sheets.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${i.t("sheets.sheet")}`));const c={index:d,sheet:l,unitId:a},m=It(n,c);return o.syncExecuteCommand(we.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:je.id,params:m}],redoMutations:[{id:we.id,params:c}]}),!0):!1}};function is(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:i}=t,a=s.startRow>i.startRow,u=s.endRow-s.startRow+1;return a?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(i),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...i,endRow:i.endRow-u,startRow:i.startRow-u}}}const Ne={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:i}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const l=s.startRow,c=s.endRow-s.startRow+1,m=i.startRow,g=d.getRowManager().getRowData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveRows(l,c,m),!0}};function as(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:i}=t,a=s.startColumn>i.startColumn,u=s.endColumn-s.startColumn+1;return a?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(i),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...i,startColumn:i.startColumn-u,endColumn:i.endColumn-u}}}const Oe={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:i}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const l=s.startColumn,c=s.endColumn-s.startColumn+1,m=i.startColumn,g=d.getColumnManager().getColumnData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveColumns(l,c,m),!0}};function us(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function ds(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const pn="sheet.command.move-rows",Ut={id:pn,type:r.CommandType.COMMAND,handler:async(n,t)=>{const e=n.get(v.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:i}}=t,a=e==null?void 0:e.filter(oe=>oe.range.rangeType===r.RANGE_TYPE.ROW&&oe.range.startRow<=s&&s<=oe.range.endRow);if((a==null?void 0:a.length)!==1)return!1;const u=n.get(v.SheetInterceptorService),l=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),S=n.get(r.ErrorService),h=a[0].range,C=a[0].primary,f=Fe(h,c,!1);if(!r.Rectangle.equals(h,f))return S.emit("Only part of a merged cell is selected."),!1;if(us(i,c))return S.emit("Across a merged cell."),!1;const R={...h,startRow:i,endRow:i+h.endRow-h.startRow},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=is(n,w),p=i-s<0,E=h.endRow-h.startRow+1,_=p?R:{...R,startRow:R.startRow-E,endRow:R.endRow-E},U={unitId:m,subUnitId:g,pluginName:x,selections:[{range:_,primary:X(_,c),style:null}]},b={unitId:m,subUnitId:g,pluginName:x,selections:[{range:h,primary:C,style:null}]},N=n.get(r.ICommandService),L=u.onCommandExecute({id:Ut.id,params:t}),y=[{id:Ne.id,params:w},{id:q.id,params:U},...L.redos],Y=[{id:Ne.id,params:I},{id:q.id,params:b},...L.undos];return r.sequenceExecute(y,N).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Y,redoMutations:y}),!0):!1}},yn="sheet.command.move-cols",_t={id:yn,type:r.CommandType.COMMAND,handler:async(n,t)=>{const e=n.get(v.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:i}}=t,a=e==null?void 0:e.filter(oe=>oe.range.rangeType===r.RANGE_TYPE.COLUMN&&oe.range.startColumn<=s&&s<=oe.range.endColumn);if((a==null?void 0:a.length)!==1)return!1;const u=n.get(v.SheetInterceptorService),l=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),S=n.get(r.ErrorService),h=a[0].range,C=a[0].primary,f=Fe(h,c,!1);if(!r.Rectangle.equals(h,f))return S.emit("Only part of a merged cell is selected."),!1;if(ds(i,c))return S.emit("Across a merged cell."),!1;const R={...h,startColumn:i,endColumn:i+h.endColumn-h.startColumn},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=as(n,w),M=h.endColumn-h.startColumn+1,_=i-s<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},U={unitId:m,subUnitId:g,pluginName:x,selections:[{range:_,primary:X(_,c),style:null}]},b={unitId:m,subUnitId:g,pluginName:x,selections:[{range:h,primary:C,style:null}]},N=n.get(r.ICommandService),L=u.onCommandExecute({id:_t.id,params:t}),y=[{id:Oe.id,params:w},{id:q.id,params:U},...L.redos],Y=[{id:Oe.id,params:I},{id:q.id,params:b},...L.undos];return r.sequenceExecute(y,N).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:Y,redoMutations:y}),!0}},Un="sheet.command.remove-row",ot={type:r.CommandType.COMMAND,id:Un,handler:async(n,t)=>{var R,w,I,M;const o=n.get(v.SelectionManagerService),e=n.get(v.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=o.getLast())==null?void 0:R.range),!s)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId();s={...s,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=u.getCellMatrix().getSlice(s.startRow,s.endRow,0,u.getColumnCount()-1),g={unitId:d,subUnitId:l,cellValue:m.getMatrix()},S=os(c,u),h=e.onCommandExecute({id:ot.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:Ce.id,params:c},...h.redos,le(s,a,u)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:ve.id,params:S},{id:G.id,params:g},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:Ce.id,params:c},...h.redos]}),!0):!1}},_n="sheet.command.remove-col",st={type:r.CommandType.COMMAND,id:_n,handler:async(n,t)=>{var R,w,I,M;const o=n.get(v.SelectionManagerService),e=n.get(v.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=o.getLast())==null?void 0:R.range),!s)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=a.getActiveSheet(),d=a.getUnitId(),l=u.getSheetId();s={...s,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=ss(n,c),g=u.getCellMatrix().getSlice(0,u.getRowCount()-1,s.startColumn,s.endColumn),S={unitId:d,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:st.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:fe.id,params:c},...h.redos,le(s,a,u)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:Se.id,params:m},{id:G.id,params:S},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:fe.id,params:c},...h.redos]}),!0):!1}},bt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(n,t)=>{var R,w;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SheetInterceptorService);let a=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(R=t.unitId)!=null?R:a,u=(w=t.subUnitId)!=null?w:u);const d=s.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||d.getSheets().length<=1)return!1;const c=d.getSheetIndex(l);d.getConfig().sheetOrder[c+1];const m={subUnitId:u,unitId:a,subUnitName:l.getName()},g=cn(n,m),S=i.onCommandExecute({id:bt.id,params:{unitId:a,subUnitId:u}}),h=[{id:je.id,params:m},...S.redos],C=[...S.undos,{id:we.id,params:g}];return r.sequenceExecute(h,o)?(e.pushUndoRedo({unitID:a,undoMutations:C,redoMutations:h}),!0):!1}},ie=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},W={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)a.push(u[d]);return!0}},ee=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const a=s.getConfig().mergeData,u=t.ranges,d=[];for(let l=0;l<u.length;l++)for(let c=a.length-1;c>=0;c--){const m=a[c],g=u[l];r.Rectangle.intersects(m,g)&&d.push(a[c])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let l=a.length-1;l>=0;l--){const c=a[l],m=u[d];r.Rectangle.intersects(c,m)&&a.splice(l,1)}return!0}},bn={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(v.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=t.getSelectionRanges();if(!(i!=null&&i.length))return!1;const a=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:a,subUnitId:u,ranges:i};let m=!1;const g=l.getConfig().mergeData;if(i.forEach(C=>{g.forEach(f=>{r.Rectangle.intersects(C,f)&&(m=!0)})}),!m)return!1;const S=ee(n,c);return o.syncExecuteCommand(F.id,S)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:W.id,params:S}],redoMutations:[{id:F.id,params:S}]}),!0):!1}};class ye{constructor(){V(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});V(this,"_borderInfo$",new be.BehaviorSubject(this._borderInfo));V(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 cs(n,t,o){const e=t?n.getUniverSheetInstance(t):n.getCurrentUniverSheetInstance();if(!e)throw new Error;const s=o?e.getSheetBySheetId(o):e.getActiveSheet();if(!s)throw new Error;return{workbook:e,worksheet:s,unitId:t!=null?t:e.getUnitId(),subUnitId:o!=null?o:s.getSheetId()}}function rt(n,t){const{startRow:o,startColumn:e,endRow:s,endColumn:i}=n;for(let a=o;a<=s;a++)for(let u=e;u<=i;u++)t(a,u)}const Tn={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:s}=t,{type:i,color:a,style:u}=s,d=n.get(r.ICommandService),l=n.get(ye);return l.setType(i),l.setColor(a),l.setStyle(u),d.executeCommand(Ae.id,{unitId:o,subUnitId:e})}},En={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(r.ICommandService);return n.get(ye).setType(t.value),o.executeCommand(Ae.id)}},Dn={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService);return n.get(ye).setStyle(t.value),o.executeCommand(Ae.id)}},Nn={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService);return n.get(ye).setColor(t.value),o.executeCommand(Ae.id)}},Ae={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SelectionManagerService),a=n.get(ye),{worksheet:u,unitId:d,subUnitId:l}=cs(s,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),c=i.getSelectionRanges(),m=u.getConfig().mergeData;if(!(c!=null&&c.length))return!1;const{style:g,color:S,type:h,activeBorderType:C}=a.getBorderInfo();if(!C)return!1;const f=h===r.BorderType.TOP||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,R=h===r.BorderType.LEFT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,w=h===r.BorderType.BOTTOM||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,I=h===r.BorderType.RIGHT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,M=h===r.BorderType.VERTICAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,p=h===r.BorderType.HORIZONTAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,E=h.indexOf("tlbr")>-1,_=h.indexOf("tlbc")>-1,U=h.indexOf("tlmr")>-1,b=h.indexOf("bltr")>-1,N=h.indexOf("mltr")>-1,L=h.indexOf("bctr")>-1,y=c[0],Y={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},Me={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},oe={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},po={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},yo={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},Uo={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},_o={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},bo={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},k=new r.ObjectMatrix,$={s:g,cl:{rgb:S}},Ct=(O,T)=>{let B=null;return m.forEach(J=>{r.Rectangle.intersects(J,{startColumn:T,endColumn:T,startRow:O,endRow:O})&&(B=J)}),B};function H(O,T,B){O.startRow<0||O.startColumn<0||rt(O,(J,se)=>{var D,Ye;const Z=Ct(J,se);let te=T;if(Z&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(B){const re=r.Tools.deepClone((D=k.getValue(Z.startRow,Z.startColumn))==null?void 0:D.s);te=re!=null&&re.bd?Object.assign(re.bd,T):T}k.setValue(Z.startRow,Z.startColumn,{s:{bd:te}})}else{if(B){const re=r.Tools.deepClone((Ye=k.getValue(J,se))==null?void 0:Ye.s);te=re!=null&&re.bd?Object.assign(re.bd,T):T}k.setValue(J,se,{s:{bd:te}})}})}f&&(H(Y,{b:null}),H(yo,{t:r.Tools.deepClone($)},!0)),w&&(H(oe,{t:null}),H(_o,{b:r.Tools.deepClone($)},!0)),R&&(H(Me,{r:null}),H(Uo,{l:r.Tools.deepClone($)},!0)),I&&(H(po,{l:null}),H(bo,{r:r.Tools.deepClone($)},!0)),E&&H(y,{tl_br:r.Tools.deepClone($)},!0),_&&H(y,{tl_bc:r.Tools.deepClone($)},!0),U&&H(y,{tl_mr:r.Tools.deepClone($)},!0),b&&H(y,{bl_tr:r.Tools.deepClone($)},!0),N&&H(y,{ml_tr:r.Tools.deepClone($)},!0),L&&H(y,{bc_tr:r.Tools.deepClone($)},!0),M&&rt(y,(O,T)=>{var J,se,Z,te;const B=Ct(O,T);if(B){if(B.endColumn!==y.endColumn){const D=(J=k.getValue(B.startRow,B.startColumn))==null?void 0:J.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:r.Tools.deepClone($)}):{r:r.Tools.deepClone($)}}})}if(B.startColumn!==y.startColumn){const D=(se=k.getValue(B.startRow,B.startColumn))==null?void 0:se.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:r.Tools.deepClone($)}):{l:r.Tools.deepClone($)}}})}}else{if(T!==y.endColumn){const D=(Z=k.getValue(O,T))==null?void 0:Z.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:r.Tools.deepClone($)}):{r:r.Tools.deepClone($)}}})}if(T!==y.startColumn){const D=(te=k.getValue(O,T))==null?void 0:te.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:r.Tools.deepClone($)}):{l:r.Tools.deepClone($)}}})}}}),p&&rt(y,(O,T)=>{var J,se,Z,te;const B=Ct(O,T);if(B){if(B.endRow!==y.endRow){const D=(J=k.getValue(B.startRow,B.startColumn))==null?void 0:J.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:r.Tools.deepClone($)}):{b:r.Tools.deepClone($)}}})}if(B.startRow!==y.startRow){const D=(se=k.getValue(B.startRow,B.startColumn))==null?void 0:se.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:r.Tools.deepClone($)}):{t:r.Tools.deepClone($)}}})}}else{if(O!==y.endRow){const D=(Z=k.getValue(O,T))==null?void 0:Z.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:r.Tools.deepClone($)}):{b:r.Tools.deepClone($)}}})}if(O!==y.startRow){const D=(te=k.getValue(O,T))==null?void 0:te.s;k.setValue(O,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:r.Tools.deepClone($)}):{t:r.Tools.deepClone($)}}})}}}),!f&&!w&&!R&&!I&&!M&&!p&&!E&&!_&&!U&&!b&&!N&&!L&&(H(Y,{b:null}),H(yo,{t:null},!0),H(oe,{t:null}),H(_o,{b:null},!0),H(Me,{r:null}),H(Uo,{l:null},!0),H(po,{l:null}),H(bo,{r:null},!0),H(y,{tl_br:null},!0),H(y,{tl_bc:null},!0),H(y,{tl_mr:null},!0),H(y,{bl_tr:null},!0),H(y,{ml_tr:null},!0),H(y,{bc_tr:null},!0),rt(y,(O,T)=>{var J,se,Z,te,D,Ye,re,To;const B=Ct(O,T);if(B){if(B.endColumn!==y.endColumn){const A=(J=k.getValue(B.startRow,B.startColumn))==null?void 0:J.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(B.startColumn!==y.startColumn){const A=(se=k.getValue(B.startRow,B.startColumn))==null?void 0:se.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(B.endRow!==y.endRow){const A=(Z=k.getValue(B.startRow,B.startColumn))==null?void 0:Z.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(B.startRow!==y.startRow){const A=(te=k.getValue(B.startRow,B.startColumn))==null?void 0:te.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(T!==y.endColumn){const A=(D=k.getValue(O,T))==null?void 0:D.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(T!==y.startColumn){const A=(Ye=k.getValue(O,T))==null?void 0:Ye.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==y.endRow){const A=(re=k.getValue(O,T))==null?void 0:re.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==y.startRow){const A=(To=k.getValue(O,T))==null?void 0:To.s;k.setValue(O,T,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const on={unitId:d,subUnitId:l,cellValue:k.getData()},Pr=ce(n,on);return o.syncExecuteCommand(G.id,on)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:G.id,params:Pr}],redoMutations:[{id:G.id,params:on}]}),!0):!1}},ls=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Pe={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.TRUE)}}return!0}},ms=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},ke={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let u=a.startColumn;u<a.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.FALSE)}}return!0}},Tt={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),a={unitId:o,subUnitId:e,ranges:s},u=ms(n,a),d={unitId:o,subUnitId:e,pluginName:x,selections:s.map(g=>({range:g,primary:X(g,i),style:null}))},l={unitId:o,subUnitId:e,pluginName:x,selections:Pn(s).map(g=>({range:g,primary:X(g,i),style:null}))},c=n.get(r.ICommandService);return r.sequenceExecute([{id:ke.id,params:a},{id:q.id,params:d}],c).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:Pe.id,params:u},{id:q.id,params:l}],redoMutations:[{id:ke.id,params:a},{id:q.id,params:d}]}),!0}},On={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var l;const o=(l=n.get(v.SelectionManagerService).getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const i=s.getActiveSheet();if(!i)return!1;const a=s.getUnitId(),u=i.getSheetId(),d=o.map(c=>i.getHiddenCols(c.startColumn,c.endColumn)).flat();return n.get(r.ICommandService).executeCommand(Tt.id,{unitId:a,subUnitId:u,ranges:d})}},An={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var S;const o=(S=n.get(v.SelectionManagerService).getSelections())==null?void 0:S.map(h=>h.range).filter(h=>h.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const i=s.getActiveSheet();if(!i)return!1;const a=s.getUnitId(),u=i.getSheetId(),d={unitId:a,subUnitId:u,ranges:o},l={unitId:a,subUnitId:u,pluginName:x,selections:Pn(o).map(h=>({range:h,primary:X(h,i),style:null}))},c={unitId:a,subUnitId:u,pluginName:x,selections:o.map(h=>({range:h,primary:X(h,i),style:null}))},m=n.get(r.ICommandService);if(r.sequenceExecute([{id:Pe.id,params:d},{id:q.id,params:l}],m).result){const h=n.get(r.IUndoRedoService),C=ls(n,d);return h.pushUndoRedo({unitID:a,undoMutations:[{id:ke.id,params:C},{id:q.id,params:c}],redoMutations:[{id:Pe.id,params:d},{id:q.id,params:l}]}),!0}return!1}};function Pn(n){return gs(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function gs(n){const t=[];let o;return n.sort((e,s)=>e.startColumn-s.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 Et=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const a=s.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...a}},Ie={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig(),{startRow:a,startColumn:u,ySplit:d,xSplit:l}=t;return i.freeze={startRow:a,startColumn:u,ySplit:d,xSplit:l},!0}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=s.getCurrentUniverSheetInstance().getUnitId(),a=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(i);if(!u)return!1;const d=u.getSheetBySheetId(a);if(!d)return!1;const{startColumn:l,startRow:c,xSplit:m,ySplit:g}=t;if(c>=d.getRowCount()||l>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const S={unitId:i,subUnitId:a,...t},h=Et(n,S);return o.syncExecuteCommand(Ie.id,S)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ie.id,params:h}],redoMutations:[{id:Ie.id,params:S}]}),!0):!1}},hs={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(r.ICommandService),o=n.get(r.IUndoRedoService),e=n.get(r.IUniverInstanceService),s=e.getCurrentUniverSheetInstance().getUnitId(),i=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),a=e.getUniverSheetInstance(s);if(!a||!a.getSheetBySheetId(i))return!1;const d={unitId:s,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=Et(n,d);return t.syncExecuteCommand(Ie.id,d)?(o.pushUndoRedo({unitID:s,undoMutations:[{id:Ie.id,params:l}],redoMutations:[{id:Ie.id,params:d}]}),!0):!1}},vs=(n,t)=>{if(n.get(r.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-visible",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Ss=(n,t)=>{if(n.get(r.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-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let i=0;i<t.ranges.length;i++){const a=t.ranges[i];for(let u=a.startRow;u<a.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Dt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,i=n.get(r.ICommandService),a=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:s},l=vs(n,d),c={unitId:o,subUnitId:e,pluginName:x,selections:s.map(S=>({range:S,primary:X(S,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:x,selections:Vn(s).map(S=>({range:S,primary:X(S,u),style:null}))};return r.sequenceExecute([{id:Be.id,params:d},{id:q.id,params:c}],i).result&&a.pushUndoRedo({unitID:o,undoMutations:[{id:Le.id,params:l},{id:q.id,params:m}],redoMutations:[{id:Be.id,params:d},{id:q.id,params:c}]}),!0}},Bn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const t=n.get(v.SelectionManagerService),o=n.get(r.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const s=o.getCurrentUniverSheetInstance();if(!s)return!1;const i=s.getActiveSheet();if(!i)return!1;const a=s.getUnitId(),u=i.getSheetId(),d=e.map(c=>i.getHiddenRows(c.startRow,c.endRow)).flat();return n.get(r.ICommandService).executeCommand(Dt.id,{unitId:a,subUnitId:u,ranges:d})}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var C;const t=n.get(v.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=(C=t.getSelections())==null?void 0:C.map(f=>f.range).filter(f=>f.rangeType===r.RANGE_TYPE.ROW);if(!(i!=null&&i.length))return!1;const a=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:a,subUnitId:u,ranges:i},m={unitId:a,subUnitId:u,pluginName:x,selections:Vn(i).map(f=>({range:f,primary:X(f,l),style:null}))},g={unitId:a,subUnitId:u,pluginName:x,selections:i.map(f=>({range:f,primary:X(f,l),style:null}))},S=Ss(n,c);return r.sequenceExecute([{id:Le.id,params:c},{id:q.id,params:m}],o).result&&e.pushUndoRedo({unitID:a,undoMutations:[{id:Be.id,params:S},{id:q.id,params:g}],redoMutations:[{id:Le.id,params:c},{id:q.id,params:m}]}),!0}};function Vn(n){return Cs(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Cs(n){const t=[];let o;return n.sort((e,s)=>e.startRow-s.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 K={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(r.IUniverInstanceService),{unitId:e=o.getCurrentUniverSheetInstance().getUnitId(),subUnitId:s=o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:i,style:a}=t,u=n.get(r.ICommandService),d=n.get(r.IUndoRedoService),l=n.get(v.SelectionManagerService),c=i?[i]:l.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=o.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(s))==null)return!1;const S=new r.ObjectMatrix;if(r.Tools.isArray(a.value))for(let M=0;M<c.length;M++){const{startRow:p,endRow:E,startColumn:_,endColumn:U}=c[M];for(let b=0;b<=E-p;b++)for(let N=0;N<=U-_;N++)S.setValue(b+p,N+_,{s:{[a.type]:a.value[b][N]}})}else for(let M=0;M<c.length;M++){const{startRow:p,endRow:E,startColumn:_,endColumn:U}=c[M],b={s:{[a.type]:a.value}};for(let N=p;N<=E;N++)for(let L=_;L<=U;L++)S.setValue(N,L,b)}const h={subUnitId:s,unitId:e,cellValue:S.getMatrix()},C=ce(n,h),f=u.syncExecuteCommand(G.id,h),{undos:R,redos:w}=n.get(v.SheetInterceptorService).onCommandExecute({id:K.id,params:t}),I=r.sequenceExecute([...w],u);return f&&I.result?(d.pushUndoRedo({unitID:e,undoMutations:[{id:G.id,params:C},...R],redoMutations:[{id:G.id,params:h},...w]}),!0):!1}},fs={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(v.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:s}=t.primary,a={style:{type:"bl",value:o.getRange(e,s).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,a)}},Is={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(v.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:i,startColumn:a}=t.primary;e=o.getRange(i,a).getFontStyle()===r.FontItalic.ITALIC}const s={style:{type:"it",value:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(K.id,s)}},Rs={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(v.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!o.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const s={style:{type:"ul",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}},Ms={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(v.SelectionManagerService).getLast();if(!t)return!1;const o=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!o.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const s={style:{type:"st",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(K.id,s)}};r.CommandType.COMMAND;const ws={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(K.id,e)}},ps={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(K.id,e)}},jn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(r.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(K.id,e)}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(r.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(K.id,o)}},Fn={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(r.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(K.id,e)}},Hn={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(r.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(K.id,o)}},$n={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(K.id,e)}},Gn={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(K.id,e)}},zn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(K.id,e)}},qn={type:r.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:r.BooleanNumber.TRUE},e=n.get(r.ICommandService),s={style:{type:"tr",value:o}};return e.executeCommand(K.id,s)}},ys=(n,t)=>{const i=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(t),color:i}},He={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},xn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=s.getCurrentUniverSheetInstance().getUnitId(),a=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(i);if(!u||!u.getSheetBySheetId(a))return!1;const l={color:t.value,unitId:i,subUnitId:a},c=ys(n,l);return o.syncExecuteCommand(He.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:He.id,params:c}],redoMutations:[{id:He.id,params:l}]}),!0):!1}},$e={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,s]of e)if(s.getSheetId()===t.subUnitId)return o.setActiveSheet(s),!0;return!1}},Us=4,Nt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{var u,d;const e=n.get(r.ICommandService),s=n.get(r.IUniverInstanceService);let i=s.getCurrentUniverSheetInstance().getUnitId(),a=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(i=(u=t.unitId)!=null?u:i,a=(d=t.subUnitId)!=null?d:a),new Promise(l=>{setTimeout(()=>{const c=e.syncExecuteCommand($e.id,{unitId:i,subUnitId:a},o);l(c)},Us)})}},Ot=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("universheet is null error!");const i={},a=s.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const l=u[d];for(let c=l.startColumn;c<l.endColumn+1;c++){const m=a.getColumnOrCreate(c);i[c]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:i}},me={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().defaultColumnWidth,a=s.getColumnManager(),u=t.ranges;for(let l=0;l<u.length;l++){const c=u[l];for(let m=c.startColumn;m<c.endColumn+1;m++){const g=a.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-c.startColumn])!=null?d:i}}return!0}},At={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(v.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=n.get(r.ICommandService),i=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),d=u.getActiveSheet(),l=u.getUnitId(),c=d.getSheetId(),{anchorCol:m,deltaX:g}=t,h=d.getColumnWidth(m)+g,C=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,f=e.filter(U=>U.range.rangeType===r.RANGE_TYPE.COLUMN),R=C?r.RANGE_TYPE.ALL:f.some(({range:U})=>{const{startColumn:b,endColumn:N}=U;return b<=m&&m<=N})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let w;if(R===r.RANGE_TYPE.ALL){const U=d.getRowCount(),b=new Array(d.getColumnCount()).fill(void 0).map((N,L)=>({startRow:0,endRow:U-1,startColumn:L,endColumn:L}));w={subUnitId:c,unitId:l,colWidth:h,ranges:b}}else R===r.RANGE_TYPE.COLUMN?w={subUnitId:c,unitId:l,ranges:f.map(U=>r.Rectangle.clone(U.range)),colWidth:h}:w={subUnitId:c,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:d.getMaxRows()-1,startColumn:m,endColumn:m}]};const I=Ot(n,w),M=s.syncExecuteCommand(me.id,w),{undos:p,redos:E}=n.get(v.SheetInterceptorService).onCommandExecute({id:At.id,params:w}),_=r.sequenceExecute([...E],s);return M&&_.result&&i.pushUndoRedo({unitID:l,undoMutations:[{id:me.id,params:I},...p],redoMutations:[{id:me.id,params:w},...E]}),!0}},Pt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(v.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),i=n.get(r.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const u=i.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:i.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:a,colWidth:t.value},c=Ot(n,l),m=e.syncExecuteCommand(me.id,l),{undos:g,redos:S}=n.get(v.SheetInterceptorService).onCommandExecute({id:Pt.id,params:l}),h=r.sequenceExecute([...S],e);return m&&h.result?(s.pushUndoRedo({unitID:u,undoMutations:[{id:me.id,params:c},...g],redoMutations:[{id:me.id,params:l},...S]}),!0):!1}},Yn=(n,t)=>{const e=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Re={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Kn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{var f;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(r.ErrorService),a=s.getCurrentUniverSheetInstance().getUnitId();let u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(a);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||l.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const m={unitId:a,subUnitId:u,hidden:r.BooleanNumber.TRUE},g=Yn(n,m);return d.getSheets().filter(R=>R.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(i.emit("No visible sheet after you hide this."),!1):o.syncExecuteCommand(Re.id,m)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Re.id,params:g}],redoMutations:[{id:Re.id,params:m}]}),!0):!1}},_s=(n,t)=>{const e=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},it={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},kt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=n.get(v.SheetInterceptorService),a=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),d={subUnitId:t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:a},l=_s(n,d),c=i.onCommandExecute({id:kt.id,params:t}),m=[{id:it.id,params:d},...c.redos],g=[...c.undos,{id:it.id,params:l}];return await r.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:a,undoMutations:g,redoMutations:m}),!0):!1}},bs=(n,t)=>({...r.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ge={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.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}},Jn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),a=t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(i);if(!u||!u.getSheetBySheetId(a))return!1;const c={fromOrder:u.getConfig().sheetOrder.indexOf(a),toOrder:t.order,unitId:i,subUnitId:a},m=bs(n,c);return o.syncExecuteCommand(Ge.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ge.id,params:m}],redoMutations:[{id:Ge.id,params:c}]}),!0):!1}},Ts=2e3,Xn=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=a==null?void 0:a.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<m+1;g++){const S=l.getRowOrCreate(g);d[g]=S.h}return{unitId:o,subUnitId:e,ranges:s,rowHeight:d}},Bt=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<=m;g++){const S=l.getRowOrCreate(g);d[g]=S.ia}return{unitId:o,subUnitId:e,ranges:s,autoHeightInfo:d}},Es=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=a==null?void 0:a.getSheetBySheetId(e),d=[],l=u.getRowManager();for(const c of s){const{row:m}=c,{ah:g}=l.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},ge={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:s,rowHeight:i}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=d.getConfig().defaultRowHeight,c=d.getRowManager();for(const{startRow:g,endRow:S}of s)for(let h=g;h<=S;h++){const C=c.getRowOrCreate(h);typeof i=="number"?C.h=i:C.h=(m=i[h])!=null?m:l,C.h=Math.min(Ts,C.h)}return!0}},ne={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:s,autoHeightInfo:i}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=void 0,c=d.getRowManager();for(const{startRow:g,endRow:S}of s)for(let h=g;h<=S;h++){const C=c.getRowOrCreate(h);typeof i=="number"?C.ia=i:C.ia=(m=i[h-g])!=null?m:l}return!0}},Lt={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=a==null?void 0:a.getSheetBySheetId(e);if(!u||!a)return!1;const d=u.getRowManager();for(const{row:l,autoHeight:c}of s){const m=d.getRowOrCreate(l);m.ah=c}return!0}},Zn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(v.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const i=n.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),a=i.getActiveSheet(),u=i.getUnitId(),d=a.getSheetId(),{anchorRow:l,deltaY:c}=t,g=a.getRowHeight(l)+c,S=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,h=e.filter(_=>_.range.rangeType===r.RANGE_TYPE.ROW),C=S?r.RANGE_TYPE.ALL:h.some(({range:_})=>{const{startRow:U,endRow:b}=_;return U<=l&&l<=b})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let f;if(C===r.RANGE_TYPE.ALL){const _=a.getRowCount(),U=new Array(a.getColumnCount()).fill(void 0).map((b,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:_-1}));f={subUnitId:d,unitId:u,rowHeight:g,ranges:U}}else C===r.RANGE_TYPE.ROW?f={subUnitId:d,unitId:u,ranges:h.map(_=>r.Rectangle.clone(_.range)),rowHeight:g}:f={subUnitId:d,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:a.getMaxColumns()-1}]};const R=Xn(n,f),w={unitId:u,subUnitId:d,ranges:f.ranges,autoHeightInfo:r.BooleanNumber.FALSE},I=Bt(n,w),M=n.get(r.ICommandService),p=n.get(r.IUndoRedoService);return r.sequenceExecute([{id:ge.id,params:f},{id:ne.id,params:w}],M).result?(p.pushUndoRedo({unitID:u,undoMutations:[{id:ge.id,params:R},{id:ne.id,params:I}],redoMutations:[{id:ge.id,params:f},{id:ne.id,params:w}]}),!0):!1}},Qn={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(v.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),i=n.get(r.IUniverInstanceService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const u=i.getCurrentUniverSheetInstance(),d=u.getUnitId(),l=u.getActiveSheet().getSheetId(),c={subUnitId:l,unitId:d,ranges:a,rowHeight:t.value},m=Xn(n,c),g={unitId:d,subUnitId:l,ranges:c.ranges,autoHeightInfo:r.BooleanNumber.FALSE},S=Bt(n,g);return r.sequenceExecute([{id:ge.id,params:c},{id:ne.id,params:g}],e).result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:ge.id,params:m},{id:ne.id,params:S}],redoMutations:[{id:ge.id,params:c},{id:ne.id,params:g}]}),!0):!1}},Vt={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(v.SelectionManagerService),i=n.get(r.IUniverInstanceService),a=i.getCurrentUniverSheetInstance().getUnitId(),u=i.getCurrentUniverSheetInstance().getActiveSheet(),d=u.getSheetId(),{anchorRow:l}=t!=null?t:{},c=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:u.getMaxColumns()-1}]:s.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={unitId:a,subUnitId:d,ranges:c,autoHeightInfo:r.BooleanNumber.TRUE},g=Bt(n,m),S=o.syncExecuteCommand(ne.id,m),{undos:h,redos:C}=n.get(v.SheetInterceptorService).onCommandExecute({id:Vt.id,params:m}),f=r.sequenceExecute([...C],o);return S&&f.result?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ne.id,params:g},...h],redoMutations:[{id:ne.id,params:m},...C]}),!0):!1}},eo={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{var C;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),i=s.getCurrentUniverSheetInstance().getUnitId();let a=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(a=(C=t.value)!=null?C:a);const u=s.getUniverSheetInstance(i);if(!u)return!1;const d=u.getSheetBySheetId(a);if(!d||d.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const c={unitId:i,subUnitId:a,hidden:r.BooleanNumber.FALSE},m=Yn(n,c),g=o.syncExecuteCommand(Re.id,c),S={unitId:i,subUnitId:a},h=o.syncExecuteCommand($e.id,S);return g&&h?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Re.id,params:m}],redoMutations:[{id:Re.id,params:c}]}),!0):!1}},to=n=>{const t=new r.ObjectMatrix;return n.forEach(o=>{r.Range.foreach(o,(e,s)=>{t.setValue(e,s,1)})}),t.forValue((o,e)=>{const s=t.getValue(o-1,e);s&&t.setValue(o,e,s+1)}),t},no=n=>{const t=n;return t.forValue((o,e)=>{const s=n.getValue(o-1,e);s&&t.setValue(o,e,s+1)}),t},oo=n=>{const t={area:0},o=(e,s)=>t.area<e?(t.area=e,t.range=s,!0):!1;return n.forValue((e,s,i)=>{let a=1,u=i;o(a*u,{startRow:e-u+1,endRow:e,startColumn:s,endColumn:s});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:s};for(let l=s-1;l>=0&&n.getValue(e,l);l--){u=Math.min(n.getValue(e,l)||0,u),a++;const c=u*a;d.startColumn=l,d.startRow=e-u+1,o(c,d)}}),t},Ds=(n,t)=>(r.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let s=o+1,i=n.getValue(s,e)||0;for(;i>1;)n.setValue(s,e,i-1),s+=1,i=n.getValue(s,e)||0}),n),jt=n=>{const t=[];let o=oo(n);for(;o.area>0;)o.range&&(t.push(o.range),Ds(n,o.range)),o=oo(n);return t},Wt=n=>{const t=to(n);return jt(t)};class Ns{constructor(){V(this,"_matrix",new r.ObjectMatrix)}add(...t){return t.forEach(o=>{r.Range.foreach(o,(e,s)=>{this._matrix.setValue(e,s,1)})}),this}subtract(...t){return t.forEach(o=>{r.Range.foreach(o,(e,s)=>{this._matrix.realDeleteValue(e,s)})}),this}merge(){const t=no(this._matrix);return jt(t)}}const Os=(n,t,o="")=>n.reduce((e,s)=>{const i=s&&s[t];return typeof i!="string"?(console.warn(s,`${t} is not string`),e):(i?(e[i]||(e[i]=[]),e[i].push(s)):e[o].push(s),e)},{}),As=(n=0)=>{let t=n;return function(){return t++}},Ue=j.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,Ue);const Ps=(n,t)=>{const o=n.get(Ue),{values:e,unitId:s,subUnitId:i}=t,a=[],u=[],d=o.getModel(s,i)||void 0;Object.keys(e).forEach(c=>{e[c].ranges.forEach(g=>{r.Range.foreach(g,(S,h)=>{const C=o.getValue(s,i,S,h,d);C?a.push({pattern:C.pattern,type:C.type,row:S,col:h}):u.push({startColumn:h,endColumn:h,startRow:S,endRow:S})})})});const l=[];if(a.length){const c=ut(s,i,a);Object.keys(c.values).forEach(m=>{const g=c.values[m];g.ranges=Wt(g.ranges)}),l.push({id:at.id,params:ut(s,i,a)})}return u.length&&l.push({id:Ft.id,params:{unitId:s,subUnitId:i,ranges:u}}),l},at={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,s=n.get(Ue),i=t.unitId,a=t.subUnitId,u=Object.keys(o).reduce((d,l)=>{const c=e[l],m=o[l].ranges;return c&&d.push({...c,ranges:m}),d},[]);return s.setValues(i,a,u),!0}},Ft={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:s}=t;return n.get(Ue).deleteValues(o,e,s),!0}},ks=(n,t)=>{const o=n.get(Ue),{ranges:e,unitId:s,subUnitId:i}=t,a=[],u=o.getModel(s,i)||void 0;if(e.forEach(l=>{r.Range.foreach(l,(c,m)=>{const g=o.getValue(s,i,c,m,u);g&&a.push({pattern:g.pattern,type:g.type,row:c,col:m})})}),!a.length)return[];const d=ut(s,i,a);return Object.keys(d.values).forEach(l=>{const c=d.values[l];c.ranges=Wt(c.ranges)}),[{id:at.id,params:d}]},ut=(n,t,o)=>{const e=Os(o,"pattern"),s={},i={},a=As();return Object.keys(e).forEach(u=>{const d=e[u],l=d[0],c=a();s[c]={pattern:u,type:l.type},d.forEach(m=>{i[c]||(i[c]={ranges:[]}),i[c].ranges.push(r.cellToRange(m.row,m.col))})}),{unitId:n,subUnitId:t,refMap:s,values:i}},so={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},ro={id:"sheet.command.insert-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return o.syncExecuteCommand(Q.SetDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Q.RemoveDefinedNameMutation.id,params:s}],redoMutations:[{id:Q.SetDefinedNameMutation.id,params:s}]}),!0):!1}},io={id:"sheet.command.remove-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return o.syncExecuteCommand(Q.RemoveDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Q.SetDefinedNameMutation.id,params:s}],redoMutations:[{id:Q.RemoveDefinedNameMutation.id,params:s}]}),!0):!1}},ao={id:"sheet.command.set-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);return t&&o.syncExecuteCommand(Q.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:Q.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:Q.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},uo={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},co="maxCellsPerSheet",Bs=3e6;var Ls=Object.defineProperty,Vs=Object.getOwnPropertyDescriptor,js=(n,t,o,e)=>{for(var s=e>1?void 0:e?Vs(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&Ls(t,o,s),s},lo=(n,t)=>(o,e)=>t(o,e,n);let dt=class extends r.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[W,Je,ft,Xe,ln,Qe,et,At,Zn,Mn,Rn,De,Se,tt,nt,fn,Cn,Ee,ve,wn,we,_t,Oe,Ze,We,Ut,Ne,st,fe,ot,Ce,bt,je,bn,F,Hn,Wn,Fn,Tn,Nn,Ae,En,Dn,An,Pe,ke,Pt,hs,kn,Ie,Gn,pe,G,Qn,Ln,Le,Be,On,Bn,Tt,Dt,K,xn,He,jn,qn,zn,$n,Nt,$e,me,Kn,Re,kt,it,Jn,Ge,Lt,ge,Vt,ne,eo,at,q,Ft,so,ro,io,ao,uo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(co,Bs)}};dt=js([r.OnLifecycle(r.LifecycleStages.Starting,dt),lo(0,r.ICommandService),lo(1,r.IConfigService)],dt);var Ws=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,t,o,e)=>{for(var s=e>1?void 0:e?Fs(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&Ws(t,o,s),s},$s=(n,t)=>(o,e)=>t(o,e,n);let ct=class extends r.Disposable{constructor(n){super(),this._commandService=n,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==Q.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o,unitOtherData:e}=t,s=Object.keys(o),i=[];return s.forEach(u=>{const d=o[u];if(d==null)return!0;Object.keys(d).forEach(c=>{const m=d[c];if(m==null)return!0;const g={subUnitId:c,unitId:u,cellValue:m};i.push({id:G.id,params:g})})}),i.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};ct=Hs([r.OnLifecycle(r.LifecycleStages.Ready,ct),$s(0,r.ICommandService)],ct);var Gs=Object.defineProperty,zs=Object.getOwnPropertyDescriptor,qs=(n,t,o,e)=>{for(var s=e>1?void 0:e?zs(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&Gs(t,o,s),s},lt=(n,t)=>(o,e)=>t(o,e,n);let mt=class extends r.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._currentUniverService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[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:s})})}};mt=qs([r.OnLifecycle(r.LifecycleStages.Ready,mt),lt(0,r.ICommandService),lt(1,Q.IFeatureCalculationManagerService),lt(2,r.IUniverInstanceService),lt(3,j.Inject(Q.FormulaDataModel))],mt);const P={MoveRangeCommandId:mn,InsertRowCommandId:Sn,InsertColCommandId:In,RemoveColCommandId:_n,RemoveRowCommandId:Un,DeleteRangeMoveLeftCommandId:gn,DeleteRangeMoveUpCommandId:hn,InsertRangeMoveDownCommandId:rs,InsertRangeMoveRightCommandId:vn,MoveColsCommandId:yn,MoveRowsCommandId:pn};var z=(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))(z||{}),xs=Object.defineProperty,Ys=Object.getOwnPropertyDescriptor,Ks=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ys(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&xs(t,o,s),s},Ht=(n,t)=>(o,e)=>t(o,e,n);const Js=r.createInterceptorKey("MERGE_REDO"),Xs=r.createInterceptorKey("MERGE_UNDO");v.RefRangeService=class extends r.Disposable{constructor(o,e,s){super();V(this,"interceptor",new r.InterceptorManager({MERGE_REDO:Js,MERGE_UNDO:Xs}));V(this,"_refRangeManagerMap",new Map);V(this,"_serializer",Zs());V(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=mo(this._univerInstanceService),i=go(this._univerInstanceService),d=((()=>{switch(o.id){case P.MoveColsCommandId:{const S=o.params,h=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],s,i)}case P.MoveRowsCommandId:{const S=o.params,h=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:h,endRow:e.getRowCount()-1}],s,i)}case P.MoveRangeCommandId:{const S=o;return this._checkRange([S.params.fromRange,S.params.toRange],s,i)}case P.InsertRowCommandId:{const C={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,i)}case P.InsertColCommandId:{const h=o.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,i)}case P.RemoveRowCommandId:{const C={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,i)}case P.RemoveColCommandId:{const h=o.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,i)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const h=o.params.range||ho(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([C],s,i)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const h=o.params.range||ho(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([C],s,i)}}})()||[]).reduce((S,h)=>{const C=h(o);return S.push(C),S},[]).reduce((S,h)=>{var C,f;return S.redos.push(...h.redos),S.undos.push(...h.undos),S.preRedos.push(...(C=h.preRedos)!=null?C:[]),S.preUndos.push(...(f=h.preUndos)!=null?f:[]),S},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:c,undos:g,preRedos:l,preUndos:m}}})});V(this,"_checkRange",(o,e,s)=>{const i=vo(e,s),a=this._refRangeManagerMap.get(i);if(a){const u=new Set;return[...a.keys()].forEach(l=>{const c=a.get(l),m=this._serializer.deserialize(l);o.some(g=>r.Rectangle.intersects(g,m))&&c&&c.forEach(g=>{u.add(g)})}),[...u]}return[]});V(this,"registerRefRange",(o,e,s,i)=>{const a=s||mo(this._univerInstanceService),u=i||go(this._univerInstanceService),d=vo(a,u),l=this._serializer.serialize(o);let c=this._refRangeManagerMap.get(d);c||(c=new Map,this._refRangeManagerMap.set(d,c));const m=c.get(l);return m?m.add(e):c.set(l,new Set([e])),r.toDisposable(()=>{const g=c.get(l);g&&(g.delete(e),g.size||(c.delete(l),c.size||this._refRangeManagerMap.delete(d)))})});this._sheetInterceptorService=o,this._univerInstanceService=e,this._selectionManagerService=s,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})}},v.RefRangeService=Ks([r.OnLifecycle(r.LifecycleStages.Steady,v.RefRangeService),Ht(0,j.Inject(v.SheetInterceptorService)),Ht(1,j.Inject(r.IUniverInstanceService)),Ht(2,j.Inject(v.SelectionManagerService))],v.RefRangeService);function mo(n){return n.getCurrentUniverSheetInstance().getUnitId()}function go(n){return n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function ho(n){return n.getSelectionRanges()||[]}function vo(n,t){return`${n}_${t}`}function Zs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((i,a,u)=>(i[String(u)]=a,i),{});return o.split(t).reduce((i,a,u)=>{const d=String(u);return a&&e[d]&&(i[e[d]]=a),i},{})},serialize:o=>n.reduce((e,s,i)=>{const a=o[s];return a!==void 0?`${e}${i>0?t:""}${a}`:`${e}`},"")}}const gt=Number.MAX_SAFE_INTEGER,de=n=>{const t={...n};return t.rangeType===r.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=gt),t.rangeType===r.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=gt),t.rangeType===r.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=gt,t.startRow=0,t.endRow=gt),t},he=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),$t=(n,t,o)=>{const e={...o},s={...t},i=(C,f)=>{const R=Math.max(C.start,f.start),w=Math.min(C.end,f.end);return w<R?null:{start:R,end:w}},a=C=>C.end-C.start+1,u=(C,f)=>({start:C.start-f.start,end:C.start-f.start+C.end-C.start}),d=(C,f)=>({start:f.start+C.start,end:f.start+C.start+C.end-C.start}),l=t.start>n.start;if(l){const C=Math.min(n.end,t.start)-n.start+1;s.start-=C,s.end-=C}const c=a(n),m=c,g=i(n,e),S=g&&a(g)>=a(e);if(n.end<e.start)e.start-=c,e.end-=c;else if(g){const C=a(g);if(S){const f=u(e,n),R=d(f,s);e.start=R.start,e.end=R.end}else g.start>n.start||l?e.end-=C:(e.start-=c,e.end-=c+C)}const h=i(s,e);if(s.start<=e.start&&!S)e.start+=m,e.end+=m;else if(h){const C=s.start;if(a(h)<=a(e))return{step:e.start-o.start,length:0};C<e.start?(e.start+=m,e.end+=m):C>=e.start&&C<=e.end&&(e.end+=m,e.start+=m)}return{step:e.start-o.start,length:a(e)-a(o)}},Gt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=de(o),i=de(e),a=de(t),u=$t({start:s.startRow,end:s.endRow},{start:i.startRow,end:i.endRow},{start:a.startRow,end:a.endRow});return u===null?[{type:z.Delete}]:[{type:z.VerticalMove,step:u.step||0,length:u.length||0}]},Qs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return null;const{startRow:s}=o,{startRow:i}=e,a=e.endRow-e.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,l)=>{u.setValue(d,l,1)}),u.moveRows(s,a,i),r.queryObjectMatrix(u,d=>d===1)},zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=de(o),i=de(e),a=de(t),u=$t({start:s.startColumn,end:s.endColumn},{start:i.startColumn,end:i.endColumn},{start:a.startColumn,end:a.endColumn});return u===null?[{type:z.Delete}]:[{type:z.HorizontalMove,step:u.step||0,length:u.length||0}]},er=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return null;const{startColumn:s}=o,{startColumn:i}=e,a=e.endColumn-e.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,l)=>{u.setValue(d,l,1)}),u.moveColumns(s,a,i),r.queryObjectMatrix(u,d=>d===1)},So=(n,t)=>{var i,a;const o=(i=n.params)==null?void 0:i.toRange,e=(a=n.params)==null?void 0:a.fromRange;if(!o||!e)return[];const s=[];if(r.Rectangle.contains(o,t)&&s.push({type:z.Delete}),r.Rectangle.contains(e,t)){s.push({type:z.Delete});const u=r.Rectangle.getRelativeRange(t,e),d=r.Rectangle.getPositionRange(u,o);return[{type:z.Set,range:d}]}return s},tr=(n,t)=>{var g,S;const o=(g=n.params)==null?void 0:g.toRange,e=(S=n.params)==null?void 0:S.fromRange;if(!o||!e||r.Rectangle.contains(o,t))return null;if(r.Rectangle.contains(e,t)){const h=r.Rectangle.getRelativeRange(t,e);return r.Rectangle.getPositionRange(h,o)}const s=new r.ObjectMatrix;r.Range.foreach(t,(h,C)=>{s.setValue(h,C,1)});const i=new r.ObjectMatrix,a=r.Rectangle.getIntersects(e,t);a&&r.Range.foreach(a,(h,C)=>{s.getValue(h,C)&&(s.setValue(h,C,void 0),i.setValue(h,C,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,l={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d},c=r.Rectangle.getIntersects(l,t);return c&&r.Range.foreach(c,(h,C)=>{const f=h+d,R=C+u;s.setValue(f,R,i.getValue(h,C))}),r.queryObjectMatrix(s,h=>h===1)},ze=(n,t)=>{const o=de(n),e=de(t),s=a=>a.endColumn-a.startColumn+1,i=a=>a.endRow-a.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const a=r.Rectangle.getIntersects(e,o);if(a)return{step:0,length:-s(a)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&i(o)>=i(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const a=r.Rectangle.getIntersects(e,o);if(a){const u=-s(a);return{step:-(s(o)-s(a)),length:u}}}if(e.startColumn>o.endColumn)return{step:-s(o),length:0}}return{step:0,length:0}},qt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],s=ze(o,t);if(!s)e.push({type:z.Delete});else{const{step:a,length:u}=s;e.push({type:z.HorizontalMove,step:a,length:u})}return e},xt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],s=ze(he(o),he(t));if(!s)e.push({type:z.Delete});else{const{step:a,length:u}=s;e.push({type:z.VerticalMove,step:a,length:u})}return e},qe=(n,t)=>{const o=de(n),e=de(t),s=i=>i.endColumn-i.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:s(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:s(o),length:0}}return{step:0,length:0}},Yt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=qe(he(o),he(t)),{step:i,length:a}=s;return e.push({type:z.VerticalMove,step:i,length:a}),e},Kt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=qe(o,t),{step:i,length:a}=s;return e.push({type:z.HorizontalMove,step:i,length:a}),e},Jt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=qe(he(o),he(t)),{step:i,length:a}=s;return e.push({type:z.VerticalMove,step:i,length:a}),e},Xt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=qe(o,t),{step:i,length:a}=s;return e.push({type:z.HorizontalMove,step:i,length:a}),e},Zt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],s=ze(o,t);if(!s)e.push({type:z.Delete});else{const{step:a,length:u}=s;e.push({type:z.HorizontalMove,step:a,length:u})}return e},Qt=(n,t)=>{var i;const o=(i=n.params)==null?void 0:i.range;if(!o)return[];const e=[],s=ze(he(o),he(t));if(!s)e.push({type:z.Delete});else{const{step:a,length:u}=s;e.push({type:z.VerticalMove,step:a,length:u})}return e},xe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case z.Delete:{o=null;break}case z.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case z.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case z.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},nr=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Zt(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Qt(t,n);break}case P.InsertColCommandId:{o=Kt(t,n);break}case P.InsertRangeMoveDownCommandId:{o=Jt(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Xt(t,n);break}case P.InsertRowCommandId:{o=Yt(t,n);break}case P.MoveColsCommandId:{o=zt(t,n);break}case P.MoveRangeCommandId:{o=So(t,n);break}case P.MoveRowsCommandId:{o=Gt(t,n);break}case P.RemoveColCommandId:{o=qt(t,n);break}case P.RemoveRowCommandId:{o=xt(t,n);break}}return xe(o,n)},or=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Zt(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Qt(t,n);break}case P.InsertRangeMoveDownCommandId:{o=Jt(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Xt(t,n);break}case P.InsertColCommandId:{o=Kt(t,n);break}case P.InsertRowCommandId:{o=Yt(t,n);break}case P.MoveColsCommandId:return er(t,n);case P.MoveRangeCommandId:return tr(t,n);case P.MoveRowsCommandId:return Qs(t,n);case P.RemoveColCommandId:{o=qt(t,n);break}case P.RemoveRowCommandId:{o=xt(t,n);break}}return xe(o,n)};var sr=Object.defineProperty,rr=Object.getOwnPropertyDescriptor,ir=(n,t,o,e)=>{for(var s=e>1?void 0:e?rr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&sr(t,o,s),s},Ve=(n,t)=>(o,e)=>t(o,e,n);const ar=[Se.id,ve.id,fe.id,Ce.id],ur=[Ne.id,Oe.id];function Co(n,t){let o=n;if(t!==void 0){const e=[];for(let s=0;s<o.length;s++){const{startRow:i,endRow:a,startColumn:u,endColumn:d}=o[s];if(t===r.Dimension.ROWS)for(let l=i;l<=a;l++){const c={startRow:l,endRow:l,startColumn:u,endColumn:d};e.push(c)}else if(t===r.Dimension.COLUMNS)for(let l=u;l<=d;l++){const c={startRow:i,endRow:a,startColumn:l,endColumn:l};e.push(c)}}o=e}return o}v.MergeCellController=class extends r.Disposable{constructor(o,e,s,i,a,u){super();V(this,"disposableCollection",new r.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=s,this._injector=i,this._sheetInterceptorService=a,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case Je.id:case Xe.id:{const s=o._univerInstanceService.getCurrentUniverSheetInstance(),i=s.getUnitId(),a=s.getActiveSheet(),u=a.getSheetId(),d=a.getConfig().mergeData,l=o._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>d.some(g=>r.Rectangle.intersects(g,m)))){const m={unitId:i,subUnitId:u,ranges:l},g=ee(o._injector,m),S=[{id:F.id,params:m}],h=[{id:W.id,params:g}];return{redos:S,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,s){switch(o.id){case P.MoveColsCommandId:{const i=o.params;return this._handleMoveColsCommand(i,e,s)}case P.MoveRowsCommandId:{const i=o.params;return this._handleMoveRowsCommand(i,e,s)}case Ee.id:{const i=o.params,a=i.unitId||e,u=i.subUnitId||s;return this._handleInsertRowCommand(i,a,u)}case De.id:{const i=o.params,a=i.unitId||e,u=i.subUnitId||s;return this._handleInsertColCommand(i,a,u)}case st.id:{const i=o.params;return this._handleRemoveColCommand(i,e,s)}case ot.id:{const i=o.params;return this._handleRemoveRowCommand(i,e,s)}case Ze.id:{const i=o.params;return this._handleMoveRangeCommand(i,e,s)}case nt.id:{const i=o.params;return this._handleInsertRangeMoveRightCommand(i,e,s)}case tt.id:{const i=o.params;return this._handleInsertRangeMoveDownCommand(i,e,s)}case et.id:{const i=o.params;return this._handleDeleteRangeMoveUpCommand(i,e,s)}case Qe.id:{const i=o.params;return this._handleDeleteRangeMoveLeftCommand(i,e,s)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(i,a)=>{const u=this._univerInstanceService.getUniverSheetInstance(i);if(!u)return;const d=u==null?void 0:u.getSheetBySheetId(a);if(!d)return;this.disposableCollection.dispose();const l=d.getMergeData(),c=m=>this.refRangeHandle(m,i,a);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,c,i,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(i=>{if(i.id===Nt.id){const a=i.params,u=a.subUnitId,d=a.unitId;if(!u||!d)return;o(d,u)}if(i.id===W.id){const a=i.params,u=a.subUnitId,d=a.unitId;if(!u||!d)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e.getActiveSheet();o(e.getUnitId(),s.getSheetId())}_handleMoveRowsCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=[...a.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=o,{startRow:m,endRow:g}=c;if(u.forEach(C=>{if(m<=C.startRow&&g>=C.endRow){d.ranges.push(C);const f=Gt({id:P.MoveRowsCommandId,params:o},C),R=xe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const S=ee(this._injector,d),h=ie(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:S}]}}_handleMoveColsCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=[...a.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=o,{startColumn:m,endColumn:g}=c;if(u.forEach(C=>{if(m<=C.startColumn&&g>=C.endColumn){d.ranges.push(C);const f=zt({id:P.MoveColsCommandId,params:o},C),R=xe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const S=ee(this._injector,d),h=ie(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:S}]}}_handleMoveRangeCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=a.getMergeData(),d=u.filter(h=>r.Rectangle.intersects(h,o.fromRange)),l=u.filter(h=>r.Rectangle.intersects(h,o.toRange)),c=d.map(h=>r.Rectangle.getRelativeRange(h,o.fromRange)).map(h=>r.Rectangle.getPositionRange(h,o.toRange)),m=Co(c).filter(h=>!u.some(C=>r.Rectangle.equals(h,C))),g=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:m}}],S=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:m}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:d}}];return{redos:g,undos:S}}_handleInsertRowCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const{range:u}=o,{startRow:d,endRow:l}=u,c=r.Tools.deepClone(a.getMergeData()).reduce((w,I)=>(d>I.startRow&&d<=I.endRow&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(a.getMergeData()).reduce((w,I)=>{if(d>I.startRow&&d<=I.endRow){const M=l-d+1;I.endRow+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:S}];return{redos:f,undos:R}}_handleInsertColCommand(o,e,s){const{range:i}=o,a=ae(this._univerInstanceService,e);if(!a)return this._handleNull();const u=ue(a,s);if(!u)return this._handleNull();const{startColumn:d,endColumn:l}=i,c=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>(d>I.startColumn&&d<=I.endColumn&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>{if(d>I.startColumn&&d<=I.endColumn){const M=l-d+1;I.endColumn+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:S}];return{redos:f,undos:R}}_handleRemoveColCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:l}=u,c=r.Tools.deepClone(a.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(u,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(a.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(u,p)){if(d<=p.startColumn&&l>=p.endColumn)return M;d>=p.startColumn&&l<=p.endColumn?p.endColumn-=l-d+1:d<p.startColumn?(p.startColumn=d,p.endColumn-=l-d+1):l>p.endColumn&&(p.endColumn=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:S}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleRemoveRowCommand(o,e,s){const{range:i}=o,a=ae(this._univerInstanceService,e);if(!a)return this._handleNull();const u=ue(a,s);if(!u)return this._handleNull();const{startRow:d,endRow:l}=i,c=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(i,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(i,p)){if(d<=p.startRow&&l>=p.endRow)return M;d>=p.startRow&&l<=p.endRow?p.endRow-=l-d+1:d<p.startRow?(p.startRow=d,p.endRow-=l-d+1):l>p.endRow&&(p.endRow=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:S}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=o.range,d=a.getMaxColumns()-1,l=a.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:S},{id:F.id,params:C}]}}_handleInsertRangeMoveDownCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=o.range,d=a.getMaxRows()-1,l=a.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:E}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const b=E-I+1;m.push({startRow:w.startRow+b,startColumn:w.startColumn,endRow:w.endRow+b,endColumn:w.endColumn})}});const g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:S},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=o.range,d=a.getMaxRows()-1,l=a.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:E}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const b=E-I+1,N=r.Rectangle.moveVertical(w,-b);m.push(N)}});const g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:S},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(o,e,s){const i=ae(this._univerInstanceService,e);if(!i)return this._handleNull();const a=ue(i,s);if(!a)return this._handleNull();const u=o.range,d=a.getMaxColumns()-1,l=a.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:s,ranges:c},S=ee(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ie(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:S},{id:F.id,params:C}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(ur.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const s=e.getSheetBySheetId(o.params.subUnitId);if(!s)return;const{sourceRange:i,targetRange:a}=o.params,u=i.startColumn===a.startColumn&&i.endColumn===a.endColumn,d=u?i.endRow-i.startRow+1:i.endColumn-i.startColumn+1,l=u?i.startRow:i.startColumn,c=u?a.startRow:a.startColumn,m=s.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p}=f;r.Rectangle.intersects(f,i)||(u?l<R&&c>w?(R-=d,w-=d):l>w&&c<=R&&(R+=d,w+=d):l<I&&c>M?(I-=d,M-=d):l>M&&c<=I&&(I+=d,M+=d)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p})}),s.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:h}=o.params,C=f=>this.refRangeHandle(f,S,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,C,S,h))})}if(ar.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const s=e.getSheetBySheetId(o.params.subUnitId);if(!s)return;const i=s.getConfig().mergeData,a=o.params;if(!a)return;const{range:u}=a,d=o.id.includes("row"),l=o.id.includes("insert"),c=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-c+1,S=[];i.forEach(R=>{let{startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:E}=R;l?d?c<=w&&(w+=g,I+=g):c<=M&&(M+=g,p+=g):d?m<w&&(w-=g,I-=g):m<M&&(M-=g,p-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||S.push({startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:E})}),s.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:h,subUnitId:C}=o.params,f=R=>this.refRangeHandle(R,h,C);S.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,C))})}}))}},v.MergeCellController=ir([r.OnLifecycle(r.LifecycleStages.Steady,v.MergeCellController),Ve(0,j.Inject(r.ICommandService)),Ve(1,j.Inject(v.RefRangeService)),Ve(2,j.Inject(r.IUniverInstanceService)),Ve(3,j.Inject(j.Injector)),Ve(4,j.Inject(v.SheetInterceptorService)),Ve(5,j.Inject(v.SelectionManagerService))],v.MergeCellController);function ae(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUniverSheetInstance()}function ue(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const dr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},fo={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var cr=Object.defineProperty,lr=Object.getOwnPropertyDescriptor,mr=(n,t,o,e)=>{for(var s=e>1?void 0:e?lr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&cr(t,o,s),s},ht=(n,t)=>(o,e)=>t(o,e,n);const Io="SHEET_NUMFMT_PLUGIN",gr=24*60*60*1e3;v.NumfmtService=class extends r.Disposable{constructor(o,e,s,i){super();V(this,"_numfmtModel",new Map);V(this,"_refAliasModel",new Map);V(this,"_modelReplace$",new be.Subject);V(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=o,this._resourceManagerService=e,this._univerInstanceService=s,this._logService=i,this._initModel(),this.disposeWithMe(r.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const o=s=>{const i=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(i,Io,{toJson:a=>this._toJson(a),parseJson:a=>this._parseJson(a),onChange:(a,u)=>{const{model:d,refModel:l}=u;if(d){const c=Object.keys(d).reduce((m,g)=>(m.set(g,new r.ObjectMatrix(d[g])),m),new Map);this._numfmtModel.set(a,c)}l&&this._refAliasModel.set(a,new r.RefAlias(l,["pattern","i"])),this._modelReplace$.next(a)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const i=s.getUnitId();this._numfmtModel.get(i)&&this._numfmtModel.delete(i),this._refAliasModel.get(i)&&this._refAliasModel.delete(i),this._resourceManagerService.disposePluginResource(i,Io)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(s=>o(s))}_toJson(o){const e=this._numfmtModel.get(o),s=this._refAliasModel.get(o);if(!e||!s)return"";const i=[...e.keys()].reduce((d,l)=>{const c=e.get(l);return d[l]=c.toJSON(),d},{}),a=s.getValues().filter(d=>d.count>0);return JSON.stringify({model:i,refModel:a})}_parseJson(o){try{return JSON.parse(o)}catch{return{model:{},refModel:[]}}}_setValue(o,e,s,i,a){let u=this.getModel(o,e);if(!u){const d=this._numfmtModel.get(o)||new Map,l=d.get(e)||new r.ObjectMatrix;d.set(e,l),this._numfmtModel.set(o,d),u=l}if(a)u.setValue(s,i,a);else if(u.realDeleteValue(s,i),!u.getSizeOf()){const l=this._numfmtModel.get(o);l==null||l.delete(e)}}_getUniqueRefId(o){const e=this._refAliasModel.get(o);if(!e)return"0";const s=e.getKeyMap("i");return`${Math.max(...s.map(a=>Number(a||0)),0)+1}`}getValue(o,e,s,i,a){const u=a||this.getModel(o,e);if(!u)return null;const d=this._refAliasModel.get(o),l=u.getValue(s,i);if(l&&d){const c=d.getValue(l==null?void 0:l.i,["i"]);return c?{pattern:c.pattern,type:c.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(o,e,s){let i=this._refAliasModel.get(o);const a=this.getModel(o,e);i||(i=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,i)),s.forEach(u=>{r.Range.foreach(u,(d,l)=>{const c=this.getValue(o,e,d,l,a);if(c&&c.pattern){const m=i.getValue(c.pattern,["pattern"]);m&&m.count--}this._setValue(o,e,d,l,null)})})}setValues(o,e,s){const i=this.getModel(o,e);let a=this._refAliasModel.get(o);a||(a=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(o,a)),s.forEach(u=>{let d=a.getValue(u.pattern,["pattern"]);d||(d={count:0,i:this._getUniqueRefId(o),pattern:u.pattern,type:s[0].type},a.addValue(d)),u.ranges.forEach(l=>{r.Range.foreach(l,(c,m)=>{if(i){const g=this.getValue(o,e,c,m,i);if(g&&g.pattern){const S=a.getValue(g.pattern,["pattern"]);S&&S.count--}}this._setValue(o,e,c,m,{i:d.i}),d.count++})})})}getModel(o,e){const s=this._numfmtModel.get(o);return s==null?void 0:s.get(e)}getRefModel(o){return this._refAliasModel.get(o)}serialTimeToTimestamp(o,e=!0){const s=new Date("1900-01-01").getTime();return(o-(e?25569:24107))*gr+s}},v.NumfmtService=mr([ht(0,j.Inject(r.ICommandService)),ht(1,j.Inject(r.IResourceManagerService)),ht(2,j.Inject(r.IUniverInstanceService)),ht(3,j.Inject(r.ILogService))],v.NumfmtService);const Ro="univer.sheet.editable";class _e extends r.PermissionPoint{constructor(o,e){super();V(this,"id",Ro);V(this,"value",!0);V(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${Ro}_${o}_${e}`}}var hr=Object.defineProperty,vr=Object.getOwnPropertyDescriptor,Sr=(n,t,o,e)=>{for(var s=e>1?void 0:e?vr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&hr(t,o,s),s},en=(n,t)=>(o,e)=>t(o,e,n);v.SheetPermissionService=class extends r.Disposable{constructor(t,o,e){super(),this._permissionService=t,this._univerInstanceService=o,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),o=t.getUnitId();t.getSheets().forEach(e=>{const s=e.getSheetId(),i=new _e(o,s);this._permissionService.addPermissionPoint(t.getUnitId(),i)}),this.disposeWithMe(r.toDisposable(t.sheetCreated$.subscribe(e=>{const s=e.getSheetId(),i=new _e(o,s);this._permissionService.addPermissionPoint(t.getUnitId(),i)}))),this.disposeWithMe(r.toDisposable(t.sheetDisposed$.subscribe(e=>{const s=e.getSheetId(),i=new _e(o,s);this._permissionService.deletePermissionPoint(t.getUnitId(),i.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(Te.PERMISSION,{priority:99,handler:(t,o,e)=>{const s=this._univerInstanceService.getCurrentUniverSheetInstance(),i=s==null?void 0:s.getActiveSheet(),a=s==null?void 0:s.getUnitId(),u=i==null?void 0:i.getSheetId();if(!a||!u)return!1;switch(o.id){case pe.id:return this.getSheetEditable(a,u)}return e()}}))}getEditable$(t,o){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),i=e.getActiveSheet(),a=o||i.getSheetId(),u=new _e(s,a);return this._permissionService.composePermission$(s,[r.UniverEditablePermissionPoint,u.id]).pipe(Eo.map(([d,l])=>{const c=d.value&&l.value,m=r.getTypeFromPermissionItemList([d,l]);return{value:c,status:m}}))}getSheetEditable(t,o){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),i=e.getActiveSheet(),a=o||i.getSheetId(),u=new _e(s,a);return this._permissionService.composePermission(s,[r.UniverEditablePermissionPoint,u.id]).every(d=>d.value)}setSheetEditable(t,o,e){const s=this._univerInstanceService.getCurrentUniverSheetInstance(),i=o||s.getUnitId(),a=s.getActiveSheet(),u=e||a.getSheetId(),d=new _e(i,u);this._permissionService.updatePermissionPoint(i,d.id,t)}},v.SheetPermissionService=Sr([r.OnLifecycle(r.LifecycleStages.Ready,v.SheetPermissionService),en(0,j.Inject(r.IPermissionService)),en(1,j.Inject(r.IUniverInstanceService)),en(2,j.Inject(v.SheetInterceptorService))],v.SheetPermissionService);function Cr(n){const t=n.get(r.IUniverInstanceService),o=n.get(v.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),s=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new be.Observable(i=>{var u;const a=(u=o.getEditable$(e,s))==null?void 0:u.subscribe(d=>{i.next(!d.value)});return()=>{a==null||a.unsubscribe()}})}var fr=Object.defineProperty,Ir=Object.getOwnPropertyDescriptor,Rr=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ir(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&fr(t,o,s),s},vt=(n,t)=>(o,e)=>t(o,e,n);const Mo="SHEET_DEFINED_NAME_PLUGIN";let St=class extends r.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=s=>{const i=this._definedNamesService.getDefinedNameMap(s);return i?JSON.stringify(i):""},t=s=>{if(!s)return{};try{return JSON.parse(s)}catch{return{}}},o=s=>{const i=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(i,Mo,{toJson:a=>n(a),parseJson:a=>t(a),onChange:(a,u)=>{this._definedNamesService.registerDefinedNames(a,u)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(o))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const i=s.getUnitId();this._resourceManagerService.disposePluginResource(i,Mo)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();o(e)}};St=Rr([r.OnLifecycle(r.LifecycleStages.Ready,St),vt(0,r.ICommandService),vt(1,r.IUniverInstanceService),vt(2,Q.IDefinedNamesService),vt(3,r.IResourceManagerService)],St);var Mr=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,pr=(n,t,o,e)=>{for(var s=e>1?void 0:e?wr(t,o):t,i=n.length-1,a;i>=0;i--)(a=n[i])&&(s=(e?a(t,o,s):a(s))||s);return e&&s&&Mr(t,o,s),s},tn=(n,t)=>(o,e)=>t(o,e,n);const yr="sheet";v.UniverSheetsPlugin=(nn=class extends r.Plugin{constructor(t,o,e,s){super(yr),this._config=t,this._commandService=o,this._localeService=e,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:fo})}_initializeDependencies(t){var e;const o=[[ye],[v.SelectionManagerService],[v.RefRangeService],[v.SheetPermissionService],[Ue,{useClass:v.NumfmtService}],[v.SheetInterceptorService],[dt],[v.MergeCellController],[St]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ct],[mt]),o.forEach(s=>{t.add(s)})}},V(nn,"type",r.PluginType.Sheet),nn),v.UniverSheetsPlugin=pr([tn(1,r.ICommandService),tn(2,j.Inject(r.LocaleService)),tn(3,j.Inject(j.Injector))],v.UniverSheetsPlugin);const Ur=[ge.id,ne.id,Lt.id,me.id,$e.id,Ne.id,Oe.id,Pe.id,ke.id,Le.id,Be.id,Se.id,ve.id,fe.id,Ce.id],_r=[G.id,We.id,F.id,W.id],br=1.5,Tr="rgba(255,255,255, 0.01)";function Er(n){const t=n.getCurrentTheme(),o=new r.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 Dr(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,s={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(s.primary=wo(o)),s}function wo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s}=n,{startRow:i,startColumn:a,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s,startRow:i,startColumn:a,endRow:u,endColumn:d}}function Nr(n,t,o){const e=Do.getCellInfoInMergeData(n,t,o),s=r.makeCellRangeToRangeData(e);if(s)return{range:s,primary:e,style:null}}const Or=(n,t,o)=>{const s=n.get(v.SelectionManagerService).getSelections(),{value:i,selections:a,unitId:u,subUnitId:d}=t;if(s){const c=s[(s==null?void 0:s.length)-1].primary;if(c){const{actualColumn:m,actualRow:g}=c;let{startRow:S,startColumn:h,endRow:C,endColumn:f}=a[a.length-1];if(i===r.Dimension.COLUMNS){const M=o.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);M&&(f=M.endColumn,S=M.startRow,C=M.endRow)}else if(i===r.Dimension.ROWS){const M=o.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);M&&(C=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:S,startColumn:h,endRow:C,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:S===g&&h===m},w=s.map((M,p,E)=>({range:M.range,style:null,primary:p===E.length-1?R:null})),I={unitId:u,subUnitId:d,pluginName:x,selections:w};return{id:q.id,params:I}}return null}return null},Ar=(n,t)=>{const e=n.get(v.SelectionManagerService).getSelections(),{unitId:s,subUnitId:i}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:s,subUnitId:i,pluginName:x,selections:[...e]};return{id:q.id,params:d}}return null};v.AddMergeRedoSelectionsOperationFactory=Or,v.AddMergeUndoMutationFactory=ie,v.AddMergeUndoSelectionsOperationFactory=Ar,v.AddWorksheetMergeMutation=W,v.BorderStyleManagerService=ye,v.COMMAND_LISTENER_SKELETON_CHANGE=Ur,v.COMMAND_LISTENER_VALUE_CHANGE=_r,v.ClearSelectionAllCommand=Je,v.ClearSelectionContentCommand=ft,v.ClearSelectionFormatCommand=Xe,v.CopySheetCommand=ln,v.DeleteRangeMoveLeftCommand=Qe,v.DeleteRangeMoveUpCommand=et,v.DeltaColumnWidthCommand=At,v.DeltaRowHeightCommand=Zn,v.EffectRefRangId=P,v.EmptyMutation=so,v.INTERCEPTOR_POINT=Te,v.INumfmtService=Ue,v.InsertColAfterCommand=Mn,v.InsertColBeforeCommand=Rn,v.InsertColCommand=De,v.InsertColMutation=Se,v.InsertColMutationUndoFactory=yt,v.InsertDefinedNameCommand=ro,v.InsertRangeMoveDownCommand=tt,v.InsertRangeMoveRightCommand=nt,v.InsertRowAfterCommand=fn,v.InsertRowBeforeCommand=Cn,v.InsertRowCommand=Ee,v.InsertRowMutation=ve,v.InsertRowMutationUndoFactory=pt,v.InsertSheetCommand=wn,v.InsertSheetMutation=we,v.InsertSheetUndoMutationFactory=It,v.MAX_CELL_PER_SHEET_KEY=co,v.MoveColsCommand=_t,v.MoveColsMutation=Oe,v.MoveRangeCommand=Ze,v.MoveRangeMutation=We,v.MoveRowsCommand=Ut,v.MoveRowsMutation=Ne,v.NORMAL_SELECTION_PLUGIN_NAME=x,v.OperatorType=z,v.RangeMergeUtil=Ns,v.RemoveColCommand=st,v.RemoveColMutation=fe,v.RemoveDefinedNameCommand=io,v.RemoveMergeUndoMutationFactory=ee,v.RemoveNumfmtMutation=Ft,v.RemoveRowCommand=ot,v.RemoveRowMutation=Ce,v.RemoveSheetCommand=bt,v.RemoveSheetMutation=je,v.RemoveSheetUndoMutationFactory=cn,v.RemoveWorksheetMergeCommand=bn,v.RemoveWorksheetMergeMutation=F,v.ResetBackgroundColorCommand=Hn,v.ResetTextColorCommand=Wn,v.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Tr,v.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=br,v.ScrollToCellOperation=uo,v.SelectionMoveType=sn,v.SetBackgroundColorCommand=Fn,v.SetBoldCommand=fs,v.SetBorderBasicCommand=Tn,v.SetBorderColorCommand=Nn,v.SetBorderCommand=Ae,v.SetBorderPositionCommand=En,v.SetBorderStyleCommand=Dn,v.SetColHiddenCommand=An,v.SetColHiddenMutation=Pe,v.SetColVisibleMutation=ke,v.SetColWidthCommand=Pt,v.SetDefinedNameCommand=ao,v.SetFontFamilyCommand=ws,v.SetFontSizeCommand=ps,v.SetFrozenCommand=kn,v.SetFrozenMutation=Ie,v.SetFrozenMutationFactory=Et,v.SetHorizontalTextAlignCommand=Gn,v.SetItalicCommand=Is,v.SetNumfmtMutation=at,v.SetRangeValuesCommand=pe,v.SetRangeValuesMutation=G,v.SetRangeValuesUndoMutationFactory=ce,v.SetRowHeightCommand=Qn,v.SetRowHiddenCommand=Ln,v.SetRowHiddenMutation=Le,v.SetRowVisibleMutation=Be,v.SetSelectedColsVisibleCommand=On,v.SetSelectedRowsVisibleCommand=Bn,v.SetSelectionsOperation=q,v.SetSpecificColsVisibleCommand=Tt,v.SetSpecificRowsVisibleCommand=Dt,v.SetStrikeThroughCommand=Ms,v.SetStyleCommand=K,v.SetTabColorCommand=xn,v.SetTabColorMutation=He,v.SetTextColorCommand=jn,v.SetTextRotationCommand=qn,v.SetTextWrapCommand=zn,v.SetUnderlineCommand=Rs,v.SetVerticalTextAlignCommand=$n,v.SetWorksheetActivateCommand=Nt,v.SetWorksheetActiveOperation=$e,v.SetWorksheetColWidthMutation=me,v.SetWorksheetColWidthMutationFactory=Ot,v.SetWorksheetHideCommand=Kn,v.SetWorksheetHideMutation=Re,v.SetWorksheetNameCommand=kt,v.SetWorksheetNameMutation=it,v.SetWorksheetOrderCommand=Jn,v.SetWorksheetOrderMutation=Ge,v.SetWorksheetRowAutoHeightMutation=Lt,v.SetWorksheetRowAutoHeightMutationFactory=Es,v.SetWorksheetRowHeightMutation=ge,v.SetWorksheetRowIsAutoHeightCommand=Vt,v.SetWorksheetRowIsAutoHeightMutation=ne,v.SetWorksheetShowCommand=eo,v.SheetEditablePermission=_e,v.alignToMergedCellsBorders=Fe,v.convertPrimaryWithCoordToPrimary=wo,v.convertSelectionDataToRange=Dr,v.createTopMatrixFromMatrix=no,v.createTopMatrixFromRanges=to,v.enUS=dr,v.factoryRemoveNumfmtUndoMutation=ks,v.factorySetNumfmtUndoMutation=Ps,v.findAllRectangle=jt,v.followSelectionOperation=le,v.getAddMergeMutationRangeByType=Co,v.getCellAtRowCol=Zo,v.getCurrentSheetDisabled$=Cr,v.getInsertRangeMutations=Mt,v.getNormalSelectionStyle=Er,v.getPrimaryForRange=X,v.getRemoveRangeMutations=wt,v.handleBaseInsertRange=qe,v.handleBaseMoveRowsCols=$t,v.handleBaseRemoveRange=ze,v.handleDefaultRangeChangeWithEffectRefCommands=nr,v.handleDeleteRangeMoveLeft=Zt,v.handleDeleteRangeMoveUp=Qt,v.handleDeleteRangeMutation=ts,v.handleIRemoveCol=qt,v.handleIRemoveRow=xt,v.handleInsertCol=Kt,v.handleInsertRangeMoveDown=Jt,v.handleInsertRangeMoveRight=Xt,v.handleInsertRangeMutation=es,v.handleInsertRow=Yt,v.handleMoveCols=zt,v.handleMoveRange=So,v.handleMoveRows=Gt,v.handleOtherDefaultRangeChangeWithEffectRefCommands=or,v.rangeMerge=Wt,v.rotateRange=he,v.runRefRangeMutations=xe,v.setEndForRange=Qo,v.transformCellDataToSelectionData=Nr,v.transformCellsToRange=ut,v.zhCN=fo,Object.defineProperty(v,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(S,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],r):(S=typeof globalThis<"u"?globalThis:S||self,r(S.UniverSheets={},S.UniverCore,S["@wendellhu/redi"],S.rxjs,S.UniverEngineFormula,S.rxjs.operators,S.UniverEngineRender))})(this,function(S,r,j,Pe,te,Do,Eo){"use strict";var Hr=Object.defineProperty;var $r=(S,r,j)=>r in S?Hr(S,r,{enumerable:!0,configurable:!0,writable:!0,value:j}):S[r]=j;var L=(S,r,j)=>($r(S,typeof r!="symbol"?r+"":r,j),j);var en;var No=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,Ao=(o,t,n,e)=>{for(var s=e>1?void 0:e?Oo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&No(t,n,s),s},Po=(o,t)=>(n,e)=>t(n,e,o);const Y="normalSelectionPluginName";var nn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(nn||{});S.SelectionManagerService=class{constructor(t){L(this,"_selectionInfo",new Map);L(this,"_currentSelection",null);L(this,"_selectionMoveStart$",new Pe.Subject);L(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());L(this,"_selectionMoving$",new Pe.Subject);L(this,"selectionMoving$",this._selectionMoving$.asObservable());L(this,"_selectionMoveEnd$",new Pe.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 n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:Y,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.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(n=>n.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,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),n===0?this._refreshStart(this._currentSelection):n===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:n},e)=>t.some(({range:s},a)=>e===a?!1:n.startRow<=s.endRow&&n.endRow>=s.startRow&&n.startColumn<=s.endColumn&&n.endColumn>=s.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:n,unitId:e,sheetId:s}=t;return(i=(a=this._selectionInfo.get(n))==null?void 0:a.get(e))==null?void 0:i.get(s)}_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 n=this._getSelectionDatas(t);return n==null?void 0:n[0]}_getLastByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[n.length-1]}_addByParam(t,n=!0){const{pluginName:e,unitId:s,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(s)||u.set(s,new Map);const d=u.get(s);if(!d.has(a))d.set(a,[...i]);else{let l=d.get(a);l==null&&(l=[],d.set(a,l)),l.push(...i)}n&&this._refresh({pluginName:e,unitId:s,sheetId:a})}_replaceByParam(t){const{pluginName:n,unitId:e,sheetId:s,selectionDatas:a}=t;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const i=this._selectionInfo.get(n);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(s))u.set(s,a);else{let d=u.get(s);d==null&&(d=[],u.set(s,d)),d.splice(0,d.length,...a)}}_clearByParam(t){const n=this._getSelectionDatas(t);n==null||n.splice(0),this._refresh(t)}_removeByParam(t,n){const e=this._getSelectionDatas(n);e==null||e.splice(t,1),this._refresh(n)}},S.SelectionManagerService=Ao([Po(0,j.Inject(r.ThemeService))],S.SelectionManagerService);const ko=r.createInterceptorKey("CELL_CONTENT"),Bo=r.createInterceptorKey("PERMISSION"),ke={CELL_CONTENT:ko,PERMISSION:Bo};var Vo=Object.defineProperty,Lo=Object.getOwnPropertyDescriptor,jo=(o,t,n,e)=>{for(var s=e>1?void 0:e?Lo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Vo(t,n,s),s},Wo=(o,t)=>(n,e)=>t(n,e,o);S.SheetInterceptorService=class extends r.Disposable{constructor(n){super();L(this,"_interceptorsByName",new Map);L(this,"_commandInterceptors",[]);L(this,"_workbookDisposables",new Map);L(this,"_worksheetDisposables",new Map);this._currentUniverService=n,this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(ke.CELL_CONTENT,{priority:-1,handler(e,s){const a=s.worksheet.getCellRaw(s.row,s.col);return e?{...a,...e}:a}}),this.intercept(ke.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((e,s)=>{var a,i;return((a=s.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,n)))}onCommandExecute(n){const e=this._commandInterceptors.map(s=>s.getMutations(n));return{preUndos:e.map(s=>{var a;return(a=s.preUndos)!=null?a:[]}).flat(),undos:e.map(s=>s.undos).flat(),preRedos:e.map(s=>{var a;return(a=s.preRedos)!=null?a:[]}).flat(),redos:e.map(s=>s.redos).flat()}}intercept(n,e){const s=n;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const a=this._interceptorsByName.get(s);return a.push(e),this._interceptorsByName.set(s,a.sort((i,u)=>{var d,l;return((d=u.priority)!=null?d:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),e)))}fetchThroughInterceptors(n){const e=n,s=this._interceptorsByName.get(e);return r.composeInterceptors(s||[])}_interceptWorkbook(n){const e=new r.DisposableCollection,s=n.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(l=>{const c=new r.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(ke.CELL_CONTENT)(u.getCellRaw(g,v),{unitId:s,subUnitId:d,row:g,col:v,worksheet:u,workbook:n})}});c.add(m),a._worksheetDisposables.set(on(s,u),c)})};n.getSheets().forEach(u=>i(u)),e.add(r.toDisposable(n.sheetCreated$.subscribe(u=>i(u)))),e.add(r.toDisposable(n.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),e.add(r.toDisposable(()=>n.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u))))}_disposeWorkbookInterceptor(n){const e=n.getUnitId(),s=this._workbookDisposables.get(e);s&&(s.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(n,e){const s=on(n,e),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},S.SheetInterceptorService=jo([r.OnLifecycle(r.LifecycleStages.Starting,S.SheetInterceptorService),Wo(0,r.IUniverInstanceService)],S.SheetInterceptorService);function on(o,t){return`${o}|${t.getSheetId()}`}const he=(o,t)=>{const{unitId:n,subUnitId:e,cellValue:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),l=i.getStyles(),c=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,v,h)=>{const C=r.Tools.deepClone(d==null?void 0:d.getValue(g,v))||{},f=l.getStyleByCell(C),R=$o(f,h&&h.s?h.s:null);C.s=R,c.setValue(g,v,Fo(C))}),{...t,options:{},cellValue:c.getMatrix()}};function Fo(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o)}const x={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(o,t)=>{const{cellValue:n,subUnitId:e,unitId:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),l=i.getStyles();return new r.ObjectMatrix(n).forValue((m,g,v)=>{if(!v)d==null||d.setValue(m,g,{});else{const h=d.getValue(m,g)||{},C=v.t===r.CellValueType.FORCE_STRING?v.t:v.v!==void 0?sn(v.v,v.t):sn(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=C===r.CellValueType.NUMBER?Number(v.v):C===r.CellValueType.BOOLEAN?Ho(v.v)?1:0:v.v),h.v!==void 0&&(h.t=C),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=Ze(f,v.s?v.s:null);R&&r.Tools.removeNull(R),r.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!v.p&&h.p&&xo(h.p,v.s?v.s:null)}d.setValue(m,g,r.Tools.removeNull(h))}}),!0}};function sn(o,t){return o===null?null:typeof o=="string"?an(o)?(+o==0||+o==1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:Yo(o)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:typeof o=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function Ho(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(an(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function $o(o,t){return Go(o,t)}function Go(o,t){if(!t||!Object.keys(t).length)return o;const n=o||{};for(const e in t)e==="bd"?n[e]=zo(n[e]||{},t[e]):e in n||(n[e]=null);return n}function zo(o,t){if(!t||!Object.keys(t).length)return o;for(const n in t)n in o||(o[n]=null);return o}function Ze(o,t,n=!1){if(t===null)return t;if(t===void 0)return o;const e=r.Tools.deepClone(o)||{};if(e){for(const s in t)n&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in e&&s==="bd"?e[s]=Object.assign(e[s],t[s]):e[s]=t[s]);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 rn(o,t){return o.some(n=>n.startIndex===t)?rn(o,t+1):t}function xo(o,t){var i;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let n=0;const e=[],s=((i=o.body)==null?void 0:i.paragraphs)||[];for(const u of o.body.textRuns){const{st:d,ed:l,ts:c={}}=u;if(n<d){const g={st:n,ed:d},v=Ze({},t,!0);v&&r.Tools.removeNull(v),r.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=Ze(c,t,!0);m&&r.Tools.removeNull(m),r.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),n=rn(s,l)}const a=o.body.dataStream.endsWith(`\r
|
|
2
|
+
`)?o.body.dataStream.length-2:o.body.dataStream.length;if(n<a){const u={st:n,ed:a},d=Ze({},t,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}o.body.textRuns=r.normalizeTextRuns(e)}function qo(o){return/^-?\d+(\.\d+)?$/.test(o)}function an(o){return qo(o)?Number(o)<=Number.MAX_SAFE_INTEGER:!1}function Yo(o){return o.toUpperCase()==="TRUE"||o.toUpperCase()==="FALSE"}const Qe={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Ko(c)},h=he(o,v);m.push({id:x.id,params:v}),g.push({id:x.id,params:h});const C=a.onCommandExecute({id:Qe.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,n)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Ko(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const wt={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={subUnitId:l,unitId:u,cellValue:Jo(c)},g=he(o,m),v=a.onCommandExecute({id:wt.id}),h=[{id:x.id,params:m},...v.redos],C=[...v.undos,{id:x.id,params:g}];return r.sequenceExecute(h,n).result?(s.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:h}),!0):!1}};function Jo(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null})}),t.getData()}const et={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Xo(c)},h=he(o,v);m.push({id:x.id,params:v}),g.push({id:x.id,params:h});const C=a.onCommandExecute({id:et.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,n)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{s:null})}),t.getData()}const pt=(o,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ye={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService),{sheet:e,index:s,unitId:a}=t,i=n.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,s,e):!1}},un=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:s,unitId:a}=t,i=e.getSheetBySheetId(s).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===s),sheet:i,unitId:a}},Be={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=n.getUniverSheetInstance(s);return a?a.removeSheet(e):!1}},dn={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,t)=>{var C,f;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.LocaleService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(C=t.unitId)!=null?C:i,u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c=r.Tools.deepClone(l.getConfig());c.name+=a.t("sheets.sheetCopy"),c.id=r.Tools.generateRandomId();const g={index:d.getSheetIndex(l)+1,sheet:c,unitId:i},v=pt(o,g);return n.syncExecuteCommand(ye.id,g)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Be.id,params:v}],redoMutations:[{id:ye.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(o,t)=>{const{from:n,to:e}=t;if(!n||!e)return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),l=u.getCellMatrix();return new r.ObjectMatrix(n.value).forValue((c,m,g)=>{d.setValue(c,m,g)}),new r.ObjectMatrix(e.value).forValue((c,m,g)=>{l.setValue(c,m,g)}),!0}},G={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(S.SelectionManagerService);if(!t)return!1;const{selections:e,type:s}=t;return n.replace(e,s),!0}};function xe(o,t,n=!0){const e=t.getMatrixWithMergedCells(...r.selectionToArray(o)),s=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const l={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};r.Rectangle.contains(o,l)||s.push(l)}}),s.length===0)return o;const a=r.Rectangle.union(o,...s);return n?xe(a,t,n):a}function Zo(o,t,n){let e=null;return n.getMatrixWithMergedCells(o,t,o,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:r.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:o,startRow:o,startColumn:t,endRow:o,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function Qo(o,t,n){const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;return Number.isNaN(e)&&(o.startRow=0),Number.isNaN(a)&&(o.endRow=t),Number.isNaN(s)&&(o.startColumn=0),Number.isNaN(i)&&(o.endColumn=n),o}function Z(o,t){const n=Number.isNaN(o.startRow)?0:o.startRow,e=Number.isNaN(o.startColumn)?0:o.startColumn,s=t.getMergedCell(n,e);return s?{...s,actualRow:n,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:e,endRow:o.startRow,endColumn:o.startColumn,actualRow:n,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const ve=(o,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),pluginName:Y,selections:[{range:o,primary:Z(o,n)}]}}),cn="sheet.command.move-range",tt={type:r.CommandType.COMMAND,id:cn,handler:(o,t)=>{var f,R;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ErrorService),i=s.getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId(),c=yt(o,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(c===null)return a.emit("Across a merged cell."),!1;const g=o.get(S.SheetInterceptorService).onCommandExecute({id:tt.id,params:{...t}}),v=[...(f=g.preRedos)!=null?f:[],...c.redos,...g.redos,{id:G.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:Z(t.toRange,u)}]}}],h=[...(R=g.preUndos)!=null?R:[],...c.undos,...g.undos,{id:G.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:Z(t.fromRange,u)}]}}];return r.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:d,undoMutations:h,redoMutations:v}),!0):!1}};function yt(o,t,n,e=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:l,subUnitId:c}=n,g=o.get(r.IUniverInstanceService).getUniverSheetInstance(d),v=g==null?void 0:g.getSheetBySheetId(c),h=g==null?void 0:g.getSheetBySheetId(u),C=v==null?void 0:v.getCellMatrix(),f=h==null?void 0:h.getCellMatrix();if(v&&h&&C&&f){const R=xe(l,v,!1);if(!r.Rectangle.equals(l,R)&&!e)return null;const w=new r.ObjectMatrix,I=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{w.setValue(U,T,f.getValue(U,T)),I.setValue(U,T,null)});const M=new r.ObjectMatrix;r.Range.foreach(l,(U,T)=>{M.setValue(U,T,C.getValue(U,T))});const p=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{const N=r.cellToRange(U,T),H=r.Rectangle.getRelativeRange(N,i),y=r.Rectangle.getPositionRange(H,l);p.setValue(y.startRow,y.startColumn,f.getValue(U,T))});const b={from:{value:I.getMatrix(),subUnitId:u},to:{value:p.getMatrix(),subUnitId:c},unitId:d},_={from:{value:w.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:c},unitId:d};s.push({id:Ve.id,params:b}),a.push({id:Ve.id,params:_})}return{redos:s,undos:a}}const Ue={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),{value:u,range:d,unitId:l=s.getCurrentUniverSheetInstance().getUnitId(),subUnitId:c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=d?[d]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new r.ObjectMatrix;let v;if(r.Tools.isArray(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:b,endRow:_,endColumn:U}=m[M];for(let T=0;T<=_-p;T++)for(let N=0;N<=U-b;N++)g.setValue(T+p,N+b,u[T][N])}else if(r.isICellData(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:b,endRow:_,endColumn:U}=m[M];for(let T=p;T<=_;T++)for(let N=b;N<=U;N++)g.setValue(T,N,u)}else v=u;const h={subUnitId:c,unitId:l,cellValue:v!=null?v:g.getMatrix()},C=he(o,h);if(!i.fetchThroughInterceptors(ke.PERMISSION)(null,{id:Ue.id,params:h}))return!1;const f=n.syncExecuteCommand(x.id,h),{undos:R,redos:w}=i.onCommandExecute({id:Ue.id,params:{...h,range:m}}),I=r.sequenceExecute([...w],n);return f&&I.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:x.id,params:C},...R],redoMutations:[{id:x.id,params:h},...w]}),!0):!1}};function Ut(o,t){const n=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,l=o.get(r.IUniverInstanceService),c=o.get(S.SheetInterceptorService),m=l.getUniverSheetInstance(s),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 I,M;if(u===r.Dimension.COLUMNS){const b=Math.min(i.endRow,h.endRow);let _=0;for(let T=i.startRow;T<=b;T++){const N=v.getRow(T),H=N?r.getArrayLength(N)-1:0;_=Math.max(_,H)}I={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:_};const U=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:I.startColumn+U,endRow:b,endColumn:I.endColumn+U}}else{const b=Math.min(i.endColumn,h.endColumn),_=h.endRow;I={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:b};const U=i.endRow-i.startRow+1;M={startRow:I.startRow+U,startColumn:i.startColumn,endRow:I.endRow+U,endColumn:b}}const p=yt(o,{unitId:s,subUnitId:a,range:I},{unitId:s,subUnitId:a,range:M},!0);p&&(n.push(...p.redos),e.push(...p.undos))}if(Object.entries(d).length===0)for(let I=i.startRow;I<=i.endRow;I++){d[I]||(d[I]={});for(let M=i.startColumn;M<=i.endColumn;M++)d[I][M]=null}const C={subUnitId:a,unitId:s,cellValue:d},f=he(o,C),{undos:R,redos:w}=c.onCommandExecute({id:Ue.id,params:{...C,range:i}});n.push({id:x.id,params:C},...w),e.push({id:x.id,params:f},...R)}return{redo:n,undo:e}}function _t(o,t){const n=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=t,d=o.get(r.IUniverInstanceService),l=o.get(S.SheetInterceptorService),c=d.getUniverSheetInstance(s),m=c==null?void 0:c.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:s,cellValue:ns([i])},C=he(o,h),f=l.onCommandExecute({id:Ue.id,params:h});if(n.push({id:x.id,params:h},...f.redos),e.push(...f.undos,{id:x.id,params:C}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,w=null;if(u===r.Dimension.COLUMNS&&i.endColumn<v.endColumn){const I=Math.min(i.endRow,v.endRow);let M=0;for(let b=i.startRow;b<=I;b++){const _=g.getRow(b),U=_?r.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:I,endColumn:M};const p=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:R.startColumn-p,endRow:I,endColumn:R.endColumn-p}}if(u===r.Dimension.ROWS&&i.endRow<v.endRow){const I=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:I};const p=i.endRow-i.startRow+1;w={startRow:R.startRow-p,startColumn:i.startColumn,endRow:R.endRow-p,endColumn:I}}if(R&&w){const I=yt(o,{unitId:s,subUnitId:a,range:R},{unitId:s,subUnitId:a,range:w},!0);I&&(n.push(...I.redos),e.push(...I.undos))}}}return{redo:n,undo:e}}function es(o,t,n,e,s,a){const{startRow:i,endRow:u,startColumn:d,endColumn:l}=t;if(s===r.Dimension.ROWS){const c=u-i+1;for(let m=n;m>=i;m--)for(let g=d;g<=l;g++){const v=o.getValue(m,g);v==null?o.realDeleteValue(m+c,g):o.setValue(m+c,g,v)}for(let m=u;m>=i;m--)for(let g=d;g<=l;g++)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const c=l-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const v=o.getValue(m,g);v==null?o.realDeleteValue(m,g+c):o.setValue(m,g+c,v)}for(let m=i;m<=u;m++)for(let g=l;g>=d;g--)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}}function ts(o,t,n,e,s){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,l=i-a+1,c=d-u+1;if(s===r.Dimension.ROWS)for(let m=a;m<=n;m++)for(let g=u;g<=d;g++){const v=o.getValue(m+l,g);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}else if(s===r.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const v=o.getValue(m,g+c);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}}function ns(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const ln="sheet.command.delete-range-move-left",nt={type:r.CommandType.COMMAND,id:ln,handler:async(o,t)=>{var I,M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=a.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:nt.id,params:{range:l}}),{redo:h,undo:C}=_t(o,g),f=[...(M=v.preRedos)!=null?M:[],...h],R=[...v.undos,...C];return f.push(...v.redos),f.push(ve(l,c,m)),R.push(...(p=v.preUndos)!=null?p:[]),r.sequenceExecute(f,n).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},mn="sheet.command.delete-range-move-up",ot={type:r.CommandType.COMMAND,id:mn,handler:async(o,t)=>{var I,M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=a.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:ot.id,params:{range:l}}),{redo:h,undo:C}=_t(o,g),f=[...(M=v.preRedos)!=null?M:[],...h],R=[...v.undos,...C];return f.push(...v.redos),f.push(ve(l,c,m)),R.push(...(p=v.preUndos)!=null?p:[]),await r.sequenceExecute(f,n).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},bt=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Se={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(o,t)=>{var h;const{unitId:n,subUnitId:e,range:s,rowInfo:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const l=d.getRowManager().getRowData(),c={h:d.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let C=m;C<m+g;C++)a?r.insertMatrixArray(C,(h=a[C-s.startRow])!=null?h:c,l):r.insertMatrixArray(C,c,l);return d.setRowCount(d.getRowCount()+s.endRow-s.startRow+1),d.getCellMatrix().insertRows(s.startRow,g),!0}},Tt=(o,t)=>{if(o.get(r.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:r.CommandType.MUTATION,handler:(o,t)=>{var h;const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getColumnManager(),{range:i,colInfo:u}=t,l=a.getColumnData(),c=i.startColumn,m=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let C=c;C<c+m;C++){const f={w:g,hd:0};u?r.insertMatrixArray(C,(h=u[C-i.startColumn])!=null?h:f,l):r.insertMatrixArray(C,f,l)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,m),!0}},os=(o,t)=>{const s=t.getRowManager().getRowData(),a={},i=o.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),d=r.concatMatrixArray(a,u);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:d}},fe={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getRowManager().getRowData(),d=a.endRow-a.startRow+1;return r.spliceArray(a.startRow,d,u),s.getCellMatrix().removeRows(a.startRow,d),s.setRowCount(s.getRowCount()-d),!0}},ss=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),d={},l=t.range,c=r.sliceMatrixArray(l.startColumn,l.endColumn,u),m=r.concatMatrixArray(d,c);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return r.spliceArray(a.startColumn,d,u),s.setColumnCount(s.getColumnCount()-d),s.getCellMatrix().removeColumns(a.startColumn,d),!0}},rs="sheet.command.insert-range-move-down",st={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,t)=>{var N,H,y;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ILogService),i=o.get(S.SelectionManagerService),u=o.get(S.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=i.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(f.startRow,f.endRow,c.startColumn,c.endColumn).getDataRange().endRow,I=Math.max(w+(c.endRow-c.startRow+1)-f.endRow,0);if(I>0){const K=c.startRow-1,Q=g.getRowHeight(K),q={unitId:d,subUnitId:l,range:{startRow:f.endRow+1,endRow:f.endRow+I,startColumn:f.startColumn,endColumn:f.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:Q,hd:r.BooleanNumber.FALSE}))};v.push({id:Se.id,params:q});const ie=bt(o,q);h.push({id:fe.id,params:ie})}const M={};r.Range.foreach(c,(K,Q)=>{const q=g.getCell(K,Q);q&&(M[K]||(M[K]={}),M[K][Q]={s:q.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.ROWS,cellValue:M},{redo:b,undo:_}=Ut(o,p);v.push(...b),h.push(..._);const U=u.onCommandExecute({id:st.id,params:{range:c}});return v.push(...U.redos),v.push(ve(c,m,g)),h.push(...(H=U.preUndos)!=null?H:[]),v.unshift(...(y=U.preRedos)!=null?y:[]),h.unshift(...U.undos),r.sequenceExecute(v,n)?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},gn="sheet.command.insert-range-move-right",rt={type:r.CommandType.COMMAND,id:gn,handler:async(o,t)=>{var N,H,y;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ILogService),i=o.get(S.SelectionManagerService),u=o.get(S.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=i.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(c.startRow,c.endRow,f.startColumn,f.endColumn).getDataRange().endColumn,I=Math.max(w+(c.endColumn-c.startColumn+1)-f.endColumn,0);if(I>0){const K=c.startColumn-1,Q=g.getColumnWidth(K),q={unitId:d,subUnitId:l,range:{startRow:f.startRow+1,endRow:f.endRow,startColumn:f.endColumn+1,endColumn:f.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:Q,hd:r.BooleanNumber.FALSE}))};v.push({id:Ce.id,params:q});const ie=Tt(o,q);h.push({id:Ie.id,params:ie})}const M={};r.Range.foreach(c,(K,Q)=>{const q=g.getCell(K,Q);!q||!q.s||(M[K]||(M[K]={}),M[K][Q]={s:q.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.COLUMNS,cellValue:M},{redo:b,undo:_}=Ut(o,p);v.push(...b),h.push(..._);const U=u.onCommandExecute({id:rt.id,params:{range:c}});return v.push(...U.redos),v.push(ve(c,m,g)),h.push(...(H=U.preUndos)!=null?H:[]),v.unshift(...(y=U.preRedos)!=null?y:[]),h.unshift(...U.undos),r.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},hn="sheet.command.insert-row",Le={type:r.CommandType.COMMAND,id:hn,handler:async(o,t)=>{var M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),i=s.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:l,unitId:c,subUnitId:m}=t,{startRow:g,endRow:v}=d,h=l===r.Direction.UP?g:g-1,C=u.getRowHeight(h),f={unitId:c,subUnitId:m,range:d,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:C,hd:r.BooleanNumber.FALSE}))},R=bt(o,f),w=a.onCommandExecute({id:Le.id,params:t});return r.sequenceExecute([{id:Se.id,params:f},...w.redos,ve(d,i,u)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=w.preUndos)!=null?M:[],{id:fe.id,params:R},...w.undos],redoMutations:[...(p=w.preRedos)!=null?p:[],{id:Se.id,params:f},...w.redos]}),!0):!1}},vn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var g;const n=(g=o.get(S.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endRow-e.startRow+1,c={};r.Range.foreach(e,(v,h)=>{const C=i.getCell(v,h);!C||!C.s||(c[v]||(c[v]={}),c[v][h]={s:C.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:c};return o.get(r.ICommandService).executeCommand(Le.id,m)}},Sn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const n=(m=o.get(S.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endRow-e.startRow+1,c={unitId:u,subUnitId:d,direction:r.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return o.get(r.ICommandService).executeCommand(Le.id,c)}},Cn="sheet.command.insert-col",je={type:r.CommandType.COMMAND,id:Cn,handler:async(o,t)=>{var p,b,_;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:l,cellValue:c}=t,{startColumn:m,endColumn:g}=t.range,v=s.getUniverSheetInstance(t.unitId),h=v.getSheetBySheetId(t.subUnitId),C=u===r.Direction.LEFT?m:m-1,f=h.getColumnWidth(C),R={unitId:l,subUnitId:d,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:f,hd:r.BooleanNumber.FALSE}))},w=Tt(o,R);t.unitId,t.subUnitId,t.range,r.Dimension.COLUMNS;const I=a.onCommandExecute({id:je.id,params:t});return r.sequenceExecute([...(p=I.preRedos)!=null?p:[],{id:Ce.id,params:R},...I.redos,ve(i,v,h)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(b=I.preUndos)!=null?b:[],{id:Ie.id,params:w},...I.undos].filter(Boolean),redoMutations:[...(_=I.preRedos)!=null?_:[],{id:Ce.id,params:R},...I.redos].filter(Boolean)}),!0):!1}},fn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const n=o.get(S.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endColumn-e.startColumn+1,c={};r.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(c[g]||(c[g]={}),c[g][v]={s:h.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:c};return o.get(r.ICommandService).executeCommand(je.id,m)}},In={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const n=o.get(S.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endColumn-e.startColumn+1,c={unitId:u,subUnitId:d,direction:r.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return o.get(r.ICommandService).executeCommand(je.id,c)}},Rn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(o,t)=>{var v,h;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.LocaleService),i=(v=t==null?void 0:t.unitId)!=null?v:s.getCurrentUniverSheetInstance().getUnitId(),u=s.getUniverSheetInstance(i);if(!u)return!1;let d=u.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});t?(d=(h=t.index)!=null?h:d,t.sheet?l=t.sheet:(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`));const c={index:d,sheet:l,unitId:i},m=pt(o,c);return n.syncExecuteCommand(ye.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Be.id,params:m}],redoMutations:[{id:ye.id,params:c}]}),!0):!1}};function is(o,t){const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:n,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:n,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const _e={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const l=s.startRow,c=s.endRow-s.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveRows(l,c,m),!0}};function as(o,t){const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:n,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:n,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const be={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const l=s.startColumn,c=s.endColumn-s.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveColumns(l,c,m),!0}};function us(o,t){return t.getMergeData().some(n=>n.startRow<o&&o<=n.endRow)}function ds(o,t){return t.getMergeData().some(n=>n.startColumn<o&&o<=n.endColumn)}const Mn="sheet.command.move-rows",Dt={id:Mn,type:r.CommandType.COMMAND,handler:async(o,t)=>{var q,ie;const e=o.get(S.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.ROW&&ae.range.startRow<=s&&s<=ae.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=o.get(S.SheetInterceptorService),l=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=o.get(r.ErrorService),h=i[0].range,C=i[0].primary,f=xe(h,c,!1);if(!r.Rectangle.equals(h,f))return v.emit("Only part of a merged cell is selected."),!1;if(us(a,c))return v.emit("Across a merged cell."),!1;const R={...h,startRow:a,endRow:a+h.endRow-h.startRow},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=is(o,w),p=a-s<0,b=h.endRow-h.startRow+1,_=p?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},U={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:Z(_,c),style:null}]},T={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:C,style:null}]},N=o.get(r.ICommandService),H=u.onCommandExecute({id:Dt.id,params:t}),y=[...(q=H.preRedos)!=null?q:[],{id:_e.id,params:w},{id:G.id,params:U},...H.redos],K=[...(ie=H.preUndos)!=null?ie:[],{id:_e.id,params:I},{id:G.id,params:T},...H.undos];return r.sequenceExecute(y,N).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:K,redoMutations:y}),!0):!1}},wn="sheet.command.move-cols",Et={id:wn,type:r.CommandType.COMMAND,handler:async(o,t)=>{var q,ie;const e=o.get(S.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.COLUMN&&ae.range.startColumn<=s&&s<=ae.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=o.get(S.SheetInterceptorService),l=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=o.get(r.ErrorService),h=i[0].range,C=i[0].primary,f=xe(h,c,!1);if(!r.Rectangle.equals(h,f))return v.emit("Only part of a merged cell is selected."),!1;if(ds(a,c))return v.emit("Across a merged cell."),!1;const R={...h,startColumn:a,endColumn:a+h.endColumn-h.startColumn},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=as(o,w),M=h.endColumn-h.startColumn+1,_=a-s<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},U={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:Z(_,c),style:null}]},T={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:C,style:null}]},N=o.get(r.ICommandService),H=u.onCommandExecute({id:Et.id,params:t}),y=[...(q=H.preRedos)!=null?q:[],{id:be.id,params:w},{id:G.id,params:U},...H.redos],K=[...(ie=H.preUndos)!=null?ie:[],{id:be.id,params:I},{id:G.id,params:T},...H.undos];return r.sequenceExecute(y,N).result&&o.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:K,redoMutations:y}),!0}},pn="sheet.command.remove-row",it={type:r.CommandType.COMMAND,id:pn,handler:async(o,t)=>{var R,w,I,M;const n=o.get(S.SelectionManagerService),e=o.get(S.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=n.getLast())==null?void 0:R.range),!s)return!1;const i=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId();s={...s,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=u.getCellMatrix().getSlice(s.startRow,s.endRow,0,u.getColumnCount()-1),g={unitId:d,subUnitId:l,cellValue:m.getMatrix()},v=os(c,u),h=e.onCommandExecute({id:it.id,params:{range:s}}),C=o.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:fe.id,params:c},...h.redos,ve(s,i,u)],C).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:Se.id,params:v},{id:x.id,params:g},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:fe.id,params:c},...h.redos]}),!0):!1}},yn="sheet.command.remove-col",at={type:r.CommandType.COMMAND,id:yn,handler:async(o,t)=>{var R,w,I,M;const n=o.get(S.SelectionManagerService),e=o.get(S.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=n.getLast())==null?void 0:R.range),!s)return!1;const i=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId();s={...s,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=ss(o,c),g=u.getCellMatrix().getSlice(0,u.getRowCount()-1,s.startColumn,s.endColumn),v={unitId:d,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:at.id,params:{range:s}}),C=o.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:Ie.id,params:c},...h.redos,ve(s,i,u)],C).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:Ce.id,params:m},{id:x.id,params:v},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:Ie.id,params:c},...h.redos]}),!0):!1}},Nt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(o,t)=>{var R,w,I,M;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(R=t.unitId)!=null?R:i,u=(w=t.subUnitId)!=null?w:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||d.getSheets().length<=1)return!1;const c=d.getSheetIndex(l);d.getConfig().sheetOrder[c+1];const m={subUnitId:u,unitId:i,subUnitName:l.getName()},g=un(o,m),v=a.onCommandExecute({id:Nt.id,params:{unitId:i,subUnitId:u}}),h=[...(I=v.preRedos)!=null?I:[],{id:Be.id,params:m},...v.redos],C=[...(M=v.preUndos)!=null?M:[],{id:ye.id,params:g},...v.undos];return r.sequenceExecute(h,n)?(e.pushUndoRedo({unitID:i,undoMutations:C,redoMutations:h}),!0):!1}},ce=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},W={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},ne=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().mergeData,u=t.ranges,d=[];for(let l=0;l<u.length;l++)for(let c=i.length-1;c>=0;c--){const m=i[c],g=u[l];r.Rectangle.intersects(m,g)&&d.push(i[c])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let l=i.length-1;l>=0;l--){const c=i[l],m=u[d];r.Rectangle.intersects(c,m)&&i.splice(l,1)}return!0}},Un={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const t=o.get(S.SelectionManagerService),n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:i,subUnitId:u,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(p=>{g.forEach(b=>{r.Rectangle.intersects(p,b)&&(m=!0)})}),!m)return!1;const v=ne(o,c),h=t.getSelections();if(!(h!=null&&h.length))return!1;const C=r.Tools.deepClone(h),f=r.Tools.deepClone(h),R=f[f.length-1],{startRow:w,startColumn:I}=R.range;return R.primary={startRow:w,startColumn:I,endRow:w,endColumn:I,actualRow:w,actualColumn:I,isMerged:!1,isMergedMainCell:!1},r.sequenceExecute([{id:F.id,params:v},{id:G.id,params:{selections:f}}],n)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:W.id,params:v},{id:G.id,params:{selections:C}}],redoMutations:[{id:F.id,params:v},{id:G.id,params:{selections:f}}]}),!0):!1}};class Te{constructor(){L(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new Pe.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 cs(o,t,n){const e=t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance();if(!e)throw new Error;const s=n?e.getSheetBySheetId(n):e.getActiveSheet();if(!s)throw new Error;return{workbook:e,worksheet:s,unitId:t!=null?t:e.getUnitId(),subUnitId:n!=null?n:s.getSheetId()}}function ut(o,t){const{startRow:n,startColumn:e,endRow:s,endColumn:a}=o;for(let i=n;i<=s;i++)for(let u=e;u<=a;u++)t(i,u)}const _n={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(o,t)=>{const{unitId:n,subUnitId:e,value:s}=t,{type:a,color:i,style:u}=s,d=o.get(r.ICommandService),l=o.get(Te);return l.setType(a),l.setColor(i),l.setStyle(u),d.executeCommand(We.id,{unitId:n,subUnitId:e})}},bn={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(o,t)=>{if(!t.value)return!1;const n=o.get(r.ICommandService);return o.get(Te).setType(t.value),n.executeCommand(We.id)}},Tn={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService);return o.get(Te).setStyle(t.value),n.executeCommand(We.id)}},Dn={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService);return o.get(Te).setColor(t.value),n.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(Te),{worksheet:u,unitId:d,subUnitId:l}=cs(s,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),c=a.getSelectionRanges(),m=u.getConfig().mergeData;if(!(c!=null&&c.length))return!1;const{style:g,color:v,type:h,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const f=h===r.BorderType.TOP||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,R=h===r.BorderType.LEFT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,w=h===r.BorderType.BOTTOM||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,I=h===r.BorderType.RIGHT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,M=h===r.BorderType.VERTICAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,p=h===r.BorderType.HORIZONTAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,b=h.indexOf("tlbr")>-1,_=h.indexOf("tlbc")>-1,U=h.indexOf("tlmr")>-1,T=h.indexOf("bltr")>-1,N=h.indexOf("mltr")>-1,H=h.indexOf("bctr")>-1,y=c[0],K={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},Q={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},q={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},ie={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},ae={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},Uo={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},_o={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},bo={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},B=new r.ObjectMatrix,z={s:g,cl:{rgb:v}},Mt=(O,D)=>{let V=null;return m.forEach(X=>{r.Rectangle.intersects(X,{startColumn:D,endColumn:D,startRow:O,endRow:O})&&(V=X)}),V};function $(O,D,V){O.startRow<0||O.startColumn<0||ut(O,(X,ue)=>{var E,Xe;const ee=Mt(X,ue);let se=D;if(ee&&(D.bc_tr||D.ml_tr||D.bl_tr||D.tl_mr||D.tl_bc||D.tl_br)){if(V){const de=r.Tools.deepClone((E=B.getValue(ee.startRow,ee.startColumn))==null?void 0:E.s);se=de!=null&&de.bd?Object.assign(de.bd,D):D}B.setValue(ee.startRow,ee.startColumn,{s:{bd:se}})}else{if(V){const de=r.Tools.deepClone((Xe=B.getValue(X,ue))==null?void 0:Xe.s);se=de!=null&&de.bd?Object.assign(de.bd,D):D}B.setValue(X,ue,{s:{bd:se}})}})}f&&($(K,{b:null}),$(ae,{t:r.Tools.deepClone(z)},!0)),w&&($(q,{t:null}),$(_o,{b:r.Tools.deepClone(z)},!0)),R&&($(Q,{r:null}),$(Uo,{l:r.Tools.deepClone(z)},!0)),I&&($(ie,{l:null}),$(bo,{r:r.Tools.deepClone(z)},!0)),b&&$(y,{tl_br:r.Tools.deepClone(z)},!0),_&&$(y,{tl_bc:r.Tools.deepClone(z)},!0),U&&$(y,{tl_mr:r.Tools.deepClone(z)},!0),T&&$(y,{bl_tr:r.Tools.deepClone(z)},!0),N&&$(y,{ml_tr:r.Tools.deepClone(z)},!0),H&&$(y,{bc_tr:r.Tools.deepClone(z)},!0),M&&ut(y,(O,D)=>{var X,ue,ee,se;const V=Mt(O,D);if(V){if(V.endColumn!==y.endColumn){const E=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:r.Tools.deepClone(z)}):{r:r.Tools.deepClone(z)}}})}if(V.startColumn!==y.startColumn){const E=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:r.Tools.deepClone(z)}):{l:r.Tools.deepClone(z)}}})}}else{if(D!==y.endColumn){const E=(ee=B.getValue(O,D))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:r.Tools.deepClone(z)}):{r:r.Tools.deepClone(z)}}})}if(D!==y.startColumn){const E=(se=B.getValue(O,D))==null?void 0:se.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:r.Tools.deepClone(z)}):{l:r.Tools.deepClone(z)}}})}}}),p&&ut(y,(O,D)=>{var X,ue,ee,se;const V=Mt(O,D);if(V){if(V.endRow!==y.endRow){const E=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:r.Tools.deepClone(z)}):{b:r.Tools.deepClone(z)}}})}if(V.startRow!==y.startRow){const E=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:r.Tools.deepClone(z)}):{t:r.Tools.deepClone(z)}}})}}else{if(O!==y.endRow){const E=(ee=B.getValue(O,D))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:r.Tools.deepClone(z)}):{b:r.Tools.deepClone(z)}}})}if(O!==y.startRow){const E=(se=B.getValue(O,D))==null?void 0:se.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:r.Tools.deepClone(z)}):{t:r.Tools.deepClone(z)}}})}}}),!f&&!w&&!R&&!I&&!M&&!p&&!b&&!_&&!U&&!T&&!N&&!H&&($(K,{b:null}),$(ae,{t:null},!0),$(q,{t:null}),$(_o,{b:null},!0),$(Q,{r:null}),$(Uo,{l:null},!0),$(ie,{l:null}),$(bo,{r:null},!0),$(y,{tl_br:null},!0),$(y,{tl_bc:null},!0),$(y,{tl_mr:null},!0),$(y,{bl_tr:null},!0),$(y,{ml_tr:null},!0),$(y,{bc_tr:null},!0),ut(y,(O,D)=>{var X,ue,ee,se,E,Xe,de,To;const V=Mt(O,D);if(V){if(V.endColumn!==y.endColumn){const A=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(V.startColumn!==y.startColumn){const A=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(V.endRow!==y.endRow){const A=(ee=B.getValue(V.startRow,V.startColumn))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(V.startRow!==y.startRow){const A=(se=B.getValue(V.startRow,V.startColumn))==null?void 0:se.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(D!==y.endColumn){const A=(E=B.getValue(O,D))==null?void 0:E.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(D!==y.startColumn){const A=(Xe=B.getValue(O,D))==null?void 0:Xe.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==y.endRow){const A=(de=B.getValue(O,D))==null?void 0:de.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==y.startRow){const A=(To=B.getValue(O,D))==null?void 0:To.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const tn={unitId:d,subUnitId:l,cellValue:B.getData()},Fr=he(o,tn);return n.syncExecuteCommand(x.id,tn)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:x.id,params:Fr}],redoMutations:[{id:x.id,params:tn}]}),!0):!1}},ls=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.TRUE)}}return!0}},ms=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.FALSE)}}return!0}},Ot={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,a=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),i={unitId:n,subUnitId:e,ranges:s},u=ms(o,i),d={unitId:n,subUnitId:e,pluginName:Y,selections:s.map(g=>({range:g,primary:Z(g,a),style:null}))},l={unitId:n,subUnitId:e,pluginName:Y,selections:On(s).map(g=>({range:g,primary:Z(g,a),style:null}))},c=o.get(r.ICommandService);return r.sequenceExecute([{id:He.id,params:i},{id:G.id,params:d}],c).result&&o.get(r.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Fe.id,params:u},{id:G.id,params:l}],redoMutations:[{id:He.id,params:i},{id:G.id,params:d}]}),!0}},En={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const n=(l=o.get(S.SelectionManagerService).getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const s=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=n.map(c=>a.getHiddenCols(c.startColumn,c.endColumn)).flat();return o.get(r.ICommandService).executeCommand(Ot.id,{unitId:i,subUnitId:u,ranges:d})}},Nn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v;const n=(v=o.get(S.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===r.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const s=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:n},l={unitId:i,subUnitId:u,pluginName:Y,selections:On(n).map(h=>({range:h,primary:Z(h,a),style:null}))},c={unitId:i,subUnitId:u,pluginName:Y,selections:n.map(h=>({range:h,primary:Z(h,a),style:null}))},m=o.get(r.ICommandService);if(r.sequenceExecute([{id:Fe.id,params:d},{id:G.id,params:l}],m).result){const h=o.get(r.IUndoRedoService),C=ls(o,d);return h.pushUndoRedo({unitID:i,undoMutations:[{id:He.id,params:C},{id:G.id,params:c}],redoMutations:[{id:Fe.id,params:d},{id:G.id,params:l}]}),!0}return!1}};function On(o){return gs(o).map(n=>{const e=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:e,endColumn:e}})}function gs(o){const t=[];let n;return o.sort((e,s)=>e.startColumn-s.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}const At=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},we={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:l}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:l},!0}},An={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u)return!1;const d=u.getSheetBySheetId(i);if(!d)return!1;const{startColumn:l,startRow:c,xSplit:m,ySplit:g}=t;if(c>=d.getRowCount()||l>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const v={unitId:a,subUnitId:i,...t},h=At(o,v);return n.syncExecuteCommand(we.id,v)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:we.id,params:h}],redoMutations:[{id:we.id,params:v}]}),!0):!1}},hs={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const t=o.get(r.ICommandService),n=o.get(r.IUndoRedoService),e=o.get(r.IUniverInstanceService),s=e.getCurrentUniverSheetInstance().getUnitId(),a=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=e.getUniverSheetInstance(s);if(!i||!i.getSheetBySheetId(a))return!1;const d={unitId:s,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=At(o,d);return t.syncExecuteCommand(we.id,d)?(n.pushUndoRedo({unitID:s,undoMutations:[{id:we.id,params:l}],redoMutations:[{id:we.id,params:d}]}),!0):!1}},vs=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Ss=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ge={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Pt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,a=o.get(r.ICommandService),i=o.get(r.IUndoRedoService),u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),d={unitId:n,subUnitId:e,ranges:s},l=vs(o,d),c={unitId:n,subUnitId:e,pluginName:Y,selections:s.map(v=>({range:v,primary:Z(v,u),style:null}))},m={unitId:n,subUnitId:e,pluginName:Y,selections:Bn(s).map(v=>({range:v,primary:Z(v,u),style:null}))};return r.sequenceExecute([{id:$e.id,params:d},{id:G.id,params:c}],a).result&&i.pushUndoRedo({unitID:n,undoMutations:[{id:Ge.id,params:l},{id:G.id,params:m}],redoMutations:[{id:$e.id,params:d},{id:G.id,params:c}]}),!0}},Pn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const t=o.get(S.SelectionManagerService),n=o.get(r.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const s=n.getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=e.map(c=>a.getHiddenRows(c.startRow,c.endRow)).flat();return o.get(r.ICommandService).executeCommand(Pt.id,{unitId:i,subUnitId:u,ranges:d})}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var C;const t=o.get(S.SelectionManagerService),n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=(C=t.getSelections())==null?void 0:C.map(f=>f.range).filter(f=>f.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:i,subUnitId:u,ranges:a},m={unitId:i,subUnitId:u,pluginName:Y,selections:Bn(a).map(f=>({range:f,primary:Z(f,l),style:null}))},g={unitId:i,subUnitId:u,pluginName:Y,selections:a.map(f=>({range:f,primary:Z(f,l),style:null}))},v=Ss(o,c);return r.sequenceExecute([{id:Ge.id,params:c},{id:G.id,params:m}],n).result&&e.pushUndoRedo({unitID:i,undoMutations:[{id:$e.id,params:v},{id:G.id,params:g}],redoMutations:[{id:Ge.id,params:c},{id:G.id,params:m}]}),!0}};function Bn(o){return Cs(o).map(n=>{const e=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:e,endRow:e}})}function Cs(o){const t=[];let n;return o.sort((e,s)=>e.startRow-s.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}const J={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,t)=>{const n=o.get(r.IUniverInstanceService),{unitId:e=n.getCurrentUniverSheetInstance().getUnitId(),subUnitId:s=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=t,u=o.get(r.ICommandService),d=o.get(r.IUndoRedoService),l=o.get(S.SelectionManagerService),c=a?[a]:l.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=n.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(s))==null)return!1;const v=new r.ObjectMatrix;if(r.Tools.isArray(i.value))for(let M=0;M<c.length;M++){const{startRow:p,endRow:b,startColumn:_,endColumn:U}=c[M];for(let T=0;T<=b-p;T++)for(let N=0;N<=U-_;N++)v.setValue(T+p,N+_,{s:{[i.type]:i.value[T][N]}})}else for(let M=0;M<c.length;M++){const{startRow:p,endRow:b,startColumn:_,endColumn:U}=c[M],T={s:{[i.type]:i.value}};for(let N=p;N<=b;N++)for(let H=_;H<=U;H++)v.setValue(N,H,T)}const h={subUnitId:s,unitId:e,cellValue:v.getMatrix()},C=he(o,h),f=u.syncExecuteCommand(x.id,h),{undos:R,redos:w}=o.get(S.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),I=r.sequenceExecute([...w],u);return f&&I.result?(d.pushUndoRedo({unitID:e,undoMutations:[{id:x.id,params:C},...R],redoMutations:[{id:x.id,params:h},...w]}),!0):!1}},fs={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:s}=t.primary,i={style:{type:"bl",value:n.getRange(e,s).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return o.get(r.ICommandService).executeCommand(J.id,i)}},Is={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:a,startColumn:i}=t.primary;e=n.getRange(a,i).getFontStyle()===r.FontItalic.ITALIC}const s={style:{type:"it",value:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return o.get(r.ICommandService).executeCommand(J.id,s)}},Rs={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const s={style:{type:"ul",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return o.get(r.ICommandService).executeCommand(J.id,s)}},Ms={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const s={style:{type:"st",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return o.get(r.ICommandService).executeCommand(J.id,s)}};r.CommandType.COMMAND;const ws={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={style:{type:"ff",value:t.value}};return n.executeCommand(J.id,e)}},ps={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={style:{type:"fs",value:t.value}};return n.executeCommand(J.id,e)}},Vn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(r.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return n.executeCommand(J.id,e)}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const t=o.get(r.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,n)}},jn={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(r.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return n.executeCommand(J.id,e)}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const t=o.get(r.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,n)}},Fn={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return n.executeCommand(J.id,e)}},Hn={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return n.executeCommand(J.id,e)}},$n={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return n.executeCommand(J.id,e)}},Gn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,t)=>{if(!t)return!1;const n=typeof t.value=="number"?{a:t.value}:{a:0,v:r.BooleanNumber.TRUE},e=o.get(r.ICommandService),s={style:{type:"tr",value:n}};return e.executeCommand(J.id,s)}},ys=(o,t)=>{const a=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(t),color:a}},qe={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},zn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const l={color:t.value,unitId:a,subUnitId:i},c=ys(o,l);return n.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:qe.id,params:c}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getWorksheets();for(const[,s]of e)if(s.getSheetId()===t.subUnitId)return n.setActiveSheet(s),!0;return!1}},Us=4,kt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,t,n)=>{var u,d;const e=o.get(r.ICommandService),s=o.get(r.IUniverInstanceService);let a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(a=(u=t.unitId)!=null?u:a,i=(d=t.subUnitId)!=null?d:i),new Promise(l=>{setTimeout(()=>{const c=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},n);l(c)},Us)})}},Bt=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("universheet is null error!");const a={},i=s.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const l=u[d];for(let c=l.startColumn;c<l.endColumn+1;c++){const m=i.getColumnOrCreate(c);a[c]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Re={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(o,t)=>{var d;const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=t.ranges;for(let l=0;l<u.length;l++){const c=u[l];for(let m=c.startColumn;m<c.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-c.startColumn])!=null?d:a}}return!0}},Vt={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=o.get(r.ICommandService),a=o.get(r.IUndoRedoService),u=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),d=u.getActiveSheet(),l=u.getUnitId(),c=d.getSheetId(),{anchorCol:m,deltaX:g}=t,h=d.getColumnWidth(m)+g,C=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,f=e.filter(U=>U.range.rangeType===r.RANGE_TYPE.COLUMN),R=C?r.RANGE_TYPE.ALL:f.some(({range:U})=>{const{startColumn:T,endColumn:N}=U;return T<=m&&m<=N})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let w;if(R===r.RANGE_TYPE.ALL){const U=d.getRowCount(),T=new Array(d.getColumnCount()).fill(void 0).map((N,H)=>({startRow:0,endRow:U-1,startColumn:H,endColumn:H}));w={subUnitId:c,unitId:l,colWidth:h,ranges:T}}else R===r.RANGE_TYPE.COLUMN?w={subUnitId:c,unitId:l,ranges:f.map(U=>r.Rectangle.clone(U.range)),colWidth:h}:w={subUnitId:c,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:d.getMaxRows()-1,startColumn:m,endColumn:m}]};const I=Bt(o,w),M=s.syncExecuteCommand(Re.id,w),{undos:p,redos:b}=o.get(S.SheetInterceptorService).onCommandExecute({id:Vt.id,params:w}),_=r.sequenceExecute([...b],s);return M&&_.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:Re.id,params:I},...p],redoMutations:[{id:Re.id,params:w},...b]}),!0}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,t)=>{const n=o.get(S.SelectionManagerService),e=o.get(r.ICommandService),s=o.get(r.IUndoRedoService),a=o.get(r.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:i,colWidth:t.value},c=Bt(o,l),m=e.syncExecuteCommand(Re.id,l),{undos:g,redos:v}=o.get(S.SheetInterceptorService).onCommandExecute({id:Lt.id,params:l}),h=r.sequenceExecute([...v],e);return m&&h.result?(s.pushUndoRedo({unitID:u,undoMutations:[{id:Re.id,params:c},...g],redoMutations:[{id:Re.id,params:l},...v]}),!0):!1}},xn=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},pe={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},qn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,t)=>{var f;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ErrorService),i=s.getCurrentUniverSheetInstance().getUnitId();let u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||l.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:u,hidden:r.BooleanNumber.TRUE},g=xn(o,m);return d.getSheets().filter(R=>R.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(pe.id,m)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:pe.id,params:g}],redoMutations:[{id:pe.id,params:m}]}),!0):!1}},_s=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},dt={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},jt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,t)=>{var h,C;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),i=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),d={subUnitId:t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:i},l=_s(o,d),c=a.onCommandExecute({id:jt.id,params:t}),m=[...(h=c.preRedos)!=null?h:[],{id:dt.id,params:d},...c.redos],g=[...(C=c.preUndos)!=null?C:[],{id:dt.id,params:l},...c.undos];return await r.sequenceExecute(m,n).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},bs=(o,t)=>({...r.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Yn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),i=t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const c={fromOrder:u.getConfig().sheetOrder.indexOf(i),toOrder:t.order,unitId:a,subUnitId:i},m=bs(o,c);return n.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Ke.id,params:m}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ts=2e3,Kn=(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<m+1;g++){const v=l.getRowOrCreate(g);d[g]=v.h}return{unitId:n,subUnitId:e,ranges:s,rowHeight:d}},Wt=(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<=m;g++){const v=l.getRowOrCreate(g);d[g]=v.ia}return{unitId:n,subUnitId:e,ranges:s,autoHeightInfo:d}},Ds=(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e),d=[],l=u.getRowManager();for(const c of s){const{row:m}=c,{ah:g}=l.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:e,rowsAutoHeightInfo:d}},Me={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:s,rowHeight:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=d.getConfig().defaultRowHeight,c=d.getRowManager();for(const{startRow:g,endRow:v}of s)for(let h=g;h<=v;h++){const C=c.getRowOrCreate(h);typeof a=="number"?C.h=a:C.h=(m=a[h])!=null?m:l,C.h=Math.min(Ts,C.h)}return!0}},re={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:s,autoHeightInfo:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=void 0,c=d.getRowManager();for(const{startRow:g,endRow:v}of s)for(let h=g;h<=v;h++){const C=c.getRowOrCreate(h);typeof a=="number"?C.ia=a:C.ia=(m=a[h-g])!=null?m:l}return!0}},Ft={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:l,autoHeight:c}of s){const m=d.getRowOrCreate(l);m.ah=c}return!0}},Jn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),u=a.getUnitId(),d=i.getSheetId(),{anchorRow:l,deltaY:c}=t,g=i.getRowHeight(l)+c,v=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,h=e.filter(_=>_.range.rangeType===r.RANGE_TYPE.ROW),C=v?r.RANGE_TYPE.ALL:h.some(({range:_})=>{const{startRow:U,endRow:T}=_;return U<=l&&l<=T})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let f;if(C===r.RANGE_TYPE.ALL){const _=i.getRowCount(),U=new Array(i.getColumnCount()).fill(void 0).map((T,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:_-1}));f={subUnitId:d,unitId:u,rowHeight:g,ranges:U}}else C===r.RANGE_TYPE.ROW?f={subUnitId:d,unitId:u,ranges:h.map(_=>r.Rectangle.clone(_.range)),rowHeight:g}:f={subUnitId:d,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const R=Kn(o,f),w={unitId:u,subUnitId:d,ranges:f.ranges,autoHeightInfo:r.BooleanNumber.FALSE},I=Wt(o,w),M=o.get(r.ICommandService),p=o.get(r.IUndoRedoService);return r.sequenceExecute([{id:Me.id,params:f},{id:re.id,params:w}],M).result?(p.pushUndoRedo({unitID:u,undoMutations:[{id:Me.id,params:R},{id:re.id,params:I}],redoMutations:[{id:Me.id,params:f},{id:re.id,params:w}]}),!0):!1}},Xn={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,t)=>{const n=o.get(S.SelectionManagerService),e=o.get(r.ICommandService),s=o.get(r.IUndoRedoService),a=o.get(r.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance(),d=u.getUnitId(),l=u.getActiveSheet().getSheetId(),c={subUnitId:l,unitId:d,ranges:i,rowHeight:t.value},m=Kn(o,c),g={unitId:d,subUnitId:l,ranges:c.ranges,autoHeightInfo:r.BooleanNumber.FALSE},v=Wt(o,g);return r.sequenceExecute([{id:Me.id,params:c},{id:re.id,params:g}],e).result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:m},{id:re.id,params:v}],redoMutations:[{id:Me.id,params:c},{id:re.id,params:g}]}),!0):!1}},Ht={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(S.SelectionManagerService),a=o.get(r.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),u=a.getCurrentUniverSheetInstance().getActiveSheet(),d=u.getSheetId(),{anchorRow:l}=t!=null?t:{},c=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:u.getMaxColumns()-1}]:s.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={unitId:i,subUnitId:d,ranges:c,autoHeightInfo:r.BooleanNumber.TRUE},g=Wt(o,m),v=n.syncExecuteCommand(re.id,m),{undos:h,redos:C}=o.get(S.SheetInterceptorService).onCommandExecute({id:Ht.id,params:m}),f=r.sequenceExecute([...C],n);return v&&f.result?(e.pushUndoRedo({unitID:i,undoMutations:[{id:re.id,params:g},...h],redoMutations:[{id:re.id,params:m},...C]}),!0):!1}},Zn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,t)=>{var C;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId();let i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(C=t.value)!=null?C:i);const u=s.getUniverSheetInstance(a);if(!u)return!1;const d=u.getSheetBySheetId(i);if(!d||d.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const c={unitId:a,subUnitId:i,hidden:r.BooleanNumber.FALSE},m=xn(o,c),g=n.syncExecuteCommand(pe.id,c),v={unitId:a,subUnitId:i},h=n.syncExecuteCommand(Ye.id,v);return g&&h?(e.pushUndoRedo({unitID:a,undoMutations:[{id:pe.id,params:m}],redoMutations:[{id:pe.id,params:c}]}),!0):!1}},Qn=o=>{const t=new r.ObjectMatrix;return o.forEach(n=>{r.Range.foreach(n,(e,s)=>{t.setValue(e,s,1)})}),t.forValue((n,e)=>{const s=t.getValue(n-1,e);s&&t.setValue(n,e,s+1)}),t},eo=o=>{const t=o;return t.forValue((n,e)=>{const s=o.getValue(n-1,e);s&&t.setValue(n,e,s+1)}),t},to=o=>{const t={area:0},n=(e,s)=>t.area<e?(t.area=e,t.range=s,!0):!1;return o.forValue((e,s,a)=>{let i=1,u=a;n(i*u,{startRow:e-u+1,endRow:e,startColumn:s,endColumn:s});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:s};for(let l=s-1;l>=0&&o.getValue(e,l);l--){u=Math.min(o.getValue(e,l)||0,u),i++;const c=u*i;d.startColumn=l,d.startRow=e-u+1,n(c,d)}}),t},Es=(o,t)=>(r.Range.foreach(t,(n,e)=>{o.realDeleteValue(n,e);let s=n+1,a=o.getValue(s,e)||0;for(;a>1;)o.setValue(s,e,a-1),s+=1,a=o.getValue(s,e)||0}),o),$t=o=>{const t=[];let n=to(o);for(;n.area>0;)n.range&&(t.push(n.range),Es(o,n.range)),n=to(o);return t},Gt=o=>{const t=Qn(o);return $t(t)};class Ns{constructor(){L(this,"_matrix",new r.ObjectMatrix)}add(...t){return t.forEach(n=>{r.Range.foreach(n,(e,s)=>{this._matrix.setValue(e,s,1)})}),this}subtract(...t){return t.forEach(n=>{r.Range.foreach(n,(e,s)=>{this._matrix.realDeleteValue(e,s)})}),this}merge(){const t=eo(this._matrix);return $t(t)}}const Os=(o,t,n="")=>o.reduce((e,s)=>{const a=s&&s[t];return typeof a!="string"?(console.warn(s,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(s)):e[n].push(s),e)},{}),As=(o=0)=>{let t=o;return function(){return t++}},De=j.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,De);const Ps=(o,t)=>{const n=o.get(De),{values:e,unitId:s,subUnitId:a}=t,i=[],u=[],d=n.getModel(s,a)||void 0;Object.keys(e).forEach(c=>{e[c].ranges.forEach(g=>{r.Range.foreach(g,(v,h)=>{const C=n.getValue(s,a,v,h,d);C?i.push({pattern:C.pattern,type:C.type,row:v,col:h}):u.push({startColumn:h,endColumn:h,startRow:v,endRow:v})})})});const l=[];if(i.length){const c=lt(s,a,i);Object.keys(c.values).forEach(m=>{const g=c.values[m];g.ranges=Gt(g.ranges)}),l.push({id:ct.id,params:lt(s,a,i)})}return u.length&&l.push({id:zt.id,params:{unitId:s,subUnitId:a,ranges:u}}),l},ct={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{values:n,refMap:e}=t,s=o.get(De),a=t.unitId,i=t.subUnitId,u=Object.keys(n).reduce((d,l)=>{const c=e[l],m=n[l].ranges;return c&&d.push({...c,ranges:m}),d},[]);return s.setValues(a,i,u),!0}},zt={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{unitId:n,subUnitId:e,ranges:s}=t;return o.get(De).deleteValues(n,e,s),!0}},ks=(o,t)=>{const n=o.get(De),{ranges:e,unitId:s,subUnitId:a}=t,i=[],u=n.getModel(s,a)||void 0;if(e.forEach(l=>{r.Range.foreach(l,(c,m)=>{const g=n.getValue(s,a,c,m,u);g&&i.push({pattern:g.pattern,type:g.type,row:c,col:m})})}),!i.length)return[];const d=lt(s,a,i);return Object.keys(d.values).forEach(l=>{const c=d.values[l];c.ranges=Gt(c.ranges)}),[{id:ct.id,params:d}]},lt=(o,t,n)=>{const e=Os(n,"pattern"),s={},a={},i=As();return Object.keys(e).forEach(u=>{const d=e[u],l=d[0],c=i();s[c]={pattern:u,type:l.type},d.forEach(m=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(r.cellToRange(m.row,m.col))})}),{unitId:o,subUnitId:t,refMap:s,values:a}},no={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},oo={id:"sheet.command.insert-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return n.syncExecuteCommand(te.SetDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.RemoveDefinedNameMutation.id,params:s}],redoMutations:[{id:te.SetDefinedNameMutation.id,params:s}]}),!0):!1}},so={id:"sheet.command.remove-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return n.syncExecuteCommand(te.RemoveDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.SetDefinedNameMutation.id,params:s}],redoMutations:[{id:te.RemoveDefinedNameMutation.id,params:s}]}),!0):!1}},ro={id:"sheet.command.set-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);return t&&n.syncExecuteCommand(te.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:te.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},io={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},ao="maxCellsPerSheet",Bs=3e6;var Vs=Object.defineProperty,Ls=Object.getOwnPropertyDescriptor,js=(o,t,n,e)=>{for(var s=e>1?void 0:e?Ls(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Vs(t,n,s),s},uo=(o,t)=>(n,e)=>t(n,e,o);let mt=class extends r.Disposable{constructor(o,t){super(),this._commandService=o,this._configService=t,[W,Qe,wt,et,dn,nt,ot,Vt,Jn,In,fn,je,Ce,st,rt,Sn,vn,Le,Se,Rn,ye,Et,be,tt,Ve,Dt,_e,at,Ie,it,fe,Nt,Be,Un,F,Wn,Ln,jn,_n,Dn,We,bn,Tn,Nn,Fe,He,Lt,hs,An,we,Hn,Ue,x,Xn,kn,Ge,$e,En,Pn,Ot,Pt,J,zn,qe,Vn,Gn,$n,Fn,kt,Ye,Re,qn,pe,jt,dt,Yn,Ke,Ft,Me,Ht,re,Zn,ct,G,zt,no,oo,so,ro,io].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(ao,Bs)}};mt=js([r.OnLifecycle(r.LifecycleStages.Starting,mt),uo(0,r.ICommandService),uo(1,r.IConfigService)],mt);var Ws=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(o,t,n,e)=>{for(var s=e>1?void 0:e?Fs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Ws(t,n,s),s},$s=(o,t)=>(n,e)=>t(n,e,o);let gt=class extends r.Disposable{constructor(o){super(),this._commandService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==te.SetFormulaCalculationResultMutation.id)return;const t=o.params,{unitData:n,unitOtherData:e}=t,s=Object.keys(n),a=[];return s.forEach(u=>{const d=n[u];if(d==null)return!0;Object.keys(d).forEach(c=>{const m=d[c];if(m==null)return!0;const g={subUnitId:c,unitId:u,cellValue:m};a.push({id:x.id,params:g})})}),a.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};gt=Hs([r.OnLifecycle(r.LifecycleStages.Ready,gt),$s(0,r.ICommandService)],gt);var Gs=Object.defineProperty,zs=Object.getOwnPropertyDescriptor,xs=(o,t,n,e)=>{for(var s=e>1?void 0:e?zs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Gs(t,n,s),s},ht=(o,t)=>(n,e)=>t(n,e,o);let vt=class extends r.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._featureCalculationManagerService=t,this._currentUniverService=n,this._formulaDataModel=e}_initialize(){const o="test",t="workbook-01",n="sheet-0011",e={[t]:{[n]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[t]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:t,subUnitId:n,dependencyRanges:[{unitId:t,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:s})})}};vt=xs([r.OnLifecycle(r.LifecycleStages.Ready,vt),ht(0,r.ICommandService),ht(1,te.IFeatureCalculationManagerService),ht(2,r.IUniverInstanceService),ht(3,j.Inject(te.FormulaDataModel))],vt);const P={MoveRangeCommandId:cn,InsertRowCommandId:hn,InsertColCommandId:Cn,RemoveColCommandId:yn,RemoveRowCommandId:pn,DeleteRangeMoveLeftCommandId:ln,DeleteRangeMoveUpCommandId:mn,InsertRangeMoveDownCommandId:rs,InsertRangeMoveRightCommandId:gn,MoveColsCommandId:wn,MoveRowsCommandId:Mn};var k=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(k||{});const St=Number.MAX_SAFE_INTEGER,ge=o=>{const t={...o};return t.rangeType===r.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=St),t.rangeType===r.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=St),t.rangeType===r.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=St,t.startRow=0,t.endRow=St),t},oe=o=>({startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow}),Je=(o,t,n)=>{const e={...n},s={...t},a=(C,f)=>{const R=Math.max(C.start,f.start),w=Math.min(C.end,f.end);return w<R?null:{start:R,end:w}},i=C=>C.end-C.start+1,u=(C,f)=>({start:C.start-f.start,end:C.start-f.start+C.end-C.start}),d=(C,f)=>({start:f.start+C.start,end:f.start+C.start+C.end-C.start}),l=t.start>o.start;if(l){const C=Math.min(o.end,t.start)-o.start+1;s.start-=C,s.end-=C}const c=i(o),m=c,g=a(o,e),v=g&&i(g)>=i(e);if(o.end<e.start)e.start-=c,e.end-=c;else if(g){const C=i(g);if(v){const f=u(e,o),R=d(f,s);e.start=R.start,e.end=R.end}else g.start>o.start?l?(e.end-=C+c,e.start-=c):e.end-=C:l?e.end-=C:e.start>o.start&&e.end>o.end?(e.start-=c,e.end-=c+C):e.end-=C}const h=a(s,e);return v||(s.start<=e.start?(e.start+=m,e.end+=m):h&&(l?s.end<=e.start||s.start<=e.start&&s.end>=e.start?(e.start+=m,e.end+=m):s.start>=e.start&&s.start<=e.end&&(e.end+=m):e.start<s.start&&e.end>s.start?e.end+=m:(e.start>=s.end||e.start>=s.start&&e.start<=s.end)&&(e.end+=m,e.start+=m))),{step:e.start-n.start,length:i(e)-i(n)}},xt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const s=ge(n),a=ge(e),i=ge(t),u=Je({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:u.step||0,length:u.length||0}]},qs=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startRow:s}=n,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(l,c)=>{u.setValue(l,c,1)}),u.moveRows(s,i,a),r.queryObjectMatrix(u,l=>l===1)},qt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const s=ge(n),a=ge(e),i=ge(t),u=Je({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:u.step||0,length:u.length||0}]},Ys=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startColumn:s}=n,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,l)=>{u.setValue(d,l,1)}),u.moveColumns(s,i,a),r.queryObjectMatrix(u,d=>d===1)},co=(o,t)=>{var a,i;const n=(a=o.params)==null?void 0:a.toRange,e=(i=o.params)==null?void 0:i.fromRange;if(!n||!e)return[];const s=[];if(r.Rectangle.contains(n,t)&&s.push({type:k.Delete}),r.Rectangle.contains(e,t)){s.push({type:k.Delete});const u=r.Rectangle.getRelativeRange(t,e),d=r.Rectangle.getPositionRange(u,n);return[{type:k.Set,range:d}]}return s},Ks=(o,t)=>{var m,g;const n=(m=o.params)==null?void 0:m.toRange,e=(g=o.params)==null?void 0:g.fromRange;if(!n||!e)return[t];if(!r.Rectangle.intersects(e,t)&&!r.Rectangle.intersects(n,t))return[t];if(r.Rectangle.contains(e,t)){const v=r.Rectangle.getRelativeRange(t,e);return[r.Rectangle.getPositionRange(v,n)]}const s=new r.ObjectMatrix;r.Range.foreach(t,(v,h)=>{s.setValue(v,h,1)});const a=new r.ObjectMatrix,i=r.Rectangle.getIntersects(e,t);i&&r.Range.foreach(i,(v,h)=>{s.getValue(v,h)&&(s.setValue(v,h,void 0),a.setValue(v,h,1))});const u=n.startColumn-e.startColumn,d=n.startRow-e.startRow,l={startColumn:n.startColumn-u,endColumn:n.endColumn-u,startRow:n.startRow-d,endRow:n.endRow-d};return l&&r.Range.foreach(l,(v,h)=>{var R;const C=v+d,f=h+u;s.setValue(C,f,(R=a.getValue(v,h))!=null?R:0)}),r.queryObjectMatrix(s,v=>v===1)},Ee=(o,t)=>{const n=ge(o),e=ge(t),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn){const i=r.Rectangle.getIntersects(e,n);if(i)return{step:0,length:-s(i)}}if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn&&a(n)>=a(e))return null;if(e.startColumn>=n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn){const i=r.Rectangle.getIntersects(e,n);if(i){const u=-s(i);return{step:-(s(n)-s(i)),length:u}}}if(e.startColumn>n.endColumn)return{step:-s(n),length:0}}return{step:0,length:0}},Yt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(n,t);if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.HorizontalMove,step:i,length:u})}return e},Kt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(oe(n),oe(t));if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.VerticalMove,step:i,length:u})}return e},Ne=(o,t)=>{const n=ge(o),e=ge(t),s=a=>a.endColumn-a.startColumn+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn)return{step:0,length:s(n)};if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn>n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn||e.startColumn>=n.endColumn)return{step:s(n),length:0}}return{step:0,length:0}};function Js(o,t,n){const e=[];if(r.Rectangle.contains(t,n)&&e.push({type:k.Delete}),r.Rectangle.contains(o,n)){e.push({type:k.Delete});const s=r.Rectangle.getRelativeRange(n,o),a=r.Rectangle.getPositionRange(s,t);return[{type:k.Set,range:a}]}return e}const Jt=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(oe(n),oe(t)),{step:a,length:i}=s;return e.push({type:k.VerticalMove,step:a,length:i}),e},Xt=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(n,t),{step:a,length:i}=s;return e.push({type:k.HorizontalMove,step:a,length:i}),e},lo=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(oe(n),oe(t)),{step:a,length:i}=s;return e.push({type:k.VerticalMove,step:a,length:i}),e},Xs=(o,t)=>{var d;const n=(d=o.params)==null?void 0:d.range;if(!n)return[t];const e=n.endRow-n.startRow+1,s={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(l=>{r.Range.foreach(l,(c,m)=>{u.setValue(c,m,1)})}),i&&r.Range.foreach(i,(l,c)=>{u.setValue(l+e,c,1)}),r.queryObjectMatrix(u,l=>l===1)},mo=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(n,t),{step:a,length:i}=s;return e.push({type:k.HorizontalMove,step:a,length:i}),e},Zs=(o,t)=>{var d;const n=(d=o.params)==null?void 0:d.range;if(!n)return[t];const e=n.endColumn-n.startColumn+1,s={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(l=>{r.Range.foreach(l,(c,m)=>{u.setValue(c,m,1)})}),i&&r.Range.foreach(i,(l,c)=>{u.setValue(l,c+e,1)}),r.queryObjectMatrix(u,l=>l===1)},go=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(n,t);if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.HorizontalMove,step:i,length:u})}return e},Qs=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},s=n.endColumn-n.startColumn+1,a=r.Rectangle.getIntersects(n,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,m)=>{d.setValue(c,m-s,1)}),a&&r.Range.foreach(a,(c,m)=>{d.setValue(c,m-s,0)}),i.forEach(c=>{r.Range.foreach(c,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,c=>c===1)},ho=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(oe(n),oe(t));if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.VerticalMove,step:i,length:u})}return e},er=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},s=n.endRow-n.startRow+1,a=r.Rectangle.getIntersects(n,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,m)=>{d.setValue(c-s,m,1)}),a&&r.Range.foreach(a,(c,m)=>{d.setValue(c-s,m,0)}),i.forEach(c=>{r.Range.foreach(c,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,c=>c===1)},Oe=(o,t)=>{let n={...t};return o.forEach(e=>{switch(e.type){case k.Delete:{n=null;break}case k.HorizontalMove:{if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break}case k.Set:{n=e.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},tr=(o,t)=>{let n=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{n=go(t,o);break}case P.DeleteRangeMoveUpCommandId:{n=ho(t,o);break}case P.InsertColCommandId:{n=Xt(t,o);break}case P.InsertRangeMoveDownCommandId:{n=lo(t,o);break}case P.InsertRangeMoveRightCommandId:{n=mo(t,o);break}case P.InsertRowCommandId:{n=Jt(t,o);break}case P.MoveColsCommandId:{n=qt(t,o);break}case P.MoveRangeCommandId:{n=co(t,o);break}case P.MoveRowsCommandId:{n=xt(t,o);break}case P.RemoveColCommandId:{n=Yt(t,o);break}case P.RemoveRowCommandId:{n=Kt(t,o);break}}return Oe(n,o)},nr=(o,t)=>{let n=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return Qs(t,o);case P.DeleteRangeMoveUpCommandId:return er(t,o);case P.InsertRangeMoveDownCommandId:return Xs(t,o);case P.InsertRangeMoveRightCommandId:return Zs(t,o);case P.InsertColCommandId:{n=Xt(t,o);break}case P.InsertRowCommandId:{n=Jt(t,o);break}case P.MoveColsCommandId:return Ys(t,o);case P.MoveRangeCommandId:return Ks(t,o);case P.MoveRowsCommandId:return qs(t,o);case P.RemoveColCommandId:{n=Yt(t,o);break}case P.RemoveRowCommandId:{n=Kt(t,o);break}}return Oe(n,o)};function or(o,t){const{id:n,params:e}=t;let s={length:0,step:0,type:k.Unknown};switch(n){case Be.id:s.type=k.Delete;break;case _e.id:s=Je({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:o.startRow,end:o.endRow}),s.type=k.VerticalMove;break;case be.id:s=Je({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case Ie.id:s=Ee(e.range,o),s?s.type=k.HorizontalMove:s={step:0,length:0,type:k.Delete};break;case fe.id:s=Ee(oe(e.range),oe(o)),s?s.type=k.VerticalMove:s={step:0,length:0,type:k.Delete};break;case Se.id:s=Ne(oe(e.range),oe(o)),s.type=k.VerticalMove;break;case Ce.id:s=Ne(e.range,o),s.type=k.HorizontalMove;break;case Ve.id:s=Js(new r.ObjectMatrix(e.from).getRange(),new r.ObjectMatrix(e.to).getRange(),o);break}return s?Array.isArray(s)?Oe(s,o):Oe([s],o):o}var sr=Object.defineProperty,rr=Object.getOwnPropertyDescriptor,ir=(o,t,n,e)=>{for(var s=e>1?void 0:e?rr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&sr(t,n,s),s},Ct=(o,t)=>(n,e)=>t(n,e,o);const ar=r.createInterceptorKey("MERGE_REDO"),ur=r.createInterceptorKey("MERGE_UNDO");class dr extends r.Disposable{constructor(t,n,e,s){super(),this._unitId=t,this._subUnitId=n,this._range=e,this._callback=s}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const n=or(this._range,t);if(n&&r.Rectangle.equals(n,this._range))return!1;const e=this._range;this._range=n,this._callback(e,n)}}S.RefRangeService=class extends r.Disposable{constructor(n,e,s,a){super();L(this,"interceptor",new r.InterceptorManager({MERGE_REDO:ar,MERGE_UNDO:ur}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",cr());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=vo(this._univerInstanceService),a=So(this._univerInstanceService),d=((()=>{switch(n.id){case P.MoveColsCommandId:{const v=n.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],s,a)}case P.MoveRowsCommandId:{const v=n.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],s,a)}case P.MoveRangeCommandId:{const v=n;return this._checkRange([v.params.fromRange,v.params.toRange],s,a)}case P.InsertRowCommandId:{const C={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.InsertColCommandId:{const h=n.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.RemoveRowCommandId:{const C={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.RemoveColCommandId:{const h=n.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const h=n.params.range||Co(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([C],s,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const h=n.params.range||Co(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([C],s,a)}}})()||[]).reduce((v,h)=>{const C=h(n);return v.push(C),v},[]).reduce((v,h)=>{var C,f;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(C=h.preRedos)!=null?C:[]),v.preUndos.push(...(f=h.preUndos)!=null?f:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:c,undos:g,preRedos:l,preUndos:m}}})});L(this,"_checkRange",(n,e,s)=>{const a=fo(e,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(l=>{const c=i.get(l),m=this._serializer.deserialize(l);n.some(g=>r.Rectangle.intersects(g,m))&&c&&c.forEach(g=>{u.add(g)})}),[...u]}return[]});L(this,"registerRefRange",(n,e,s,a)=>{const i=s||vo(this._univerInstanceService),u=a||So(this._univerInstanceService),d=fo(i,u),l=this._serializer.serialize(n);let c=this._refRangeManagerMap.get(d);c||(c=new Map,this._refRangeManagerMap.set(d,c));const m=c.get(l);return m?m.add(e):c.set(l,new Set([e])),r.toDisposable(()=>{const g=c.get(l);g&&(g.delete(e),g.size||(c.delete(l),c.size||this._refRangeManagerMap.delete(d)))})});this._commandService=n,this._sheetInterceptorService=e,this._univerInstanceService=s,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(n,e,s,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(c=>{if(c.type!==r.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(c)}));const u=new dr(n,e,s,a);this._watchRanges.add(u);const d=r.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(d);return r.toDisposable(()=>{l.dispose(),d.dispose()})}},S.RefRangeService=ir([r.OnLifecycle(r.LifecycleStages.Ready,S.RefRangeService),Ct(0,r.ICommandService),Ct(1,j.Inject(S.SheetInterceptorService)),Ct(2,j.Inject(r.IUniverInstanceService)),Ct(3,j.Inject(S.SelectionManagerService))],S.RefRangeService);function vo(o){return o.getCurrentUniverSheetInstance().getUnitId()}function So(o){return o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Co(o){return o.getSelectionRanges()||[]}function fo(o,t){return`${o}_${t}`}function cr(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:n=>{const e=o.reduce((a,i,u)=>(a[String(u)]=i,a),{});return n.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:n=>o.reduce((e,s,a)=>{const i=n[s];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var lr=Object.defineProperty,mr=Object.getOwnPropertyDescriptor,gr=(o,t,n,e)=>{for(var s=e>1?void 0:e?mr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&lr(t,n,s),s},ze=(o,t)=>(n,e)=>t(n,e,o);const hr=[Ce.id,Se.id,Ie.id,fe.id],vr=[_e.id,be.id];function Io(o,t){let n=o;if(t!==void 0){const e=[];for(let s=0;s<n.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=n[s];if(t===r.Dimension.ROWS)for(let l=a;l<=i;l++){const c={startRow:l,endRow:l,startColumn:u,endColumn:d};e.push(c)}else if(t===r.Dimension.COLUMNS)for(let l=u;l<=d;l++){const c={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(c)}}n=e}return n}S.MergeCellController=class extends r.Disposable{constructor(n,e,s,a,i,u){super();L(this,"disposableCollection",new r.DisposableCollection);this._commandService=n,this._refRangeService=e,this._univerInstanceService=s,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case Qe.id:case et.id:{const s=n._univerInstanceService.getCurrentUniverSheetInstance(),a=s.getUnitId(),i=s.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,l=n._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>d.some(g=>r.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:l},g=ne(n._injector,m),v=[{id:F.id,params:m}],h=[{id:W.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,e,s){switch(n.id){case P.MoveColsCommandId:{const a=n.params;return this._handleMoveColsCommand(a,e,s)}case P.MoveRowsCommandId:{const a=n.params;return this._handleMoveRowsCommand(a,e,s)}case Le.id:{const a=n.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertRowCommand(a,i,u)}case je.id:{const a=n.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertColCommand(a,i,u)}case at.id:{const a=n.params;return this._handleRemoveColCommand(a,e,s)}case it.id:{const a=n.params;return this._handleRemoveRowCommand(a,e,s)}case tt.id:{const a=n.params;return this._handleMoveRangeCommand(a,e,s)}case rt.id:{const a=n.params;return this._handleInsertRangeMoveRightCommand(a,e,s)}case st.id:{const a=n.params;return this._handleInsertRangeMoveDownCommand(a,e,s)}case ot.id:{const a=n.params;return this._handleDeleteRangeMoveUpCommand(a,e,s)}case nt.id:{const a=n.params;return this._handleDeleteRangeMoveLeftCommand(a,e,s)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(a,i)=>{const u=this._univerInstanceService.getUniverSheetInstance(a);if(!u)return;const d=u==null?void 0:u.getSheetBySheetId(i);if(!d)return;this.disposableCollection.dispose();const l=d.getMergeData(),c=m=>this.refRangeHandle(m,a,i);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,c,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===kt.id){const i=a.params,u=i.subUnitId,d=i.unitId;if(!u||!d)return;n(d,u)}if(a.id===W.id){const i=a.params,u=i.subUnitId,d=i.unitId;if(!u||!d)return;n(i.unitId,i.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e.getActiveSheet();n(e.getUnitId(),s.getSheetId())}_handleMoveRowsCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=n,{startRow:m,endRow:g}=c;if(u.forEach(C=>{if(m<=C.startRow&&g>=C.endRow){d.ranges.push(C);const f=xt({id:P.MoveRowsCommandId,params:n},C),R=Oe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const v=ne(this._injector,d),h=ce(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:v}]}}_handleMoveColsCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=n,{startColumn:m,endColumn:g}=c;if(u.forEach(C=>{if(m<=C.startColumn&&g>=C.endColumn){d.ranges.push(C);const f=qt({id:P.MoveColsCommandId,params:n},C),R=Oe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const v=ne(this._injector,d),h=ce(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:v}]}}_handleMoveRangeCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(h=>r.Rectangle.intersects(h,n.fromRange)),l=u.filter(h=>r.Rectangle.intersects(h,n.toRange)),c=d.map(h=>r.Rectangle.getRelativeRange(h,n.fromRange)).map(h=>r.Rectangle.getPositionRange(h,n.toRange)),m=Io(c).filter(h=>!u.some(C=>r.Rectangle.equals(h,C))),g=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:m}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:d}}];return{redos:g,undos:v}}_handleInsertRowCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const{range:u}=n,{startRow:d,endRow:l}=u,c=r.Tools.deepClone(i.getMergeData()).reduce((w,I)=>(d>I.startRow&&d<=I.endRow&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((w,I)=>{if(d>I.startRow&&d<=I.endRow){const M=l-d+1;I.endRow+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:v}];return{redos:f,undos:R}}_handleInsertColCommand(n,e,s){const{range:a}=n,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const u=me(i,s);if(!u)return this._handleNull();const{startColumn:d,endColumn:l}=a,c=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>(d>I.startColumn&&d<=I.endColumn&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>{if(d>I.startColumn&&d<=I.endColumn){const M=l-d+1;I.endColumn+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:v}];return{redos:f,undos:R}}_handleRemoveColCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const{range:u}=n,{startColumn:d,endColumn:l}=u,c=r.Tools.deepClone(i.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(u,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(u,p)){if(d<=p.startColumn&&l>=p.endColumn)return M;d>=p.startColumn&&l<=p.endColumn?p.endColumn-=l-d+1:d<p.startColumn?(p.startColumn=d,p.endColumn-=l-d+1):l>p.endColumn&&(p.endColumn=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:v}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleRemoveRowCommand(n,e,s){const{range:a}=n,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const u=me(i,s);if(!u)return this._handleNull();const{startRow:d,endRow:l}=a,c=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(a,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(a,p)){if(d<=p.startRow&&l>=p.endRow)return M;d>=p.startRow&&l<=p.endRow?p.endRow-=l-d+1:d<p.startRow?(p.startRow=d,p.endRow-=l-d+1):l>p.endRow&&(p.endRow=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:v}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxColumns()-1,l=i.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:v},{id:F.id,params:C}]}}_handleInsertRangeMoveDownCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxRows()-1,l=i.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:b}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const T=b-I+1;m.push({startRow:w.startRow+T,startColumn:w.startColumn,endRow:w.endRow+T,endColumn:w.endColumn})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:v},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxRows()-1,l=i.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:b}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const T=b-I+1,N=r.Rectangle.moveVertical(w,-T);m.push(N)}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:v},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxColumns()-1,l=i.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:v},{id:F.id,params:C}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(vr.includes(n.id)){if(!n.params)return;const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const s=e.getSheetBySheetId(n.params.subUnitId);if(!s)return;const{sourceRange:a,targetRange:i}=n.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=u?a.startRow:a.startColumn,c=u?i.startRow:i.startColumn,m=s.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p}=f;r.Rectangle.intersects(f,a)||(u?l<R&&c>w?(R-=d,w-=d):l>w&&c<=R&&(R+=d,w+=d):l<I&&c>M?(I-=d,M-=d):l>M&&c<=I&&(I+=d,M+=d)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p})}),s.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=n.params,C=f=>this.refRangeHandle(f,v,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,C,v,h))})}if(hr.includes(n.id)){const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const s=e.getSheetBySheetId(n.params.subUnitId);if(!s)return;const a=s.getConfig().mergeData,i=n.params;if(!i)return;const{range:u}=i,d=n.id.includes("row"),l=n.id.includes("insert"),c=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-c+1,v=[];a.forEach(R=>{let{startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:b}=R;l?d?c<=w&&(w+=g,I+=g):c<=M&&(M+=g,p+=g):d?m<w&&(w-=g,I-=g):m<M&&(M-=g,p-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:b})}),s.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:C}=n.params,f=R=>this.refRangeHandle(R,h,C);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,C))})}}))}},S.MergeCellController=gr([r.OnLifecycle(r.LifecycleStages.Steady,S.MergeCellController),ze(0,j.Inject(r.ICommandService)),ze(1,j.Inject(S.RefRangeService)),ze(2,j.Inject(r.IUniverInstanceService)),ze(3,j.Inject(j.Injector)),ze(4,j.Inject(S.SheetInterceptorService)),ze(5,j.Inject(S.SelectionManagerService))],S.MergeCellController);function le(o,t){return t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance()}function me(o,t){return t?o.getSheetBySheetId(t):o.getActiveSheet()}const Sr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Ro={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Cr=Object.defineProperty,fr=Object.getOwnPropertyDescriptor,Ir=(o,t,n,e)=>{for(var s=e>1?void 0:e?fr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Cr(t,n,s),s},ft=(o,t)=>(n,e)=>t(n,e,o);const Mo="SHEET_NUMFMT_PLUGIN",Rr=24*60*60*1e3;S.NumfmtService=class extends r.Disposable{constructor(n,e,s,a){super();L(this,"_numfmtModel",new Map);L(this,"_refAliasModel",new Map);L(this,"_modelReplace$",new Pe.Subject);L(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=n,this._resourceManagerService=e,this._univerInstanceService=s,this._logService=a,this._initModel(),this.disposeWithMe(r.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const n=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,Mo,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,u)=>{const{model:d,refModel:l}=u;if(d){const c=Object.keys(d).reduce((m,g)=>(m.set(g,new r.ObjectMatrix(d[g])),m),new Map);this._numfmtModel.set(i,c)}l&&this._refAliasModel.set(i,new r.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,Mo)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(s=>n(s))}_toJson(n){const e=this._numfmtModel.get(n),s=this._refAliasModel.get(n);if(!e||!s)return"";const a=[...e.keys()].reduce((d,l)=>{const c=e.get(l);return d[l]=c.toJSON(),d},{}),i=s.getValues().filter(d=>d.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(n){try{return JSON.parse(n)}catch{return{model:{},refModel:[]}}}_setValue(n,e,s,a,i){let u=this.getModel(n,e);if(!u){const d=this._numfmtModel.get(n)||new Map,l=d.get(e)||new r.ObjectMatrix;d.set(e,l),this._numfmtModel.set(n,d),u=l}if(i)u.setValue(s,a,i);else if(u.realDeleteValue(s,a),!u.getSizeOf()){const l=this._numfmtModel.get(n);l==null||l.delete(e)}}_getUniqueRefId(n){const e=this._refAliasModel.get(n);if(!e)return"0";const s=e.getKeyMap("i");return`${Math.max(...s.map(i=>Number(i||0)),0)+1}`}getValue(n,e,s,a,i){const u=i||this.getModel(n,e);if(!u)return null;const d=this._refAliasModel.get(n),l=u.getValue(s,a);if(l&&d){const c=d.getValue(l==null?void 0:l.i,["i"]);return c?{pattern:c.pattern,type:c.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(n,e,s){let a=this._refAliasModel.get(n);const i=this.getModel(n,e);a||(a=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,a)),s.forEach(u=>{r.Range.foreach(u,(d,l)=>{const c=this.getValue(n,e,d,l,i);if(c&&c.pattern){const m=a.getValue(c.pattern,["pattern"]);m&&m.count--}this._setValue(n,e,d,l,null)})})}setValues(n,e,s){const a=this.getModel(n,e);let i=this._refAliasModel.get(n);i||(i=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,i)),s.forEach(u=>{let d=i.getValue(u.pattern,["pattern"]);d||(d={count:0,i:this._getUniqueRefId(n),pattern:u.pattern,type:s[0].type},i.addValue(d)),u.ranges.forEach(l=>{r.Range.foreach(l,(c,m)=>{if(a){const g=this.getValue(n,e,c,m,a);if(g&&g.pattern){const v=i.getValue(g.pattern,["pattern"]);v&&v.count--}}this._setValue(n,e,c,m,{i:d.i}),d.count++})})})}getModel(n,e){const s=this._numfmtModel.get(n);return s==null?void 0:s.get(e)}getRefModel(n){return this._refAliasModel.get(n)}serialTimeToTimestamp(n,e=!0){const s=new Date("1900-01-01").getTime();return(n-(e?25569:24107))*Rr+s}},S.NumfmtService=Ir([ft(0,j.Inject(r.ICommandService)),ft(1,j.Inject(r.IResourceManagerService)),ft(2,j.Inject(r.IUniverInstanceService)),ft(3,j.Inject(r.ILogService))],S.NumfmtService);const wo="univer.sheet.editable";class Ae extends r.PermissionPoint{constructor(n,e){super();L(this,"id",wo);L(this,"value",!0);L(this,"unitID");this._unitId=n,this._subUnitId=e,this.unitID=n,this.id=`${wo}_${n}_${e}`}}var Mr=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,pr=(o,t,n,e)=>{for(var s=e>1?void 0:e?wr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Mr(t,n,s),s},Zt=(o,t)=>(n,e)=>t(n,e,o);S.SheetPermissionService=class extends r.Disposable{constructor(t,n,e){super(),this._permissionService=t,this._univerInstanceService=n,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),n=t.getUnitId();t.getSheets().forEach(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.addPermissionPoint(t.getUnitId(),a)}),this.disposeWithMe(r.toDisposable(t.sheetCreated$.subscribe(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.addPermissionPoint(t.getUnitId(),a)}))),this.disposeWithMe(r.toDisposable(t.sheetDisposed$.subscribe(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.deletePermissionPoint(t.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(ke.PERMISSION,{priority:99,handler:(t,n,e)=>{const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=s==null?void 0:s.getActiveSheet(),i=s==null?void 0:s.getUnitId(),u=a==null?void 0:a.getSheetId();if(!i||!u)return!1;switch(n.id){case Ue.id:return this.getSheetEditable(i,u)}return e()}}))}getEditable$(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),u=new Ae(s,i);return this._permissionService.composePermission$(s,[r.UniverEditablePermissionPoint,u.id]).pipe(Do.map(([d,l])=>{const c=d.value&&l.value,m=r.getTypeFromPermissionItemList([d,l]);return{value:c,status:m}}))}getSheetEditable(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),u=new Ae(s,i);return this._permissionService.composePermission(s,[r.UniverEditablePermissionPoint,u.id]).every(d=>d.value)}setSheetEditable(t,n,e){const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=n||s.getUnitId(),i=s.getActiveSheet(),u=e||i.getSheetId(),d=new Ae(a,u);this._permissionService.updatePermissionPoint(a,d.id,t)}},S.SheetPermissionService=pr([r.OnLifecycle(r.LifecycleStages.Ready,S.SheetPermissionService),Zt(0,j.Inject(r.IPermissionService)),Zt(1,j.Inject(r.IUniverInstanceService)),Zt(2,j.Inject(S.SheetInterceptorService))],S.SheetPermissionService);function yr(o){const t=o.get(r.IUniverInstanceService),n=o.get(S.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),s=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new Pe.Observable(a=>{var u;const i=(u=n.getEditable$(e,s))==null?void 0:u.subscribe(d=>{a.next(!d.value)});return()=>{i==null||i.unsubscribe()}})}var Ur=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,br=(o,t,n,e)=>{for(var s=e>1?void 0:e?_r(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Ur(t,n,s),s},It=(o,t)=>(n,e)=>t(n,e,o);const po="SHEET_DEFINED_NAME_PLUGIN";let Rt=class extends r.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const o=s=>{const a=this._definedNamesService.getDefinedNameMap(s);return a?JSON.stringify(a):""},t=s=>{if(!s)return{};try{return JSON.parse(s)}catch{return{}}},n=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,po,{toJson:i=>o(i),parseJson:i=>t(i),onChange:(i,u)=>{this._definedNamesService.registerDefinedNames(i,u)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._resourceManagerService.disposePluginResource(a,po)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();n(e)}};Rt=br([r.OnLifecycle(r.LifecycleStages.Ready,Rt),It(0,r.ICommandService),It(1,r.IUniverInstanceService),It(2,te.IDefinedNamesService),It(3,r.IResourceManagerService)],Rt);var Tr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Er=(o,t,n,e)=>{for(var s=e>1?void 0:e?Dr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Tr(t,n,s),s},Qt=(o,t)=>(n,e)=>t(n,e,o);const Nr="sheet";S.UniverSheetsPlugin=(en=class extends r.Plugin{constructor(t,n,e,s){super(Nr),this._config=t,this._commandService=n,this._localeService=e,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:Ro})}_initializeDependencies(t){var e;const n=[[Te],[S.SelectionManagerService],[S.RefRangeService],[S.SheetPermissionService],[De,{useClass:S.NumfmtService}],[S.SheetInterceptorService],[mt],[S.MergeCellController],[Rt]];(e=this._config)!=null&&e.notExecuteFormula||n.push([gt],[vt]),n.forEach(s=>{t.add(s)})}},L(en,"type",r.PluginType.Sheet),en),S.UniverSheetsPlugin=Er([Qt(1,r.ICommandService),Qt(2,j.Inject(r.LocaleService)),Qt(3,j.Inject(j.Injector))],S.UniverSheetsPlugin);const Or=[Me.id,re.id,Ft.id,Re.id,Ye.id,_e.id,be.id,Fe.id,He.id,Ge.id,$e.id,Ce.id,Se.id,Ie.id,fe.id],Ar=[x.id,Ve.id,F.id,W.id],Pr=1.5,kr="rgba(255,255,255, 0.01)";function Br(o){const t=o.getCurrentTheme(),n=new r.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Vr(o){const{rangeWithCoord:t,primaryWithCoord:n,style:e}=o,s={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return n!=null&&(s.primary=yo(n)),s}function yo(o){const{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:s}=o,{startRow:a,startColumn:i,endRow:u,endColumn:d}=o.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Lr(o,t,n){const e=Eo.getCellInfoInMergeData(o,t,n),s=r.makeCellRangeToRangeData(e);if(s)return{range:s,primary:e,style:null}}const jr=(o,t,n)=>{const s=o.get(S.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(s){const c=s[(s==null?void 0:s.length)-1].primary;if(c){const{actualColumn:m,actualRow:g}=c;let{startRow:v,startColumn:h,endRow:C,endColumn:f}=i[i.length-1];if(a===r.Dimension.COLUMNS){const M=n.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);M&&(f=M.endColumn,v=M.startRow,C=M.endRow)}else if(a===r.Dimension.ROWS){const M=n.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);M&&(C=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:v,startColumn:h,endRow:C,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},w=s.map((M,p,b)=>({range:M.range,style:null,primary:p===b.length-1?R:null})),I={unitId:u,subUnitId:d,pluginName:Y,selections:w};return{id:G.id,params:I}}return null}return null},Wr=(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections(),{unitId:s,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:s,subUnitId:a,pluginName:Y,selections:[...e]};return{id:G.id,params:d}}return null};S.AddMergeRedoSelectionsOperationFactory=jr,S.AddMergeUndoMutationFactory=ce,S.AddMergeUndoSelectionsOperationFactory=Wr,S.AddWorksheetMergeMutation=W,S.BorderStyleManagerService=Te,S.COMMAND_LISTENER_SKELETON_CHANGE=Or,S.COMMAND_LISTENER_VALUE_CHANGE=Ar,S.ClearSelectionAllCommand=Qe,S.ClearSelectionContentCommand=wt,S.ClearSelectionFormatCommand=et,S.CopySheetCommand=dn,S.DeleteRangeMoveLeftCommand=nt,S.DeleteRangeMoveUpCommand=ot,S.DeltaColumnWidthCommand=Vt,S.DeltaRowHeightCommand=Jn,S.EffectRefRangId=P,S.EmptyMutation=no,S.INTERCEPTOR_POINT=ke,S.INumfmtService=De,S.InsertColAfterCommand=In,S.InsertColBeforeCommand=fn,S.InsertColCommand=je,S.InsertColMutation=Ce,S.InsertColMutationUndoFactory=Tt,S.InsertDefinedNameCommand=oo,S.InsertRangeMoveDownCommand=st,S.InsertRangeMoveRightCommand=rt,S.InsertRowAfterCommand=Sn,S.InsertRowBeforeCommand=vn,S.InsertRowCommand=Le,S.InsertRowMutation=Se,S.InsertRowMutationUndoFactory=bt,S.InsertSheetCommand=Rn,S.InsertSheetMutation=ye,S.InsertSheetUndoMutationFactory=pt,S.MAX_CELL_PER_SHEET_KEY=ao,S.MoveColsCommand=Et,S.MoveColsMutation=be,S.MoveRangeCommand=tt,S.MoveRangeMutation=Ve,S.MoveRowsCommand=Dt,S.MoveRowsMutation=_e,S.NORMAL_SELECTION_PLUGIN_NAME=Y,S.OperatorType=k,S.RangeMergeUtil=Ns,S.RemoveColCommand=at,S.RemoveColMutation=Ie,S.RemoveDefinedNameCommand=so,S.RemoveMergeUndoMutationFactory=ne,S.RemoveNumfmtMutation=zt,S.RemoveRowCommand=it,S.RemoveRowMutation=fe,S.RemoveSheetCommand=Nt,S.RemoveSheetMutation=Be,S.RemoveSheetUndoMutationFactory=un,S.RemoveWorksheetMergeCommand=Un,S.RemoveWorksheetMergeMutation=F,S.ResetBackgroundColorCommand=Wn,S.ResetTextColorCommand=Ln,S.SELECTION_CONTROL_BORDER_BUFFER_COLOR=kr,S.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Pr,S.ScrollToCellOperation=io,S.SelectionMoveType=nn,S.SetBackgroundColorCommand=jn,S.SetBoldCommand=fs,S.SetBorderBasicCommand=_n,S.SetBorderColorCommand=Dn,S.SetBorderCommand=We,S.SetBorderPositionCommand=bn,S.SetBorderStyleCommand=Tn,S.SetColHiddenCommand=Nn,S.SetColHiddenMutation=Fe,S.SetColVisibleMutation=He,S.SetColWidthCommand=Lt,S.SetDefinedNameCommand=ro,S.SetFontFamilyCommand=ws,S.SetFontSizeCommand=ps,S.SetFrozenCommand=An,S.SetFrozenMutation=we,S.SetFrozenMutationFactory=At,S.SetHorizontalTextAlignCommand=Hn,S.SetItalicCommand=Is,S.SetNumfmtMutation=ct,S.SetRangeValuesCommand=Ue,S.SetRangeValuesMutation=x,S.SetRangeValuesUndoMutationFactory=he,S.SetRowHeightCommand=Xn,S.SetRowHiddenCommand=kn,S.SetRowHiddenMutation=Ge,S.SetRowVisibleMutation=$e,S.SetSelectedColsVisibleCommand=En,S.SetSelectedRowsVisibleCommand=Pn,S.SetSelectionsOperation=G,S.SetSpecificColsVisibleCommand=Ot,S.SetSpecificRowsVisibleCommand=Pt,S.SetStrikeThroughCommand=Ms,S.SetStyleCommand=J,S.SetTabColorCommand=zn,S.SetTabColorMutation=qe,S.SetTextColorCommand=Vn,S.SetTextRotationCommand=Gn,S.SetTextWrapCommand=$n,S.SetUnderlineCommand=Rs,S.SetVerticalTextAlignCommand=Fn,S.SetWorksheetActivateCommand=kt,S.SetWorksheetActiveOperation=Ye,S.SetWorksheetColWidthMutation=Re,S.SetWorksheetColWidthMutationFactory=Bt,S.SetWorksheetHideCommand=qn,S.SetWorksheetHideMutation=pe,S.SetWorksheetNameCommand=jt,S.SetWorksheetNameMutation=dt,S.SetWorksheetOrderCommand=Yn,S.SetWorksheetOrderMutation=Ke,S.SetWorksheetRowAutoHeightMutation=Ft,S.SetWorksheetRowAutoHeightMutationFactory=Ds,S.SetWorksheetRowHeightMutation=Me,S.SetWorksheetRowIsAutoHeightCommand=Ht,S.SetWorksheetRowIsAutoHeightMutation=re,S.SetWorksheetShowCommand=Zn,S.SheetEditablePermission=Ae,S.alignToMergedCellsBorders=xe,S.convertPrimaryWithCoordToPrimary=yo,S.convertSelectionDataToRange=Vr,S.createTopMatrixFromMatrix=eo,S.createTopMatrixFromRanges=Qn,S.enUS=Sr,S.factoryRemoveNumfmtUndoMutation=ks,S.factorySetNumfmtUndoMutation=Ps,S.findAllRectangle=$t,S.followSelectionOperation=ve,S.getAddMergeMutationRangeByType=Io,S.getCellAtRowCol=Zo,S.getCurrentSheetDisabled$=yr,S.getInsertRangeMutations=Ut,S.getNormalSelectionStyle=Br,S.getPrimaryForRange=Z,S.getRemoveRangeMutations=_t,S.handleBaseInsertRange=Ne,S.handleBaseMoveRowsCols=Je,S.handleBaseRemoveRange=Ee,S.handleCommonDefaultRangeChangeWithEffectRefCommands=nr,S.handleDefaultRangeChangeWithEffectRefCommands=tr,S.handleDeleteRangeMoveLeft=go,S.handleDeleteRangeMoveUp=ho,S.handleDeleteRangeMutation=ts,S.handleIRemoveCol=Yt,S.handleIRemoveRow=Kt,S.handleInsertCol=Xt,S.handleInsertRangeMoveDown=lo,S.handleInsertRangeMoveRight=mo,S.handleInsertRangeMutation=es,S.handleInsertRow=Jt,S.handleMoveCols=qt,S.handleMoveRange=co,S.handleMoveRows=xt,S.rangeMerge=Gt,S.rotateRange=oe,S.runRefRangeMutations=Oe,S.setEndForRange=Qo,S.transformCellDataToSelectionData=Lr,S.transformCellsToRange=lt,S.zhCN=Ro,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
|