@univerjs/sheets 0.1.6 → 0.1.8
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 +3647 -3381
- package/lib/types/basics/const/command-listener-const.d.ts +3 -0
- package/lib/types/basics/numfmt-kit.d.ts +41 -0
- package/lib/types/basics/selection.d.ts +1 -1
- package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +1 -1
- package/lib/types/commands/commands/insert-row-col.command.d.ts +2 -2
- package/lib/types/commands/commands/remove-row-col.command.d.ts +1 -1
- package/lib/types/commands/commands/utils/selection-utils.d.ts +10 -1
- package/lib/types/commands/commands/utils/target-util.d.ts +33 -0
- package/lib/types/commands/mutations/__tests__/create-command-test-bed.d.ts +1 -1
- package/lib/types/commands/mutations/numfmt-mutation.d.ts +0 -3
- package/lib/types/commands/utils/handle-merge-operation.d.ts +1 -1
- package/lib/types/controllers/__tests__/util.d.ts +1 -1
- package/lib/types/controllers/calculate-result-apply.controller.d.ts +11 -2
- package/lib/types/controllers/feature-calculation.controller.d.ts +2 -2
- package/lib/types/index.d.ts +7 -4
- package/lib/types/locale/zh-CN.d.ts +10 -2
- package/lib/types/services/__tests__/util.d.ts +1 -1
- package/lib/types/services/numfmt/numfmt.service.d.ts +5 -25
- package/lib/types/services/numfmt/type.d.ts +1 -17
- package/lib/types/services/permission/sheet-permission.service.d.ts +7 -8
- package/lib/types/services/permission/tool.d.ts +1 -2
- package/lib/types/services/ref-range/__tests__/{util.d.ts → __testing__.d.ts} +1 -1
- 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/types/services/sheet-interceptor/__tests__/create-core-test-bed.d.ts +1 -1
- package/lib/types/services/sheet-interceptor/interceptor-const.d.ts +3 -3
- package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +3 -3
- package/lib/types/services/sheet-interceptor/utils/interceptor.d.ts +7 -0
- package/lib/types/sheets-plugin.d.ts +3 -2
- package/lib/umd/index.js +2 -2
- package/package.json +15 -13
- package/lib/types/commands/commands/copy-to-worksheet.command.d.ts +0 -9
- package/lib/types/commands/mutations/set-worksheet-config.mutation.d.ts +0 -13
- package/lib/types/commands/utils/get-target.d.ts +0 -18
- /package/lib/types/{services/__tests__/sheet-permission.spec.d.ts → basics/__tests__/numfmt-kit.spec.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(h,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("@univerjs/engine-numfmt"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","@univerjs/engine-numfmt","rxjs/operators","@univerjs/engine-render"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.UniverEngineNumfmt,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,r,z,ke,se,Po,sn,ko){"use strict";var Yr=Object.defineProperty;var Kr=(h,r,z)=>r in h?Yr(h,r,{enumerable:!0,configurable:!0,writable:!0,value:z}):h[r]=z;var j=(h,r,z)=>(Kr(h,typeof r!="symbol"?r+"":r,z),z);var yt;var Ao=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Lo=(n,t,o,e)=>{for(var s=e>1?void 0:e?Vo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Ao(t,o,s),s},Bo=(n,t)=>(o,e)=>t(o,e,n);const X="normalSelectionPluginName";var rn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(rn||{});h.SelectionManagerService=class{constructor(t){j(this,"_selectionInfo",new Map);j(this,"_currentSelection",null);j(this,"_selectionMoveStart$",new ke.Subject);j(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());j(this,"_selectionMoving$",new ke.Subject);j(this,"selectionMoving$",this._selectionMoving$.asObservable());j(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));j(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());j(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},a)=>e===a?!1:o.startRow<=s.endRow&&o.endRow>=s.startRow&&o.startColumn<=s.endColumn&&o.endColumn>=s.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:s}=t;return(i=(a=this._selectionInfo.get(o))==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 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: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 c=d.get(a);c==null&&(c=[],d.set(a,c)),c.push(...i)}o&&this._refresh({pluginName:e,unitId:s,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:s,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(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 o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}},h.SelectionManagerService=Lo([Bo(0,z.Inject(r.ThemeService))],h.SelectionManagerService);const jo=r.createInterceptorKey("CELL_CONTENT"),Wo=r.createInterceptorKey("ROW_FILTERED"),Qe={CELL_CONTENT:jo,ROW_FILTERED:Wo};var Fo=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$o=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ho(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Fo(t,o,s),s},Go=(n,t)=>(o,e)=>t(o,e,n);h.SheetInterceptorService=class extends r.Disposable{constructor(o){super();j(this,"_interceptorsByName",new Map);j(this,"_commandInterceptors",[]);j(this,"_workbookDisposables",new Map);j(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Qe.CELL_CONTENT,{priority:-1,handler(e,s){const a=s.worksheet.getCellRaw(s.row,s.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,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,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(s=>s.getMutations(o));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(o,e){const s=o;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,c;return((d=u.priority)!=null?d:0)-((c=i.priority)!=null?c: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(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(c=>{const l=new r.DisposableCollection;a._worksheetDisposables.set(an(s,u),l),l.add(c.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(Qe.CELL_CONTENT)(u.getCellRaw(m,g),{unitId:s,subUnitId:d,row:m,col:g,worksheet:u,workbook:o})}})),l.add(c.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(Qe.ROW_FILTERED)(!1,{unitId:s,subUnitId:d,row:m,workbook:o,worksheet:u})}}))})};o.getSheets().forEach(u=>i(u)),e.add(r.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),e.add(r.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u)))),e.add(r.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),this._workbookDisposables.set(s,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),s=this._workbookDisposables.get(e);s&&(s.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const s=an(o,e),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},h.SheetInterceptorService=$o([r.OnLifecycle(r.LifecycleStages.Starting,h.SheetInterceptorService),Go(0,r.IUniverInstanceService)],h.SheetInterceptorService);function an(n,t){return`${n}|${t.getSheetId()}`}const fe=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),c=i.getStyles(),l=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,f,v)=>{const S=r.Tools.deepClone(d==null?void 0:d.getValue(g,f))||{},C=c.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,l.setValue(g,f,zo(S))}),{...t,options:{},cellValue:l.getMatrix()}};function zo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const q={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),c=i.getStyles();return new r.ObjectMatrix(o).forValue((m,g,f)=>{if(!f)d==null||d.setValue(m,g,{});else{const v=d.getValue(m,g)||{},S=f.t===r.CellValueType.FORCE_STRING?f.t:f.v!==void 0?un(f.v,f.t):un(v.v,v.t);if(f.f!==void 0&&(v.f=f.f),f.si!==void 0&&(v.si=f.si),f.p!==void 0&&(v.p=f.p),f.v!==void 0&&(v.v=S===r.CellValueType.NUMBER?Number(f.v):S===r.CellValueType.BOOLEAN?qo(f.v)?1:0:f.v),v.v!==void 0&&(v.t=S),f.s!==void 0){const C=c.getStyleByCell(v);C==null&&delete v.s,typeof f.s=="string"&&(f.s=c.get(f.s));const I=et(C,f.s?f.s:null);I&&r.Tools.removeNull(I),r.Tools.isEmptyObject(I)?delete v.s:v.s=c.setValue(I),!f.p&&v.p&&Xo(v.p,f.s?f.s:null)}f.custom!==void 0&&(v.custom=f.custom),d.setValue(m,g,r.Tools.removeNull(v))}}),!0}};function un(n,t){return n===null?null:typeof n=="string"?r.isSafeNumeric(n)?(+n==0||+n==1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:r.isBooleanString(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 qo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(r.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function xo(n,t){return Yo(n,t)}function Yo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Ko(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Ko(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function et(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=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 dn(n,t){return n.some(o=>o.startIndex===t)?dn(n,t+1):t}function Xo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],s=((i=n.body)==null?void 0:i.paragraphs)||[];for(const u of n.body.textRuns){const{st:d,ed:c,ts:l={}}=u;if(o<d){const g={st:o,ed:d},f=et({},t,!0);f&&r.Tools.removeNull(f),r.Tools.isEmptyObject(f)||(g.ts=f),e.push(g)}const m=et(l,t,!0);m&&r.Tools.removeNull(m),r.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=dn(s,c)}const a=n.body.dataStream.endsWith(`\r
|
|
2
|
+
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const u={st:o,ed:a},d=et({},t,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=r.normalizeTextRuns(e)}const tt={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(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],f={subUnitId:c,unitId:u,cellValue:Jo(l)},v=fe(n,f);m.push({id:q.id,params:f}),g.push({id:q.id,params:v});const S=a.onCommandExecute({id:tt.id});return m.push(...S.redos),g.unshift(...S.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Ut={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(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:c,unitId:u,cellValue:Zo(l)},g=fe(n,m),f=a.onCommandExecute({id:Ut.id}),v=[{id:q.id,params:m},...f.redos],S=[...f.undos,{id:q.id,params:g}];return r.sequenceExecute(v,o).result?(s.pushUndoRedo({unitID:u,undoMutations:S,redoMutations:v}),!0):!1}};function Zo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;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 nt={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(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],f={subUnitId:c,unitId:u,cellValue:Qo(l)},v=fe(n,f);m.push({id:q.id,params:f}),g.push({id:q.id,params:v});const S=a.onCommandExecute({id:nt.id});return m.push(...S.redos),g.unshift(...S.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{s:null})}),t.getData()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Ue={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{sheet:e,index:s,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,s,e):!1}};function ln(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,s=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return null;const a=e?s.getSheetBySheetId(e):s.getActiveSheet();return a?{worksheet:a,workbook:s,unitId:s.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,s=n.getUniverSheetInstance(o);if(!s)return null;const a=s.getSheetBySheetId(e);return a?{worksheet:a,workbook:s}:null}const cn=(n,t)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=ot(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:u}=a,d=u.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:d,unitId:s}},Ae={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=o.getUniverSheetInstance(s);return a?a.removeSheet(e):!1}},mn={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=B(s,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=r.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=r.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},f=bt(n,g);return o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:f}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new r.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new r.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:s}=t;return o.replace(e,s),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...r.selectionToArray(n)),s=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const c={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};r.Rectangle.contains(n,c)||s.push(c)}}),s.length===0)return n;const a=r.Rectangle.union(n,...s);return o?ze(a,t,o):a}function es(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType: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 ts(n,t,o){const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(s)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function ne(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 Se=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:ne(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return r.Rectangle.equals(t,o)}const gn="sheet.command.move-range",st={type:r.CommandType.COMMAND,id:gn,handler:(n,t)=>{var I,R;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=n.get(r.LocaleService),u=B(s);if(!u)return!1;const{worksheet:d,subUnitId:c,unitId:l}=u,m=rt(n,{unitId:l,subUnitId:c,range:t.fromRange},{unitId:l,subUnitId:c,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const f=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=f.preRedos)!=null?I:[],...m.redos,...f.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:ne(t.toRange,d)}]}}],S=[...(R=f.preUndos)!=null?R:[],...m.undos,...f.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:ne(t.fromRange,d)}]}}];return r.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:S,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(r.IUniverInstanceService).getUniverSheetInstance(d),f=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),S=f==null?void 0:f.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(f&&v&&S&&C){const I=ze(c,f,!1);if(!r.Rectangle.equals(c,I)&&!e)return null;const R=new r.ObjectMatrix,M=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{R.setValue(U,T,C.getValue(U,T)),M.setValue(U,T,null)});const w=new r.ObjectMatrix;r.Range.foreach(c,(U,T)=>{w.setValue(U,T,S.getValue(U,T))});const p=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{const D=r.cellToRange(U,T),x=r.Rectangle.getRelativeRange(D,i),Y=r.Rectangle.getPositionRange(x,c);p.setValue(Y.startRow,Y.startColumn,C.getValue(U,T))});const y={from:{value:M.getMatrix(),subUnitId:u},to:{value:p.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};s.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:s,undos:a}}const qe={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),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{subUnitId:d,unitId:c}=u,{value:l,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const f=new r.ObjectMatrix;let v;if(r.Tools.isArray(l))for(let p=0;p<g.length;p++){const{startRow:y,startColumn:b,endRow:U,endColumn:T}=g[p];for(let D=0;D<=U-y;D++)for(let x=0;x<=T-b;x++)f.setValue(D+y,x+b,l[D][x])}else if(r.isICellData(l))for(let p=0;p<g.length;p++){const{startRow:y,startColumn:b,endRow:U,endColumn:T}=g[p];for(let D=y;D<=U;D++)for(let x=b;x<=T;x++)f.setValue(D,x,l)}else v=l;const S={subUnitId:d,unitId:c,cellValue:v!=null?v:f.getMatrix()},C=fe(n,S),I=o.syncExecuteCommand(q.id,S),{undos:R,redos:M}=i.onCommandExecute({id:qe.id,params:{...S,range:g}}),w=r.sequenceExecute([...M],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:S},...M]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(r.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(s),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const f=g.getCellMatrix(),v=f.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let M,w;if(u===r.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let T=i.startRow;T<=y;T++){const D=f.getRow(T),x=D?r.getArrayLength(D)-1:0;b=Math.max(b,x)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const U=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:M.startColumn+U,endRow:y,endColumn:M.endColumn+U}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const U=i.endRow-i.startRow+1;w={startRow:M.startRow+U,startColumn:i.startColumn,endRow:M.endRow+U,endColumn:y}}const p=rt(n,{unitId:s,subUnitId:a,range:M},{unitId:s,subUnitId:a,range:w},!0);p&&(o.push(...p.redos),e.push(...p.undos))}if(Object.entries(d).length===0)for(let M=i.startRow;M<=i.endRow;M++){d[M]||(d[M]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[M][w]=null}const S={subUnitId:a,unitId:s,cellValue:d},C=fe(n,S),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...S,range:i}});o.push({id:q.id,params:S},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(r.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(s),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),f=g.getDataRange(),v={subUnitId:a,unitId:s,cellValue:rs([i])},S=fe(n,v),C=c.onCommandExecute({id:qe.id,params:v});if(o.push({id:q.id,params:v},...C.redos),e.push(...C.undos,{id:q.id,params:S}),i.startColumn<=f.endColumn||i.startRow<=f.endRow){let I=null,R=null;if(u===r.Dimension.COLUMNS&&i.endColumn<f.endColumn){const M=Math.min(i.endRow,f.endRow);let w=0;for(let y=i.startRow;y<=M;y++){const b=g.getRow(y),U=b?r.getArrayLength(b)-1:0;w=Math.max(w,U)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:w};const p=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-p,endRow:M,endColumn:I.endColumn-p}}if(u===r.Dimension.ROWS&&i.endRow<f.endRow){const M=Math.min(i.endColumn,f.endColumn),w=f.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:M};const p=i.endRow-i.startRow+1;R={startRow:I.startRow-p,startColumn:i.startColumn,endRow:I.endRow-p,endColumn:M}}if(I&&R){const M=rt(n,{unitId:s,subUnitId:a,range:I},{unitId:s,subUnitId:a,range:R},!0);M&&(o.push(...M.redos),e.push(...M.undos))}}}return{redo:o,undo:e}}function os(n,t,o,e,s,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(s===r.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const f=n.getValue(m,g);f==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,f)}for(let m=u;m>=i;m--)for(let g=d;g<=c;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const f=n.getValue(m,g);f==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,f)}for(let m=i;m<=u;m++)for(let g=c;g>=d;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ss(n,t,o,e,s){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(s===r.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const f=n.getValue(m+c,g);f==null?n.realDeleteValue(m,g):n.setValue(m,g,f)}else if(s===r.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const f=n.getValue(m,g+l);f==null?n.realDeleteValue(m,g):n.setValue(m,g,f)}}function rs(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const hn="sheet.command.delete-range-move-left",at={type:r.CommandType.COMMAND,id:hn,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{worksheet:d,workbook:c,subUnitId:l,unitId:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const f={range:g,subUnitId:l,unitId:m,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:S,undo:C}=Et(n,f),I=[...(p=v.preRedos)!=null?p:[],...S],R=[...v.undos,...C];return I.push(...v.redos),I.push(Se(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),r.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},vn="sheet.command.delete-range-move-up",it={type:r.CommandType.COMMAND,id:vn,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{unitId:d,subUnitId:c,workbook:l,worksheet:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const f={range:g,subUnitId:c,unitId:d,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:S,undo:C}=Et(n,f),I=[...(p=v.preRedos)!=null?p:[],...S],R=[...v.undos,...C];return I.push(...v.redos),I.push(Se(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),r.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(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}},Ce={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:s,rowInfo:a}=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 c=d.getRowManager().getRowData(),l={h:d.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let S=m;S<m+g;S++)a?r.insertMatrixArray(S,(v=a[S-s.startRow])!=null?v:l,c):r.insertMatrixArray(S,l,c);return d.setRowCount(d.getRowCount()+s.endRow-s.startRow+1),d.getCellMatrix().insertRows(s.startRow,g),!0}},Dt=(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}},Re={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(n,t)=>{var v;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.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let S=l;S<l+m;S++){const C={w:g,hd:0};u?r.insertMatrixArray(S,(v=u[S-i.startColumn])!=null?v:C,c):r.insertMatrixArray(S,C,c)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,m),!0}},as=(n,t)=>{const s=t.getRowManager().getRowData(),a={},i=n.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),d=r.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={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 a=t.range,u=s.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)s.getRowFiltered(l);const 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}},is=(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={},c=t.range,l=r.sliceMatrixArray(c.startColumn,c.endColumn,u),m=r.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={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 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}},us="sheet.command.insert-range-move-down",ut={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,_,de;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(r.ErrorService),d=n.get(r.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(s);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:f}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const S=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,p=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(p>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+p,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(p).fill(void 0).map(()=>({h:Q,hd:r.BooleanNumber.FALSE}))};S.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};r.Range.foreach(v,(Z,Q)=>{const K=g.getCell(Z,Q);K&&(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:m,unitId:l,shiftDimension:r.Dimension.ROWS,cellValue:y},{redo:U,undo:T}=Tt(n,b);S.push(...U),C.push(...T);const D=i.onCommandExecute({id:ut.id,params:{range:v}});return S.push(...D.redos),S.push(Se(v,f,g)),C.push(...(_=D.preUndos)!=null?_:[]),S.unshift(...(de=D.preRedos)!=null?de:[]),C.unshift(...D.undos),r.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:S}),!0):!1}},fn="sheet.command.insert-range-move-right",dt={type:r.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var Y,_,de;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(r.ErrorService),d=n.get(r.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(s);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:f}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const S=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,p=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(p>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:f,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+p},colInfo:new Array(p).fill(void 0).map(()=>({w:Q,hd:r.BooleanNumber.FALSE}))};S.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};r.Range.foreach(v,(Z,Q)=>{const K=m.getCell(Z,Q);!K||!K.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:f,unitId:g,shiftDimension:r.Dimension.COLUMNS,cellValue:y},{redo:U,undo:T}=Tt(n,b);S.push(...U),C.push(...T);const D=i.onCommandExecute({id:dt.id,params:{range:v}});return S.push(...D.redos),S.push(Se(v,l,m)),C.push(...(_=D.preUndos)!=null?_:[]),S.unshift(...(de=D.preRedos)!=null?de:[]),C.unshift(...D.undos),r.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:S}),!0):!1}},Sn="sheet.command.insert-row",Le={type:r.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,p;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=s.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:f}=d,v=c===r.Direction.UP?g:g-1,S=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(f-g+1).fill(void 0).map(()=>({h:S,hd:r.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return r.sequenceExecute([{id:Ce.id,params:C},...R.redos,Se(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(p=R.preRedos)!=null?p:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},Cn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(f=>f.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};r.Range.foreach(e,(f,v)=>{const S=i.getCell(f,v);!S||!S.s||(l[f]||(l[f]={}),l[f][v]={s:S.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(r.ICommandService).executeCommand(Le.id,m)}},Rn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={unitId:u,subUnitId:d,direction:r.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(r.ICommandService).executeCommand(Le.id,l)}},In="sheet.command.insert-col",Be={type:r.CommandType.COMMAND,id:In,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=s.getUniverSheetInstance(t.unitId),f=g.getSheetBySheetId(t.subUnitId),v=u===r.Direction.LEFT?l:l-1,S=f.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:S,hd:r.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return r.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,Se(i,g,f)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(p=R.preUndos)!=null?p:[],{id:Ie.id,params:I},...R.undos].filter(Boolean),redoMutations:[...(y=R.preRedos)!=null?y:[],{id:Re.id,params:C},...R.redos].filter(Boolean)}),!0):!1}},Mn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={};r.Range.foreach(e,(g,f)=>{const v=i.getCell(g,f);!v||!v.s||(l[g]||(l[g]={}),l[g][f]={s:v.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(r.ICommandService).executeCommand(Be.id,m)}},pn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={unitId:u,subUnitId:d,direction:r.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(r.ICommandService).executeCommand(Be.id,l)}},wn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=ln(s,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=r.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:c,sheet:l,unitId:u},g=bt(n,m);return o.syncExecuteCommand(Ue.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}};function ds(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=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 c=s.startRow,l=s.endRow-s.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return r.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=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 c=s.startColumn,l=s.endColumn-s.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return r.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function cs(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function ms(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",Ot={id:yn,type:r.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===r.RANGE_TYPE.ROW&&ee.range.startRow<=s&&s<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),f=n.get(r.ErrorService),v=n.get(r.LocaleService),S=i[0].range,C=i[0].primary,I=ze(S,l,!1);if(!r.Rectangle.equals(S,I))return f.emit(v.t("sheets.info.partOfCell")),!1;if(cs(a,l))return f.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...S,startRow:a,endRow:a+S.endRow-S.startRow},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:R},w=ds(n,M),y=a-s<0,b=S.endRow-S.startRow+1,U=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},T={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ne(U,l),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:C,style:null}]},x=n.get(r.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),_=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:M},{id:$.id,params:T},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:D},...Y.undos];return r.sequenceExecute(_,x).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:_}),!0):!1}},_n="sheet.command.move-cols",Pt={id:_n,type:r.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===r.RANGE_TYPE.COLUMN&&ee.range.startColumn<=s&&s<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),f=n.get(r.ErrorService),v=n.get(r.LocaleService),S=i[0].range,C=i[0].primary,I=ze(S,l,!1);if(!r.Rectangle.equals(S,I))return f.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return f.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:R},w=ls(n,M),p=S.endColumn-S.startColumn+1,U=a-s<0?R:{...R,startColumn:R.startColumn-p,endColumn:R.endColumn-p},T={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ne(U,l),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:C,style:null}]},x=n.get(r.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),_=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:M},{id:$.id,params:T},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:D},...Y.undos];return r.sequenceExecute(_,x).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:_}),!0}},Un="sheet.command.remove-row",lt={type:r.CommandType.COMMAND,id:Un,handler:async(n,t)=>{var R,M,w,p;const o=n.get(h.SelectionManagerService),e=n.get(h.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),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;s={...s,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=s.startRow;y<=s.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[s.startRow,...m.map(U=>U+1)],b=[...m.map(U=>U-1),s.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=b[U]&&g.push({startRow:y[U],endRow:b[U],startColumn:s.startColumn,endColumn:s.endColumn})}else g.push(s);const f=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},U=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),T={unitId:l,subUnitId:c,cellValue:U.getMatrix()},D=as(b,d);f.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:D},{id:q.id,params:T})});const S=e.onCommandExecute({id:lt.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(M=S.preRedos)!=null?M:[],...f,...S.redos,Se(s,u,d)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=S.preUndos)!=null?w:[],...v,...S.undos],redoMutations:[...(p=S.preRedos)!=null?p:[],...f,...S.redos]}),!0):!1}},bn="sheet.command.remove-col",ct={type:r.CommandType.COMMAND,id:bn,handler:async(n,t)=>{var R,M,w,p;const o=n.get(h.SelectionManagerService),e=n.get(h.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),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;s={...s,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:s},g=is(n,m),f=d.getCellMatrix().getSlice(0,d.getRowCount()-1,s.startColumn,s.endColumn),v={unitId:l,subUnitId:c,cellValue:f.getMatrix()},S=e.onCommandExecute({id:ct.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(M=S.preRedos)!=null?M:[],{id:Ie.id,params:m},...S.redos,Se(s,u,d)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...S.undos],redoMutations:[...(p=S.preRedos)!=null?p:[],{id:Ie.id,params:m},...S.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(n,t)=>{var R,M;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(s,t);if(!i)return!1;const{unitId:u,subUnitId:d,workbook:c,worksheet:l}=i;if(c.getSheets().length<=1)return!1;const m=c.getSheetIndex(l);c.getConfig().sheetOrder[m+1];const g={subUnitId:d,unitId:u,subUnitName:l.getName()},f=cn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),S=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(M=v.preUndos)!=null?M:[],{id:Ue.id,params:f},...v.undos];return r.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}},me=(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 i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(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 c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const m=i[l],g=u[c];r.Rectangle.intersects(m,g)&&d.push(i[l])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type: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().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let c=i.length-1;c>=0;c--){const l=i[c],m=u[d];r.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Tn={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(s);if(!i)return!1;const{subUnitId:u,unitId:d,worksheet:c}=i,l={unitId:d,subUnitId:u,ranges:a};let m=!1;const g=c.getConfig().mergeData;if(a.forEach(p=>{g.forEach(y=>{r.Rectangle.intersects(p,y)&&(m=!0)})}),!m)return!1;const f=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const S=r.Tools.deepClone(v),C=r.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:M}=I.range;return I.primary={startRow:R,startColumn:M,endRow:R,endColumn:M,actualRow:R,actualColumn:M,isMerged:!1,isMergedMainCell:!1},r.sequenceExecute([{id:F.id,params:f},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:W.id,params:f},{id:$.id,params:{selections:S}}],redoMutations:[{id:F.id,params:f},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){j(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});j(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));j(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mt(n,t){const{startRow:o,startColumn:e,endRow:s,endColumn:a}=n;for(let i=o;i<=s;i++)for(let u=e;u<=a;u++)t(i,u)}const En={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:s}=t,{type:a,color:i,style:u}=s,d=n.get(r.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(je.id,{unitId:o,subUnitId:e})}},Nn={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(Ee).setType(t.value),o.executeCommand(je.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(Ee).setStyle(t.value),o.executeCommand(je.id)}},On={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(je.id)}},je={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),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(s,t);if(!u)return!1;const{worksheet:d,unitId:c,subUnitId:l}=u,m=a.getSelectionRanges(),g=d.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:f,color:v,type:S,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=S===r.BorderType.TOP||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,R=S===r.BorderType.LEFT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,M=S===r.BorderType.BOTTOM||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,w=S===r.BorderType.RIGHT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,p=S===r.BorderType.VERTICAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,y=S===r.BorderType.HORIZONTAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,b=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,T=S.indexOf("tlmr")>-1,D=S.indexOf("bltr")>-1,x=S.indexOf("mltr")>-1,Y=S.indexOf("bctr")>-1,_=m[0],de={startRow:_.startRow-1,startColumn:_.startColumn,endRow:_.startRow-1,endColumn:_.endColumn},Z={startRow:_.startRow,startColumn:_.startColumn-1,endRow:_.endRow,endColumn:_.startColumn-1},Q={startRow:_.endRow+1,startColumn:_.startColumn,endRow:_.endRow+1,endColumn:_.endColumn},K={startRow:_.startRow,startColumn:_.endColumn+1,endRow:_.endRow,endColumn:_.endColumn+1},ee={startRow:_.startRow,startColumn:_.startColumn,endRow:_.startRow,endColumn:_.endColumn},Eo={startRow:_.startRow,startColumn:_.startColumn,endRow:_.endRow,endColumn:_.startColumn},No={startRow:_.endRow,startColumn:_.startColumn,endRow:_.endRow,endColumn:_.endColumn},Do={startRow:_.startRow,startColumn:_.endColumn,endRow:_.endRow,endColumn:_.endColumn},V=new r.ObjectMatrix,G={s:f,cl:{rgb:v}},_t=(O,E)=>{let L=null;return g.forEach(te=>{r.Rectangle.intersects(te,{startColumn:E,endColumn:E,startRow:O,endRow:O})&&(L=te)}),L};function H(O,E,L){O.startRow<0||O.startColumn<0||mt(O,(te,le)=>{var N,Ze;const oe=_t(te,le);let ie=E;if(oe&&(E.bc_tr||E.ml_tr||E.bl_tr||E.tl_mr||E.tl_bc||E.tl_br)){if(L){const ce=r.Tools.deepClone((N=V.getValue(oe.startRow,oe.startColumn))==null?void 0:N.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,E):E}V.setValue(oe.startRow,oe.startColumn,{s:{bd:ie}})}else{if(L){const ce=r.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,E):E}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:r.Tools.deepClone(G)},!0)),M&&(H(Q,{t:null}),H(No,{b:r.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(Eo,{l:r.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Do,{r:r.Tools.deepClone(G)},!0)),b&&H(_,{tl_br:r.Tools.deepClone(G)},!0),U&&H(_,{tl_bc:r.Tools.deepClone(G)},!0),T&&H(_,{tl_mr:r.Tools.deepClone(G)},!0),D&&H(_,{bl_tr:r.Tools.deepClone(G)},!0),x&&H(_,{ml_tr:r.Tools.deepClone(G)},!0),Y&&H(_,{bc_tr:r.Tools.deepClone(G)},!0),p&&mt(_,(O,E)=>{var te,le,oe,ie;const L=_t(O,E);if(L){if(L.endColumn!==_.endColumn){const N=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:r.Tools.deepClone(G)}):{r:r.Tools.deepClone(G)}}})}if(L.startColumn!==_.startColumn){const N=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:r.Tools.deepClone(G)}):{l:r.Tools.deepClone(G)}}})}}else{if(E!==_.endColumn){const N=(oe=V.getValue(O,E))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:r.Tools.deepClone(G)}):{r:r.Tools.deepClone(G)}}})}if(E!==_.startColumn){const N=(ie=V.getValue(O,E))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:r.Tools.deepClone(G)}):{l:r.Tools.deepClone(G)}}})}}}),y&&mt(_,(O,E)=>{var te,le,oe,ie;const L=_t(O,E);if(L){if(L.endRow!==_.endRow){const N=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:r.Tools.deepClone(G)}):{b:r.Tools.deepClone(G)}}})}if(L.startRow!==_.startRow){const N=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:r.Tools.deepClone(G)}):{t:r.Tools.deepClone(G)}}})}}else{if(O!==_.endRow){const N=(oe=V.getValue(O,E))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:r.Tools.deepClone(G)}):{b:r.Tools.deepClone(G)}}})}if(O!==_.startRow){const N=(ie=V.getValue(O,E))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:r.Tools.deepClone(G)}):{t:r.Tools.deepClone(G)}}})}}}),!I&&!M&&!R&&!w&&!p&&!y&&!b&&!U&&!T&&!D&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(No,{b:null},!0),H(Z,{r:null}),H(Eo,{l:null},!0),H(K,{l:null}),H(Do,{r:null},!0),H(_,{tl_br:null},!0),H(_,{tl_bc:null},!0),H(_,{tl_mr:null},!0),H(_,{bl_tr:null},!0),H(_,{ml_tr:null},!0),H(_,{bc_tr:null},!0),mt(_,(O,E)=>{var te,le,oe,ie,N,Ze,ce,Oo;const L=_t(O,E);if(L){if(L.endColumn!==_.endColumn){const P=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{r:null}):{r:null}}})}if(L.startColumn!==_.startColumn){const P=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{l:null}):{l:null}}})}if(L.endRow!==_.endRow){const P=(oe=V.getValue(L.startRow,L.startColumn))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{b:null}):{b:null}}})}if(L.startRow!==_.startRow){const P=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{t:null}):{t:null}}})}}else{if(E!==_.endColumn){const P=(N=V.getValue(O,E))==null?void 0:N.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{r:null}):{r:null}}})}if(E!==_.startColumn){const P=(Ze=V.getValue(O,E))==null?void 0:Ze.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{l:null}):{l:null}}})}if(O!==_.endRow){const P=(ce=V.getValue(O,E))==null?void 0:ce.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{b:null}):{b:null}}})}if(O!==_.startRow){const P=(Oo=V.getValue(O,E))==null?void 0:Oo.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{t:null}):{t:null}}})}}}));const on={unitId:c,subUnitId:l,cellValue:V.getData()},xr=fe(n,on);return o.syncExecuteCommand(q.id,on)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:xr}],redoMutations:[{id:q.id,params:on}]}),!0):!1}},gs=(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}},We={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 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}},hs=(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}},Fe={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 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}},At={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:s},u=hs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:s.map(g=>({range:g,primary:ne(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:An(s).map(g=>({range:g,primary:ne(g,a),style:null}))},l=n.get(r.ICommandService);return r.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:We.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},Pn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var c;const o=(c=n.get(h.SelectionManagerService).getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(r.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var f;const o=(f=n.get(h.SelectionManagerService).getSelections())==null?void 0:f.map(v=>v.range).filter(v=>v.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);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:o},c={unitId:i,subUnitId:u,pluginName:X,selections:An(o).map(v=>({range:v,primary:ne(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:ne(v,a),style:null}))},m=n.get(r.ICommandService);if(r.sequenceExecute([{id:We.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(r.IUndoRedoService),S=gs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:S},{id:$.id,params:l}],redoMutations:[{id:We.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function An(n){return vs(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function vs(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 Vt=(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 i=s.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={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 a=s.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Vn={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),a=B(s);if(!a)return!1;const{unitId:i,subUnitId:u,worksheet:d}=a,{startColumn:c,startRow:l,xSplit:m,ySplit:g}=t;if(l>=d.getRowCount()||c>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const f={unitId:i,subUnitId:u,...t},v=Vt(n,f);return o.syncExecuteCommand(ye.id,f)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:f}]}),!0):!1}},fs={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=B(e);if(!s)return!1;const{unitId:a,subUnitId:i}=s,u={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Vt(n,u);return t.syncExecuteCommand(ye.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:d}],redoMutations:[{id:ye.id,params:u}]}),!0):!1}},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}},He={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 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}},Cs=(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}},$e={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 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}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,a=n.get(r.ICommandService),i=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:s},c=Ss(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:s.map(f=>({range:f,primary:ne(f,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:jn(s).map(f=>({range:f,primary:ne(f,u),style:null}))};return r.sequenceExecute([{id:He.id,params:d},{id:$.id,params:l}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:$e.id,params:c},{id:$.id,params:m}],redoMutations:[{id:He.id,params:d},{id:$.id,params:l}]}),!0}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(r.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===r.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const s=o.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(r.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},Bn={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const t=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=(S=t.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(s);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,l={unitId:u,subUnitId:d,ranges:a},m={unitId:u,subUnitId:d,pluginName:X,selections:jn(a).map(C=>({range:C,primary:ne(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:ne(C,c),style:null}))},f=Cs(n,l);return r.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:f},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function jn(n){return Rs(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Rs(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 J={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(r.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:s,subUnitId:a}=e,{range:i,style:u}=t,d=n.get(r.ICommandService),c=n.get(r.IUndoRedoService),l=n.get(h.SelectionManagerService),m=i?[i]:l.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g=new r.ObjectMatrix;if(r.Tools.isArray(u.value))for(let M=0;M<m.length;M++){const{startRow:w,endRow:p,startColumn:y,endColumn:b}=m[M];for(let U=0;U<=p-w;U++)for(let T=0;T<=b-y;T++)g.setValue(U+w,T+y,{s:{[u.type]:u.value[U][T]}})}else for(let M=0;M<m.length;M++){const{startRow:w,endRow:p,startColumn:y,endColumn:b}=m[M],U={s:{[u.type]:u.value}};for(let T=w;T<=p;T++)for(let D=y;D<=b;D++)g.setValue(T,D,U)}const f={subUnitId:a,unitId:s,cellValue:g.getMatrix()},v=fe(n,f),S=d.syncExecuteCommand(q.id,f),{undos:C,redos:I}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),R=r.sequenceExecute([...I],d);return S&&R.result?(c.pushUndoRedo({unitID:s,undoMutations:[{id:q.id,params:v},...C],redoMutations:[{id:q.id,params:f},...I]}),!0):!1}},Is={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:s,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(s,a).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(J.id,u)}},Ms={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;s=e.getRange(i,u).getFontStyle()===r.FontItalic.ITALIC}const a={style:{type:"it",value:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(J.id,a)}},ps={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;t.primary&&(s=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(J.id,a)}},ws={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;t.primary&&(s=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(J.id,a)}};r.CommandType.COMMAND;const ys={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(J.id,e)}},_s={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(J.id,e)}},Wn={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(J.id,e)}},Fn={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(J.id,o)}},Hn={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(J.id,e)}},$n={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(J.id,o)}},Gn={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(J.id,e)}},zn={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(J.id,e)}},qn={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(J.id,e)}},xn={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(J.id,s)}},Us=(n,t)=>{const a=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(t),color:a}},xe={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}},Yn={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=B(n.get(r.IUniverInstanceService));if(!s)return!1;const{unitId:a,subUnitId:i}=s,u={color:t.value,unitId:a,subUnitId:i},d=Us(n,u);return o.syncExecuteCommand(xe.id,u)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:u}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type: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}},bs=4,Bt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(r.ICommandService),s=B(n.get(r.IUniverInstanceService),t);if(!s)return!1;const{unitId:a,subUnitId:i}=s;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},bs)})}},jt=(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 a={},i=s.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let l=c.startColumn;l<c.endColumn+1;l++){const m=i.getColumnOrCreate(l);a[l]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Me={id:"sheet.mutation.set-worksheet-col-width",type: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 a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=t.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-l.startColumn])!=null?d:a}}return!0}},Wt={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=n.get(r.ICommandService),a=n.get(r.IUndoRedoService),i=B(n.get(r.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,f=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,S=e.filter(b=>b.range.rangeType===r.RANGE_TYPE.COLUMN),C=v?r.RANGE_TYPE.ALL:S.some(({range:b})=>{const{startColumn:U,endColumn:T}=b;return U<=l&&l<=T})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let I;if(C===r.RANGE_TYPE.ALL){const b=u.getRowCount(),U=new Array(u.getColumnCount()).fill(void 0).map((T,D)=>({startRow:0,endRow:b-1,startColumn:D,endColumn:D}));I={subUnitId:c,unitId:d,colWidth:f,ranges:U}}else C===r.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:S.map(b=>r.Rectangle.clone(b.range)),colWidth:f}:I={subUnitId:c,unitId:d,colWidth:f,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=jt(n,I),M=s.syncExecuteCommand(Me.id,I),{undos:w,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:Wt.id,params:I}),y=r.sequenceExecute([...p],s);return M&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...p]}),!0}},Ft={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(r.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=jt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:f}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=r.sequenceExecute([...f],e);return m&&v.result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...f]}),!0):!1}},Kn=(n,t)=>{const o=ot(n.get(r.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},_e={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}},Xn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.ErrorService),a=n.get(r.LocaleService),i=B(n.get(r.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:r.BooleanNumber.TRUE},f=Kn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(s.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:_e.id,params:f}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ts=(n,t)=>{const o=ot(n.get(r.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type: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}},Ht={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,S;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(h.SheetInterceptorService),a=B(n.get(r.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Ts(n,d),l=s.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(S=l.preUndos)!=null?S:[],{id:gt.id,params:c},...l.undos];return await r.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Es=(n,t)=>({...r.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={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=B(n.get(r.IUniverInstanceService),t);if(!s)return!1;const{workbook:a,unitId:i,subUnitId:u}=s,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Es(n,c);return o.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:l}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ns=2e3,Zn=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of s)for(let g=l;g<m+1;g++){const f=c.getRowOrCreate(g);d[g]=f.h}return{unitId:o,subUnitId:e,ranges:s,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of s)for(let g=l;g<=m;g++){const f=c.getRowOrCreate(g);d[g]=f.ia}return{unitId:o,subUnitId:e,ranges:s,autoHeightInfo:d}},Ds=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e),d=[],c=u.getRowManager();for(const l of s){const{row:m}=l,{ah:g}=c.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},pe={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:s,rowHeight:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=d.getConfig().defaultRowHeight,l=d.getRowManager();for(const{startRow:g,endRow:f}of s)for(let v=g;v<=f;v++){const S=l.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(m=a[v])!=null?m:c,S.h=Math.min(Ns,S.h)}return!0}},ue={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:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=void 0,l=d.getRowManager();for(const{startRow:g,endRow:f}of s)for(let v=g;v<=f;v++){const S=l.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of s){const m=d.getRowOrCreate(c);m.ah=l}return!0}},Qn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=B(n.get(r.IUniverInstanceService));if(!s)return!1;const{worksheet:a,subUnitId:i,unitId:u}=s,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,f=e.filter(y=>y.range.rangeType===r.RANGE_TYPE.ROW),v=g?r.RANGE_TYPE.ALL:f.some(({range:y})=>{const{startRow:b,endRow:U}=y;return b<=d&&d<=U})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let S;if(v===r.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((U,T)=>({startRow:T,endRow:T,startColumn:0,endColumn:y-1}));S={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===r.RANGE_TYPE.ROW?S={subUnitId:i,unitId:u,ranges:f.map(y=>r.Rectangle.clone(y.range)),rowHeight:m}:S={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=Zn(n,S),I={unitId:u,subUnitId:i,ranges:S.ranges,autoHeightInfo:r.BooleanNumber.FALSE},R=$t(n,I),M=n.get(r.ICommandService),w=n.get(r.IUndoRedoService);return r.sequenceExecute([{id:pe.id,params:S},{id:ue.id,params:I}],M).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:S},{id:ue.id,params:I}]}),!0):!1}},eo={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=Zn(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:r.BooleanNumber.FALSE},f=$t(n,g);return r.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:f}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={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(h.SelectionManagerService),a=n.get(r.IUniverInstanceService),i=B(a);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,{anchorRow:l}=t!=null?t:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:s.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:r.BooleanNumber.TRUE},f=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:S,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=r.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:f},...S],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},to={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=B(n.get(r.IUniverInstanceService));if(!a)return!1;const{unitId:i,subUnitId:u}=a,d=s.getUniverSheetInstance(i);if(!d)return!1;const c=d.getSheetBySheetId(u);if(!c||c.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const m={unitId:i,subUnitId:u,hidden:r.BooleanNumber.FALSE},g=Kn(n,m),f=o.syncExecuteCommand(_e.id,m),v={unitId:i,subUnitId:u},S=o.syncExecuteCommand(Ye.id,v);return f&&S?(e.pushUndoRedo({unitID:i,undoMutations:[{id:_e.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}},no=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},oo=n=>{const t=n;return t.forValue((o,e)=>{const s=n.getValue(o-1,e);s&&t.setValue(o,e,s+1)}),t},so=n=>{const t={area:0},o=(e,s)=>t.area<e?(t.area=e,t.range=s,!0):!1;return n.forValue((e,s,a)=>{let i=1,u=a;o(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 c=s-1;c>=0&&n.getValue(e,c);c--){u=Math.min(n.getValue(e,c)||0,u),i++;const l=u*i;d.startColumn=c,d.startRow=e-u+1,o(l,d)}}),t},Os=(n,t)=>(r.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let s=o+1,a=n.getValue(s,e)||0;for(;a>1;)n.setValue(s,e,a-1),s+=1,a=n.getValue(s,e)||0}),n),qt=n=>{const t=[];let o=so(n);for(;o.area>0;)o.range&&(t.push(o.range),Os(n,o.range)),o=so(n);return t},xt=n=>{const t=no(n);return qt(t)};class Ps{constructor(){j(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=oo(this._matrix);return qt(t)}}const ks=(n,t,o="")=>n.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[o].push(s),e)},{}),As=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,Ne);const Vs=(n,t)=>{const o=n.get(Ne),{values:e,unitId:s,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{r.Range.foreach(m,(g,f)=>{const v=o.getValue(s,a,g,f);v?i.push({pattern:v.pattern,row:g,col:f}):u.push({startColumn:f,endColumn:f,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(s,a,i);Object.keys(c.values).forEach(l=>{const m=c.values[l];m.ranges=xt(m.ranges)}),d.push({id:ht.id,params:vt(s,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:s,subUnitId:a,ranges:u}}),d},ht={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(Ne),a=t.unitId,i=t.subUnitId,u=Object.keys(o).reduce((d,c)=>{const l=e[c],m=o[c].ranges;return l&&d.push({...l,ranges:m}),d},[]);return s.setValues(a,i,u),!0}},Yt={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(Ne).deleteValues(o,e,s),!0}},Ls=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:s,subUnitId:a}=t,i=[];if(e.forEach(d=>{r.Range.foreach(d,(c,l)=>{const m=o.getValue(s,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(s,a,i);return Object.keys(u.values).forEach(d=>{const c=u.values[d];c.ranges=xt(c.ranges)}),[{id:ht.id,params:u}]},vt=(n,t,o)=>{const e=ks(o,"pattern"),s={},a={},i=As();return Object.keys(e).forEach(u=>{const d=e[u],c=i();s[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(r.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:s,values:a}},ro={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},ao={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(se.SetDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.RemoveDefinedNameMutation.id,params:s}],redoMutations:[{id:se.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(se.RemoveDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:s}],redoMutations:[{id:se.RemoveDefinedNameMutation.id,params:s}]}),!0):!1}},uo={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(se.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},lo={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},co="maxCellsPerSheet",Bs=3e6;var js=Object.defineProperty,Ws=Object.getOwnPropertyDescriptor,Fs=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ws(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&js(t,o,s),s},mo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends r.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[W,tt,Ut,nt,mn,at,it,Wt,Qn,pn,Mn,Be,Re,ut,dt,Rn,Cn,Le,Ce,wn,Ue,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Tn,F,$n,Fn,Hn,En,On,je,Nn,Dn,kn,We,Fe,Ft,fs,Vn,ye,zn,qe,q,eo,Bn,$e,He,Pn,Ln,At,Lt,J,Yn,xe,Wn,xn,qn,Gn,Bt,Ye,Me,Xn,_e,Ht,gt,Jn,Ke,Gt,pe,zt,ue,to,ht,$,Yt,ro,ao,io,uo,lo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(co,Bs)}};ft=Fs([r.OnLifecycle(r.LifecycleStages.Starting,ft),mo(0,r.ICommandService),mo(1,r.IConfigService)],ft);const Hs=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],$s={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function Gs(n,t,o){var d,c;if(n==null||t==null)return t;const e=(o==null?void 0:o.getStyleByCell(n))||n.s,s=(o==null?void 0:o.getStyleByCell(t))||t.s;if(e==null||s==null||typeof e!="object"||typeof s!="object")return t;const a=(d=e==null?void 0:e.n)==null?void 0:d.pattern,i=(c=s==null?void 0:s.n)==null?void 0:c.pattern;if(a==null||i==null)return t;const u=zs(a,i);return s.n.pattern=u,t}function zs(n,t){const o=go(n),e=go(t);return o===0?t:[1,2,5,9,10].includes(o)?n:o===3?[4,5,6,7,8,9,11].includes(e)?t:n:[4,6,7,8].includes(o)?[2,3,4,5,6,7,8,9,11].includes(e)?t:n:o===11&&[2,3,4,6,7,8,9].includes(e)?t:n}function go(n){if(qs(n))return 3;const t=Po.getInfo(n).type||"unknown";return $s[t]}function qs(n){return!!Hs.find(t=>n.includes(t))&&n.startsWith("_(")}var xs=Object.defineProperty,Ys=Object.getOwnPropertyDescriptor,Ks=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ys(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&xs(t,o,s),s},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends r.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==se.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),s=[];return e.forEach(i=>{const u=o[i];if(u==null)return!0;Object.keys(u).forEach(c=>{const l=u[c];if(l==null)return!0;const m=this._getMergedCellData(i,c,l),g={subUnitId:c,unitId:i,cellValue:m};s.push({id:q.id,params:g})})}),s.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),s=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new r.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=Gs(m,l,s);u.setValue(d,c,g)}),u.clone()}};St=Ks([r.OnLifecycle(r.LifecycleStages.Ready,St),ho(0,z.Inject(r.IUniverInstanceService)),ho(1,r.ICommandService)],St);var Xs=Object.defineProperty,Js=Object.getOwnPropertyDescriptor,Zs=(n,t,o,e)=>{for(var s=e>1?void 0:e?Js(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Xs(t,o,s),s},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends r.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new 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})})}};Rt=Zs([r.OnLifecycle(r.LifecycleStages.Ready,Rt),Ct(0,r.ICommandService),Ct(1,se.IFeatureCalculationManagerService),Ct(2,r.IUniverInstanceService),Ct(3,z.Inject(se.FormulaDataModel))],Rt);const k={MoveRangeCommandId:gn,InsertRowCommandId:Sn,InsertColCommandId:In,RemoveColCommandId:bn,RemoveRowCommandId:Un,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:us,InsertRangeMoveRightCommandId:fn,MoveColsCommandId:_n,MoveRowsCommandId:yn};var A=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(A||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===r.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===r.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===r.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=It,t.startRow=0,t.endRow=It),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Xe=(n,t,o)=>{const e={...o},s={...t},a=(S,C)=>{const I=Math.max(S.start,C.start),R=Math.min(S.end,C.end);return R<I?null:{start:I,end:R}},i=S=>S.end-S.start+1,u=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),d=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),c=t.start>n.start;if(c){const S=Math.min(n.end,t.start)-n.start+1;s.start-=S,s.end-=S}const l=i(n),m=l,g=a(n,e),f=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const S=i(g);if(f){const C=u(e,n),I=d(C,s);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=S+l,e.start-=l):e.end-=S:c?e.end-=S:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+S):e.end-=S}const v=a(s,e);return f||(s.start<=e.start?(e.start+=m,e.end+=m):v&&(c?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-o.start,length:i(e)-i(o)}},Kt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=ve(o),a=ve(e),i=ve(t),u=Xe({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:u.step||0,length:u.length||0}]},Qs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:s}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(s,i,a),r.queryObjectMatrix(u,c=>c===1)},Xt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=ve(o),a=ve(e),i=ve(t),u=Xe({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:u.step||0,length:u.length||0}]},er=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:s}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(s,i,a),r.queryObjectMatrix(u,d=>d===1)},vo=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const s=[];if(r.Rectangle.contains(o,t)&&s.push({type:A.Delete}),r.Rectangle.contains(e,t)){s.push({type:A.Delete});const u=r.Rectangle.getRelativeRange(t,e),d=r.Rectangle.getPositionRange(u,o);return[{type:A.Set,range:d}]}return s},tr=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!r.Rectangle.intersects(e,t)&&!r.Rectangle.intersects(o,t))return[t];if(r.Rectangle.contains(e,t)){const f=r.Rectangle.getRelativeRange(t,e);return[r.Rectangle.getPositionRange(f,o)]}const s=new r.ObjectMatrix;r.Range.foreach(t,(f,v)=>{s.setValue(f,v,1)});const a=new r.ObjectMatrix,i=r.Rectangle.getIntersects(e,t);i&&r.Range.foreach(i,(f,v)=>{s.getValue(f,v)&&(s.setValue(f,v,void 0),a.setValue(f,v,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,c={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d};return c&&r.Range.foreach(c,(f,v)=>{var I;const S=f+d,C=v+u;s.setValue(S,C,(I=a.getValue(f,v))!=null?I:0)}),r.queryObjectMatrix(s,f=>f===1)},De=(n,t)=>{const o=ve(n),e=ve(t),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=r.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-s(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=r.Rectangle.getIntersects(e,o);if(i){const u=-s(i);return{step:-(s(o)-s(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-s(o),length:0}}return{step:0,length:0}},Jt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(o,t);if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.HorizontalMove,step:i,length:u})}return e},Zt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(ae(o),ae(t));if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),s=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length: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}};function nr(n,t,o){const e=[];if(r.Rectangle.contains(t,o)&&e.push({type:A.Delete}),r.Rectangle.contains(n,o)){e.push({type:A.Delete});const s=r.Rectangle.getRelativeRange(o,n),a=r.Rectangle.getPositionRange(s,t);return[{type:A.Set,range:a}]}return e}const Qt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(ae(o),ae(t)),{step:a,length:i}=s;return e.push({type:A.VerticalMove,step:a,length:i}),e},en=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(o,t),{step:a,length:i}=s;return e.push({type:A.HorizontalMove,step:a,length:i}),e},fo=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(ae(o),ae(t)),{step:a,length:i}=s;return e.push({type:A.VerticalMove,step:a,length:i}),e},or=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endRow-o.startRow+1,s={...o,startRow:o.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(c=>{r.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&r.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),r.queryObjectMatrix(u,c=>c===1)},So=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(o,t),{step:a,length:i}=s;return e.push({type:A.HorizontalMove,step:a,length:i}),e},sr=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,s={...o,startColumn:o.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(c=>{r.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&r.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),r.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(o,t);if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.HorizontalMove,step:i,length:u})}return e},rr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},s=o.endColumn-o.startColumn+1,a=r.Rectangle.getIntersects(o,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,(l,m)=>{d.setValue(l,m-s,1)}),a&&r.Range.foreach(a,(l,m)=>{d.setValue(l,m-s,0)}),i.forEach(l=>{r.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,l=>l===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(ae(o),ae(t));if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.VerticalMove,step:i,length:u})}return e},ar=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},s=o.endRow-o.startRow+1,a=r.Rectangle.getIntersects(o,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,(l,m)=>{d.setValue(l-s,m,1)}),a&&r.Range.foreach(a,(l,m)=>{d.setValue(l-s,m,0)}),i.forEach(l=>{r.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},ir=(n,t)=>{let o=[];switch(t.id){case k.DeleteRangeMoveLeftCommandId:{o=Co(t,n);break}case k.DeleteRangeMoveUpCommandId:{o=Ro(t,n);break}case k.InsertColCommandId:{o=en(t,n);break}case k.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case k.InsertRangeMoveRightCommandId:{o=So(t,n);break}case k.InsertRowCommandId:{o=Qt(t,n);break}case k.MoveColsCommandId:{o=Xt(t,n);break}case k.MoveRangeCommandId:{o=vo(t,n);break}case k.MoveRowsCommandId:{o=Kt(t,n);break}case k.RemoveColCommandId:{o=Jt(t,n);break}case k.RemoveRowCommandId:{o=Zt(t,n);break}}return Pe(o,n)},ur=(n,t)=>{let o=[];switch(t.id){case k.DeleteRangeMoveLeftCommandId:return rr(t,n);case k.DeleteRangeMoveUpCommandId:return ar(t,n);case k.InsertRangeMoveDownCommandId:return or(t,n);case k.InsertRangeMoveRightCommandId:return sr(t,n);case k.InsertColCommandId:{o=en(t,n);break}case k.InsertRowCommandId:{o=Qt(t,n);break}case k.MoveColsCommandId:return er(t,n);case k.MoveRangeCommandId:return tr(t,n);case k.MoveRowsCommandId:return Qs(t,n);case k.RemoveColCommandId:{o=Jt(t,n);break}case k.RemoveRowCommandId:{o=Zt(t,n);break}}return Pe(o,n)};function dr(n,t){const{id:o,params:e}=t;let s={length:0,step:0,type:A.Unknown};switch(o){case Ae.id:s.type=A.Delete;break;case be.id:s=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),s.type=A.VerticalMove;break;case Te.id:s=Xe({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Ie.id:s=De(e.range,n),s?s.type=A.HorizontalMove:s={step:0,length:0,type:A.Delete};break;case we.id:s=De(ae(e.range),ae(n)),s?s.type=A.VerticalMove:s={step:0,length:0,type:A.Delete};break;case Ce.id:s=Oe(ae(e.range),ae(n)),s.type=A.VerticalMove;break;case Re.id:s=Oe(e.range,n),s.type=A.HorizontalMove;break;case Ve.id:s=nr(new r.ObjectMatrix(e.from).getRange(),new r.ObjectMatrix(e.to).getRange(),n);break}return s?Array.isArray(s)?Pe(s,n):Pe([s],n):n}var lr=Object.defineProperty,cr=Object.getOwnPropertyDescriptor,mr=(n,t,o,e)=>{for(var s=e>1?void 0:e?cr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&lr(t,o,s),s},Mt=(n,t)=>(o,e)=>t(o,e,n);const gr=r.createInterceptorKey("MERGE_REDO"),hr=r.createInterceptorKey("MERGE_UNDO");class vr extends r.Disposable{constructor(t,o,e,s){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=s}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=dr(this._range,t);if(o&&r.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends r.Disposable{constructor(o,e,s,a){super();j(this,"interceptor",new r.InterceptorManager({MERGE_REDO:gr,MERGE_UNDO:hr}));j(this,"_watchRanges",new Set);j(this,"_refRangeManagerMap",new Map);j(this,"_serializer",fr());j(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),s=Io(this._univerInstanceService),a=Mo(this._univerInstanceService),d=((()=>{switch(o.id){case k.MoveColsCommandId:{const f=o.params,v=Math.min(f.fromRange.startColumn,f.toRange.startColumn);return this._checkRange([{...f.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],s,a)}case k.MoveRowsCommandId:{const f=o.params,v=Math.min(f.fromRange.startRow,f.toRange.startRow);return this._checkRange([{...f.fromRange,startRow:v,endRow:e.getRowCount()-1}],s,a)}case k.MoveRangeCommandId:{const f=o;return this._checkRange([f.params.fromRange,f.params.toRange],s,a)}case k.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.InsertColCommandId:{const v=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.RemoveColCommandId:{const v=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.DeleteRangeMoveUpCommandId:case k.InsertRangeMoveDownCommandId:{const v=o.params.range||po(this._selectionManagerService)[0],S={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],s,a)}case k.DeleteRangeMoveLeftCommandId:case k.InsertRangeMoveRightCommandId:{const v=o.params.range||po(this._selectionManagerService)[0],S={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([S],s,a)}}})()||[]).reduce((f,v)=>{const S=v(o);return f.push(S),f},[]).reduce((f,v)=>{var S,C;return f.redos.push(...v.redos),f.undos.push(...v.undos),f.preRedos.push(...(S=v.preRedos)!=null?S:[]),f.preUndos.push(...(C=v.preUndos)!=null?C:[]),f},{redos:[],undos:[],preUndos:[],preRedos:[]}),c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:g,preRedos:c,preUndos:m}}})});j(this,"_checkRange",(o,e,s)=>{const a=wo(e,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(c=>{const l=i.get(c),m=this._serializer.deserialize(c);o.some(g=>r.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});j(this,"registerRefRange",(o,e,s,a)=>{const i=s||Io(this._univerInstanceService),u=a||Mo(this._univerInstanceService),d=wo(i,u),c=this._serializer.serialize(o);let l=this._refRangeManagerMap.get(d);l||(l=new Map,this._refRangeManagerMap.set(d,l));const m=l.get(c);return m?m.add(e):l.set(c,new Set([e])),r.toDisposable(()=>{const g=l.get(c);g&&(g.delete(e),g.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(d)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=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(o,e,s,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==r.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new vr(o,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)}),c=this.disposeWithMe(d);return r.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=mr([r.OnLifecycle(r.LifecycleStages.Ready,h.RefRangeService),Mt(0,r.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(r.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Io(n){return n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Mo(n){return n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function po(n){return n.getSelectionRanges()||[]}function wo(n,t){return`${n}_${t}`}function fr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:o=>n.reduce((e,s,a)=>{const i=o[s];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var Sr=Object.defineProperty,Cr=Object.getOwnPropertyDescriptor,Rr=(n,t,o,e)=>{for(var s=e>1?void 0:e?Cr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Sr(t,o,s),s},Ge=(n,t)=>(o,e)=>t(o,e,n);const Ir=[Re.id,Ce.id,Ie.id,we.id],Mr=[be.id,Te.id];function yo(n,t){let o=n;if(t!==void 0){const e=[];for(let s=0;s<o.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[s];if(t===r.Dimension.ROWS)for(let c=a;c<=i;c++){const l={startRow:c,endRow:c,startColumn:u,endColumn:d};e.push(l)}else if(t===r.Dimension.COLUMNS)for(let c=u;c<=d;c++){const l={startRow:a,endRow:i,startColumn:c,endColumn:c};e.push(l)}}o=e}return o}h.MergeCellController=class extends r.Disposable{constructor(o,e,s,a,i,u){super();j(this,"disposableCollection",new r.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=s,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const s=o._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),a=s.getUnitId(),i=s.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>r.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),f=[{id:F.id,params:m}],v=[{id:W.id,params:g}];return{redos:f,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,s){switch(o.id){case k.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,s)}case k.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,s)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,s)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,s)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,s)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,s)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,s)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,s)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,s)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(s,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(s);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,s,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,s,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(s=>{if(s.id===Bt.id){const a=s.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(s.id===W.id){const a=s.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(e){const s=e.getActiveSheet();o(e.getUnitId(),s.getSheetId())}}_handleMoveRowsCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},c={unitId:e,subUnitId:s,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){d.ranges.push(S);const C=Kt({id:k.MoveRowsCommandId,params:o},S),I=Pe(C,S);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const f=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:W.id,params:c}],undos:[{id:F.id,params:v},{id:W.id,params:f}]}}_handleMoveColsCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},c={unitId:e,subUnitId:s,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){d.ranges.push(S);const C=Xt({id:k.MoveColsCommandId,params:o},S),I=Pe(C,S);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const f=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:W.id,params:c}],undos:[{id:F.id,params:v},{id:W.id,params:f}]}}_handleMoveRangeCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>r.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>r.Rectangle.intersects(v,o.toRange)),l=d.map(v=>r.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>r.Rectangle.getPositionRange(v,o.toRange)),m=yo(l).filter(v=>!u.some(S=>r.Rectangle.equals(v,S))),g=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:s,ranges:c}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:m}}],f=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:m}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:c}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:d}}];return{redos:g,undos:f}}_handleInsertRowCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=r.Tools.deepClone(i.getMergeData()).reduce((R,M)=>(d>M.startRow&&d<=M.endRow&&R.push(M),R),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((R,M)=>{if(d>M.startRow&&d<=M.endRow){const w=c-d+1;M.endRow+=w,this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:F.id,params:S},{id:W.id,params:f}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,s){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,s);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=r.Tools.deepClone(u.getMergeData()).reduce((R,M)=>(d>M.startColumn&&d<=M.endColumn&&R.push(M),R),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((R,M)=>{if(d>M.startColumn&&d<=M.endColumn){const w=c-d+1;M.endColumn+=w,this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:F.id,params:S},{id:W.id,params:f}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=r.Tools.deepClone(i.getMergeData()).reduce((w,p)=>(r.Rectangle.intersects(u,p)&&w.push(p),w),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((w,p)=>{if(r.Rectangle.intersects(u,p)){if(d<=p.startColumn&&c>=p.endColumn)return w;d>=p.startColumn&&c<=p.endColumn?p.endColumn-=c-d+1:d<p.startColumn?(p.startColumn=d,p.endColumn-=c-d+1):c>p.endColumn&&(p.endColumn=d-1),this._checkIsMergeCell(p)&&w.push(p)}return w},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:W.id,params:v}],R=[{id:F.id,params:S}],M=[{id:W.id,params:f}];return{preUndos:R,undos:M,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,s){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,s);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=r.Tools.deepClone(u.getMergeData()).reduce((w,p)=>(r.Rectangle.intersects(a,p)&&w.push(p),w),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((w,p)=>{if(r.Rectangle.intersects(a,p)){if(d<=p.startRow&&c>=p.endRow)return w;d>=p.startRow&&c<=p.endRow?p.endRow-=c-d+1:d<p.startRow?(p.startRow=d,p.endRow-=c-d+1):c>p.endRow&&(p.endRow=d-1),this._checkIsMergeCell(p)&&w.push(p)}return w},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:W.id,params:v}],R=[{id:F.id,params:S}],M=[{id:W.id,params:f}];return{preUndos:R,undos:M,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:M,endColumn:w}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:R,endColumn:d},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:R,endColumn:d},C))){const b=w-M+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:W.id,params:v}],undos:[{id:W.id,params:f},{id:F.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:M,startColumn:w,endColumn:p,endRow:y}=u;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:d,endColumn:p},R)&&(l.push(R),r.Rectangle.contains({startRow:M,startColumn:w,endRow:d,endColumn:p},R))){const T=y-M+1;m.push({startRow:R.startRow+T,startColumn:R.startColumn,endRow:R.endRow+T,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:W.id,params:f},{id:F.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:M,startColumn:w,endColumn:p,endRow:y}=u;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:d,endColumn:p},R)&&(l.push(R),r.Rectangle.contains({startRow:M,startColumn:w,endRow:d,endColumn:p},R))){const T=y-M+1,D=r.Rectangle.moveVertical(R,-T);m.push(D)}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:W.id,params:f},{id:F.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:M,endColumn:w}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:R,endColumn:d},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:R,endColumn:d},C))){const b=w-M+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:W.id,params:v}],undos:[{id:W.id,params:f},{id:F.id,params:S}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(Mr.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:a,targetRange:i}=o.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,c=u?a.startRow:a.startColumn,l=u?i.startRow:i.startColumn,m=s.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:M,endColumn:w,rangeType:p}=C;r.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<M&&l>w?(M-=d,w-=d):c>w&&l<=M&&(M+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:M,endColumn:w,rangeType:p})}),s.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:f,subUnitId:v}=o.params,S=C=>this.refRangeHandle(C,f,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,S,f,v))})}if(Ir.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 a=s.getConfig().mergeData,i=o.params;if(!i)return;const{range:u}=i,d=o.id.includes("row"),c=o.id.includes("insert"),l=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-l+1,f=[];a.forEach(I=>{let{startRow:R,endRow:M,startColumn:w,endColumn:p,rangeType:y}=I;c?d?l<=R&&(R+=g,M+=g):l<=w&&(w+=g,p+=g):d?m<R&&(R-=g,M-=g):m<w&&(w-=g,p-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||f.push({startRow:R,endRow:M,startColumn:w,endColumn:p,rangeType:y})}),s.getConfig().mergeData=f,this.disposableCollection.dispose();const{unitId:v,subUnitId:S}=o.params,C=I=>this.refRangeHandle(I,v,S);f.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,S))})}}))}},h.MergeCellController=Rr([r.OnLifecycle(r.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(r.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(r.IUniverInstanceService)),Ge(3,z.Inject(z.Injector)),Ge(4,z.Inject(h.SheetInterceptorService)),Ge(5,z.Inject(h.SelectionManagerService))],h.MergeCellController);function ge(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const pr={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},_o={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}};var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,_r=(n,t,o,e)=>{for(var s=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&wr(t,o,s),s},tn=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends r.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,s){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,s);if(d!=null&&d.s){const c=u.get(d.s);if(c!=null&&c.n)return c.n}return null}deleteValues(t,o,e){const s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const a=s==null?void 0:s.getSheetBySheetId(o);if(!a)return;const i=s.getStyles();e.forEach(u=>{r.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,f={...m&&i.get(m)||{}};delete f.n;const v=i.setValue(f);l.s=v})})}setValues(t,o,e){const s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const a=s==null?void 0:s.getSheetBySheetId(o);if(!a)return;const i=s.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{r.Range.foreach(c,(l,m)=>{const g=a.getCellRaw(l,m);if(g){const v={...g.s&&i.get(g.s)||{},n:{pattern:d.pattern}},S=i.setValue(v);g.s=S}else{const f={n:{pattern:d.pattern}},v=i.setValue(f);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=_r([tn(0,r.IResourceManagerService),tn(1,r.IUniverInstanceService),tn(2,r.ILogService)],h.NumfmtService);const Uo="univer.sheet.editable";class Je extends r.PermissionPoint{constructor(o,e){super();j(this,"id",Uo);j(this,"value",!0);j(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${Uo}_${o}_${e}`}}var Ur=Object.defineProperty,br=Object.getOwnPropertyDescriptor,Tr=(n,t,o,e)=>{for(var s=e>1?void 0:e?br(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Ur(t,o,s),s},bo=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends r.RxDisposable{constructor(o,e){super();j(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).pipe(sn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).pipe(sn.takeUntil(this.dispose$)).subscribe(e=>{var s;return(s=this._disposableByUnit.get(e.getUnitId()))==null?void 0:s.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),s=new r.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),s.add(r.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),s.add(r.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),s.add(r.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,s)}getEditable$(o,e){return ke.of({value:!0,status:r.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,s){const a=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=s||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Tr([r.OnLifecycle(r.LifecycleStages.Ready,h.SheetPermissionService),bo(0,z.Inject(r.IPermissionService)),bo(1,z.Inject(r.IUniverInstanceService))],h.SheetPermissionService);function Er(n){var a,i,u;const t=n.get(r.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),s=(i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,s))==null?void 0:u.pipe(ke.map(d=>!d.value))}var Nr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Or=(n,t,o,e)=>{for(var s=e>1?void 0:e?Dr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Nr(t,o,s),s},pt=(n,t)=>(o,e)=>t(o,e,n);const Pr="SHEET_DEFINED_NAME_PLUGIN";let wt=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=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Pr,businesses:[r.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Or([r.OnLifecycle(r.LifecycleStages.Ready,wt),pt(0,r.ICommandService),pt(1,r.IUniverInstanceService),pt(2,se.IDefinedNamesService),pt(3,r.IResourceManagerService)],wt);var kr=Object.defineProperty,Ar=Object.getOwnPropertyDescriptor,Vr=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ar(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&kr(t,o,s),s},nn=(n,t)=>(o,e)=>t(o,e,n);const Lr="sheets";h.UniverSheetsPlugin=(yt=class extends r.Plugin{constructor(t,o,e,s){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[ft],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([St],[Rt]),o.forEach(s=>{t.add(s)})}},j(yt,"pluginName",Lr),j(yt,"type",r.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Vr([nn(1,r.ICommandService),nn(2,z.Inject(r.LocaleService)),nn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Br=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,We.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],jr=[q.id,Ve.id,F.id,W.id],Wr=1.5,Fr="rgba(255, 255, 255, 0.01)";function Hr(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 $r(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=To(o)),s}function To(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Gr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),s=r.makeCellRangeToRangeData(e);if(s)return{range:s,primary:e,style:null}}const zr=(n,t,o)=>{const s=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(s){const l=s[(s==null?void 0:s.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:f,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===r.Dimension.COLUMNS){const w=o.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);w&&(C=w.endColumn,f=w.startRow,S=w.endRow)}else if(a===r.Dimension.ROWS){const w=o.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);w&&(S=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:f,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:f===g&&v===m},R=s.map((w,p,y)=>({range:w.range,style:null,primary:p===y.length-1?I:null})),M={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:M}}return null}return null},qr=(n,t)=>{const e=n.get(h.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:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=zr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=qr,h.AddWorksheetMergeMutation=W,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Br,h.COMMAND_LISTENER_VALUE_CHANGE=jr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=Ut,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=mn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=Wt,h.DeltaRowHeightCommand=Qn,h.EffectRefRangId=k,h.EmptyMutation=ro,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=pn,h.InsertColBeforeCommand=Mn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=ao,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Rn,h.InsertRowBeforeCommand=Cn,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=wn,h.InsertSheetMutation=Ue,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=co,h.MoveColsCommand=Pt,h.MoveColsMutation=Te,h.MoveRangeCommand=st,h.MoveRangeMutation=Ve,h.MoveRowsCommand=Ot,h.MoveRowsMutation=be,h.NORMAL_SELECTION_PLUGIN_NAME=X,h.OperatorType=A,h.RangeMergeUtil=Ps,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=io,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=cn,h.RemoveWorksheetMergeCommand=Tn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=$n,h.ResetTextColorCommand=Fn,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Fr,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Wr,h.ScrollToCellOperation=lo,h.SelectionMoveType=rn,h.SetBackgroundColorCommand=Hn,h.SetBoldCommand=Is,h.SetBorderBasicCommand=En,h.SetBorderColorCommand=On,h.SetBorderCommand=je,h.SetBorderPositionCommand=Nn,h.SetBorderStyleCommand=Dn,h.SetColHiddenCommand=kn,h.SetColHiddenMutation=We,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=uo,h.SetFontFamilyCommand=ys,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Vn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=zn,h.SetItalicCommand=Ms,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=fe,h.SetRowHeightCommand=eo,h.SetRowHiddenCommand=Bn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=Pn,h.SetSelectedRowsVisibleCommand=Ln,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ws,h.SetStyleCommand=J,h.SetTabColorCommand=Yn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Wn,h.SetTextRotationCommand=xn,h.SetTextWrapCommand=qn,h.SetUnderlineCommand=ps,h.SetVerticalTextAlignCommand=Gn,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=jt,h.SetWorksheetHideCommand=Xn,h.SetWorksheetHideMutation=_e,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Jn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Ds,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=to,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=To,h.convertSelectionDataToRange=$r,h.createTopMatrixFromMatrix=oo,h.createTopMatrixFromRanges=no,h.enUS=pr,h.factoryRemoveNumfmtUndoMutation=Ls,h.factorySetNumfmtUndoMutation=Vs,h.findAllRectangle=qt,h.followSelectionOperation=Se,h.getAddMergeMutationRangeByType=yo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=Er,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Hr,h.getPrimaryForRange=ne,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=ln,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=ur,h.handleDefaultRangeChangeWithEffectRefCommands=ir,h.handleDeleteRangeMoveLeft=Co,h.handleDeleteRangeMoveUp=Ro,h.handleDeleteRangeMutation=ss,h.handleIRemoveCol=Jt,h.handleIRemoveRow=Zt,h.handleInsertCol=en,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=So,h.handleInsertRangeMutation=os,h.handleInsertRow=Qt,h.handleMoveCols=Xt,h.handleMoveRange=vo,h.handleMoveRows=Kt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Gr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|