@univerjs/sheets 0.1.7 → 0.1.9
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 +3443 -3379
- 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/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/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 +5 -2
- 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__/__testing__.d.ts +1 -1
- 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 +14 -12
- 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/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Do=Object.defineProperty;var Eo=(o,t,n)=>t in o?Do(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n;var B=(o,t,n)=>(Eo(o,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),G=require("@wendellhu/redi"),Pe=require("rxjs"),oe=require("@univerjs/engine-formula"),No=require("rxjs/operators"),Oo=require("@univerjs/engine-render");var Ao=Object.defineProperty,Po=Object.getOwnPropertyDescriptor,ko=(o,t,n,e)=>{for(var r=e>1?void 0:e?Po(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Ao(t,n,r),r},xo=(o,t)=>(n,e)=>t(n,e,o);const Y="normalSelectionPluginName";var Cn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(Cn||{});exports.SelectionManagerService=class{constructor(t){B(this,"_selectionInfo",new Map);B(this,"_currentSelection",null);B(this,"_selectionMoveStart$",new Pe.Subject);B(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());B(this,"_selectionMoving$",new Pe.Subject);B(this,"selectionMoving$",this._selectionMoving$.asObservable());B(this,"_selectionMoveEnd$",new Pe.BehaviorSubject(null));B(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());B(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:Y,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=Y,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(n=>n.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),n===0?this._refreshStart(this._currentSelection):n===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:n},e)=>t.some(({range:r},a)=>e===a?!1:n.startRow<=r.endRow&&n.endRow>=r.startRow&&n.startColumn<=r.endColumn&&n.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:n,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(n))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[0]}_getLastByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[n.length-1]}_addByParam(t,n=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.push(...i)}n&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:n,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const i=this._selectionInfo.get(n);i.has(e)||i.set(e,new Map);const c=i.get(e);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(t){const n=this._getSelectionDatas(t);n==null||n.splice(0),this._refresh(t)}_removeByParam(t,n){const e=this._getSelectionDatas(n);e==null||e.splice(t,1),this._refresh(n)}};exports.SelectionManagerService=ko([xo(0,G.Inject(s.ThemeService))],exports.SelectionManagerService);const Bo=s.createInterceptorKey("CELL_CONTENT"),Vo=s.createInterceptorKey("PERMISSION"),ke={CELL_CONTENT:Bo,PERMISSION:Vo};var Lo=Object.defineProperty,jo=Object.getOwnPropertyDescriptor,Wo=(o,t,n,e)=>{for(var r=e>1?void 0:e?jo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Lo(t,n,r),r},Fo=(o,t)=>(n,e)=>t(n,e,o);exports.SheetInterceptorService=class extends s.Disposable{constructor(n){super();B(this,"_interceptorsByName",new Map);B(this,"_commandInterceptors",[]);B(this,"_workbookDisposables",new Map);B(this,"_worksheetDisposables",new Map);this._currentUniverService=n,this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(s.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(ke.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}}),this.intercept(ke.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,n)))}onCommandExecute(n){const e=this._commandInterceptors.map(r=>r.getMutations(n));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(n,e){const r=n;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(n){const e=n,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(n){const e=new s.DisposableCollection,r=n.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(ke.CELL_CONTENT)(c.getCellRaw(g,v),{unitId:r,subUnitId:u,row:g,col:v,worksheet:c,workbook:n})}});d.add(m),a._worksheetDisposables.set(sn(r,c),d)})};n.getSheets().forEach(c=>i(c)),e.add(s.toDisposable(n.sheetCreated$.subscribe(c=>i(c)))),e.add(s.toDisposable(n.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(()=>n.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c))))}_disposeWorkbookInterceptor(n){const e=n.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(n,e){const r=sn(n,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Wo([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),Fo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function sn(o,t){return`${o}|${t.getSheetId()}`}const Ie=(o,t)=>{const{unitId:n,subUnitId:e,cellValue:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,h)=>{const S=s.Tools.deepClone(u==null?void 0:u.getValue(g,v))||{},C=l.getStyleByCell(S),I=Go(C,h&&h.s?h.s:null);S.s=I,d.setValue(g,v,Ho(S))}),{...t,options:{},cellValue:d.getMatrix()}};function Ho(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(o,t)=>{const{cellValue:n,subUnitId:e,unitId:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(n).forValue((m,g,v)=>{if(!v)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},S=v.t===s.CellValueType.FORCE_STRING?v.t:v.v!==void 0?an(v.v,v.t):an(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=S===s.CellValueType.NUMBER?Number(v.v):S===s.CellValueType.BOOLEAN?$o(v.v)?1:0:v.v),h.v!==void 0&&(h.t=S),v.s!==void 0){const C=l.getStyleByCell(h);C==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const I=rt(C,v.s?v.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete h.s:h.s=l.setValue(I),!v.p&&h.p&&Yo(h.p,v.s?v.s:null)}u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function an(o,t){return o===null?null:typeof o=="string"?In(o)?(+o==0||+o==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:Jo(o)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof o=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function $o(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(In(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function Go(o,t){return zo(o,t)}function zo(o,t){if(!t||!Object.keys(t).length)return o;const n=o||{};for(const e in t)e==="bd"?n[e]=qo(n[e]||{},t[e]):e in n||(n[e]=null);return n}function qo(o,t){if(!t||!Object.keys(t).length)return o;for(const n in t)n in o||(o[n]=null);return o}function rt(o,t,n=!1){if(t===null)return t;if(t===void 0)return o;const e=s.Tools.deepClone(o)||{};if(e){for(const r in t)n&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function fn(o,t){return o.some(n=>n.startIndex===t)?fn(o,t+1):t}function Yo(o,t){var i;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let n=0;const e=[],r=((i=o.body)==null?void 0:i.paragraphs)||[];for(const c of o.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(n<u){const g={st:n,ed:u},v=rt({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=rt(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),n=fn(r,l)}const a=o.body.dataStream.endsWith(`\r
|
|
2
|
-
`)?o.body.dataStream.length-2:o.body.dataStream.length;if(n<a){const c={st:n,ed:a},u=rt({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}o.body.textRuns=s.normalizeTextRuns(e)}function Ko(o){return/^-?\d+(\.\d+)?$/.test(o)}function In(o){return Ko(o)?Number(o)<=Number.MAX_SAFE_INTEGER:!1}function Jo(o){return o.toUpperCase()==="TRUE"||o.toUpperCase()==="FALSE"}const lt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Xo(d)},h=Ie(o,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:lt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Ut={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:Zo(d)},g=Ie(o,m),v=a.onCommandExecute({id:Ut.id}),h=[{id:$.id,params:m},...v.redos],S=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,n).result?(r.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:h}),!0):!1}};function Zo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null})}),t.getData()}const mt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async o=>{const t=o.get(s.IUniverInstanceService),n=o.get(s.ICommandService),e=o.get(exports.SelectionManagerService),r=o.get(s.IUndoRedoService),a=o.get(exports.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(o,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const S=a.onCommandExecute({id:mt.id});return m.push(...S.redos),g.unshift(...S.undos),s.sequenceExecute(m,n)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.getData()}const _t=(o,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ye={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=n.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}},Rn=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:r,unitId:a}=t,i=e.getSheetBySheetId(r).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===r),sheet:i,unitId:a}},We={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=n.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},pn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,t)=>{var S,C;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.LocaleService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(S=t.unitId)!=null?S:i,c=(C=t.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d=s.Tools.deepClone(l.getConfig());d.name+=a.t("sheets.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(l)+1,sheet:d,unitId:i},v=_t(o,g);return n.syncExecuteCommand(ye.id,g)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:v}],redoMutations:[{id:ye.id,params:g}]}),!0):!1}},xe={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(o,t)=>{const{from:n,to:e}=t;if(!n||!e)return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(n.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(e.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},H={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(exports.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return n.replace(e,r),!0}};function Ke(o,t,n=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(o)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(o,l)||r.push(l)}}),r.length===0)return o;const a=s.Rectangle.union(o,...r);return n?Ke(a,t,n):a}function er(o,t,n){let e=null;return n.getMatrixWithMergedCells(o,t,o,t).forValue((a,i,c)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:o,startRow:o,startColumn:t,endRow:o,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function tr(o,t,n){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;return Number.isNaN(e)&&(o.startRow=0),Number.isNaN(a)&&(o.endRow=t),Number.isNaN(r)&&(o.startColumn=0),Number.isNaN(i)&&(o.endColumn=n),o}function Q(o,t){const n=Number.isNaN(o.startRow)?0:o.startRow,e=Number.isNaN(o.startColumn)?0:o.startColumn,r=t.getMergedCell(n,e);return r?{...r,actualRow:n,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:e,endRow:o.startRow,endColumn:o.startColumn,actualRow:n,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Re=(o,t,n)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),pluginName:Y,selections:[{range:o,primary:Q(o,n)}]}}),Mn="sheet.command.move-range",gt={type:s.CommandType.COMMAND,id:Mn,handler:(o,t)=>{var C,I;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ErrorService),i=r.getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId(),d=bt(o,{unitId:u,subUnitId:l,range:t.fromRange},{unitId:u,subUnitId:l,range:t.toRange});if(d===null)return a.emit("Across a merged cell."),!1;const g=o.get(exports.SheetInterceptorService).onCommandExecute({id:gt.id,params:{...t}}),v=[...(C=g.preRedos)!=null?C:[],...d.redos,...g.redos,{id:H.id,params:{unitId:u,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:Q(t.toRange,c)}]}}],h=[...(I=g.preUndos)!=null?I:[],...d.undos,...g.undos,{id:H.id,params:{unitId:u,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:Q(t.fromRange,c)}]}}];return s.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:u,undoMutations:h,redoMutations:v}),!0):!1}};function bt(o,t,n,e=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=t,{range:l,subUnitId:d}=n,g=o.get(s.IUniverInstanceService).getUniverSheetInstance(u),v=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),S=v==null?void 0:v.getCellMatrix(),C=h==null?void 0:h.getCellMatrix();if(v&&h&&S&&C){const I=Ke(l,v,!1);if(!s.Rectangle.equals(l,I)&&!e)return null;const p=new s.ObjectMatrix,f=new s.ObjectMatrix;s.Range.foreach(i,(y,b)=>{p.setValue(y,b,C.getValue(y,b)),f.setValue(y,b,null)});const R=new s.ObjectMatrix;s.Range.foreach(l,(y,b)=>{R.setValue(y,b,S.getValue(y,b))});const M=new s.ObjectMatrix;s.Range.foreach(i,(y,b)=>{const E=s.cellToRange(y,b),V=s.Rectangle.getRelativeRange(E,i),w=s.Rectangle.getPositionRange(V,l);M.setValue(w.startRow,w.startColumn,C.getValue(y,b))});const _={from:{value:f.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u},U={from:{value:p.getMatrix(),subUnitId:c},to:{value:R.getMatrix(),subUnitId:d},unitId:u};r.push({id:xe.id,params:_}),a.push({id:xe.id,params:U})}return{redos:r,undos:a}}const Ue={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),{value:c,range:u,unitId:l=r.getCurrentUniverSheetInstance().getUnitId(),subUnitId:d=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=u?[u]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new s.ObjectMatrix;let v;if(s.Tools.isArray(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:_,endRow:U,endColumn:y}=m[R];for(let b=0;b<=U-M;b++)for(let E=0;E<=y-_;E++)g.setValue(b+M,E+_,c[b][E])}else if(s.isICellData(c))for(let R=0;R<m.length;R++){const{startRow:M,startColumn:_,endRow:U,endColumn:y}=m[R];for(let b=M;b<=U;b++)for(let E=_;E<=y;E++)g.setValue(b,E,c)}else v=c;const h={subUnitId:d,unitId:l,cellValue:v!=null?v:g.getMatrix()},S=Ie(o,h);if(!i.fetchThroughInterceptors(ke.PERMISSION)(null,{id:Ue.id,params:h}))return!1;const C=n.syncExecuteCommand($.id,h),{undos:I,redos:p}=i.onCommandExecute({id:Ue.id,params:{...h,range:m}}),f=s.sequenceExecute([...p],n);return C&&f.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:h},...p]}),!0):!1}};function Tt(o,t){const n=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=t,l=o.get(s.IUniverInstanceService),d=o.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let f,R;if(c===s.Dimension.COLUMNS){const _=Math.min(i.endRow,h.endRow);let U=0;for(let b=i.startRow;b<=_;b++){const E=v.getRow(b),V=E?s.getArrayLength(E)-1:0;U=Math.max(U,V)}f={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:U};const y=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:f.startColumn+y,endRow:_,endColumn:f.endColumn+y}}else{const _=Math.min(i.endColumn,h.endColumn),U=h.endRow;f={startRow:i.startRow,startColumn:i.startColumn,endRow:U,endColumn:_};const y=i.endRow-i.startRow+1;R={startRow:f.startRow+y,startColumn:i.startColumn,endRow:f.endRow+y,endColumn:_}}const M=bt(o,{unitId:r,subUnitId:a,range:f},{unitId:r,subUnitId:a,range:R},!0);M&&(n.push(...M.redos),e.push(...M.undos))}if(Object.entries(u).length===0)for(let f=i.startRow;f<=i.endRow;f++){u[f]||(u[f]={});for(let R=i.startColumn;R<=i.endColumn;R++)u[f][R]=null}const S={subUnitId:a,unitId:r,cellValue:u},C=Ie(o,S),{undos:I,redos:p}=d.onCommandExecute({id:Ue.id,params:{...S,range:i}});n.push({id:$.id,params:S},...p),e.push({id:$.id,params:C},...I)}return{redo:n,undo:e}}function Dt(o,t){const n=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=o.get(s.IUniverInstanceService),l=o.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:rr([i])},S=Ie(o,h),C=l.onCommandExecute({id:Ue.id,params:h});if(n.push({id:$.id,params:h},...C.redos),e.push(...C.undos,{id:$.id,params:S}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let I=null,p=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const f=Math.min(i.endRow,v.endRow);let R=0;for(let _=i.startRow;_<=f;_++){const U=g.getRow(_),y=U?s.getArrayLength(U)-1:0;R=Math.max(R,y)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:f,endColumn:R};const M=i.endColumn-i.startColumn+1;p={startRow:i.startRow,startColumn:I.startColumn-M,endRow:f,endColumn:I.endColumn-M}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const f=Math.min(i.endColumn,v.endColumn),R=v.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:R,endColumn:f};const M=i.endRow-i.startRow+1;p={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:f}}if(I&&p){const f=bt(o,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:p},!0);f&&(n.push(...f.redos),e.push(...f.undos))}}}return{redo:n,undo:e}}function nr(o,t,n,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=n;m>=i;m--)for(let g=u;g<=l;g++){const v=o.getValue(m,g);v==null?o.realDeleteValue(m+d,g):o.setValue(m+d,g,v)}for(let m=c;m>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;m<=c;m++)for(let g=e;g>=u;g--){const v=o.getValue(m,g);v==null?o.realDeleteValue(m,g+d):o.setValue(m,g+d,v)}for(let m=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}}function or(o,t,n,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;m<=n;m++)for(let g=c;g<=u;g++){const v=o.getValue(m+l,g);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=e;g++){const v=o.getValue(m,g+d);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}}function rr(o){const t=new s.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const wn="sheet.command.delete-range-move-left",ht={type:s.CommandType.COMMAND,id:wn,handler:async(o,t)=>{var f,R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=a.getLast())==null?void 0:f.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.COLUMNS},v=i.onCommandExecute({id:ht.id,params:{range:l}}),{redo:h,undo:S}=Dt(o,g),C=[...(R=v.preRedos)!=null?R:[],...h],I=[...v.undos,...S];return C.push(...v.redos),C.push(Re(l,d,m)),I.push(...(M=v.preUndos)!=null?M:[]),s.sequenceExecute(C,n).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},yn="sheet.command.delete-range-move-up",vt={type:s.CommandType.COMMAND,id:yn,handler:async(o,t)=>{var f,R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(exports.SheetInterceptorService),c=r.getCurrentUniverSheetInstance().getUnitId(),u=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(f=a.getLast())==null?void 0:f.range),!l)return!1;const d=r.getUniverSheetInstance(c);if(!d)return!1;const m=d.getSheetBySheetId(u);if(!m)return!1;const g={range:l,subUnitId:u,unitId:c,shiftDimension:s.Dimension.ROWS},v=i.onCommandExecute({id:vt.id,params:{range:l}}),{redo:h,undo:S}=Dt(o,g),C=[...(R=v.preRedos)!=null?R:[],...h],I=[...v.undos,...S];return C.push(...v.redos),C.push(Re(l,d,m)),I.push(...(M=v.preUndos)!=null?M:[]),await s.sequenceExecute(C,n).result?(e.pushUndoRedo({unitID:c,undoMutations:I.reverse(),redoMutations:C}),!0):!1}},Et=(o,t)=>{if(o.get(s.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:s.CommandType.MUTATION,handler:(o,t)=>{var h;const{unitId:n,subUnitId:e,range:r,rowInfo:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let S=m;S<m+g;S++)a?s.insertMatrixArray(S,(h=a[S-r.startRow])!=null?h:d,l):s.insertMatrixArray(S,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Nt=(o,t)=>{if(o.get(s.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:s.CommandType.MUTATION,handler:(o,t)=>{var h;const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let S=d;S<d+m;S++){const C={w:g,hd:0};c?s.insertMatrixArray(S,(h=c[S-i.startColumn])!=null?h:C,l):s.insertMatrixArray(S,C,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},sr=(o,t)=>{const r=t.getRowManager().getRowData(),a={},i=o.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:u}},Ce={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getRowManager().getRowData(),u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},ir=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=t.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},fe={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},ar="sheet.command.insert-range-move-down",St={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,t)=>{var E,V,w;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ILogService),i=o.get(exports.SelectionManagerService),c=o.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=t==null?void 0:t.range;if(d||(d=(E=i.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(C.startRow,C.endRow,d.startColumn,d.endColumn).getDataRange().endRow,f=Math.max(p+(d.endRow-d.startRow+1)-C.endRow,0);if(f>0){const q=d.startRow-1,X=g.getRowHeight(q),z={unitId:u,subUnitId:l,range:{startRow:C.endRow+1,endRow:C.endRow+f,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(f).fill(void 0).map(()=>({h:X,hd:s.BooleanNumber.FALSE}))};v.push({id:ve.id,params:z});const re=Et(o,z);h.push({id:Ce.id,params:re})}const R={};s.Range.foreach(d,(q,X)=>{const z=g.getCell(q,X);z&&(R[q]||(R[q]={}),R[q][X]={s:z.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS,cellValue:R},{redo:_,undo:U}=Tt(o,M);v.push(..._),h.push(...U);const y=c.onCommandExecute({id:St.id,params:{range:d}});return v.push(...y.redos),v.push(Re(d,m,g)),h.push(...(V=y.preUndos)!=null?V:[]),v.unshift(...(w=y.preRedos)!=null?w:[]),h.unshift(...y.undos),s.sequenceExecute(v,n)?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},Un="sheet.command.insert-range-move-right",Ct={type:s.CommandType.COMMAND,id:Un,handler:async(o,t)=>{var E,V,w;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ILogService),i=o.get(exports.SelectionManagerService),c=o.get(exports.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const u=r.getCurrentUniverSheetInstance().getUnitId(),l=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let d=t==null?void 0:t.range;if(d||(d=(E=i.getLast())==null?void 0:E.range),!d)return!1;const m=r.getUniverSheetInstance(u);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],S=g.getCellMatrix(),C=S.getDataRange(),p=S.getSlice(d.startRow,d.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,f=Math.max(p+(d.endColumn-d.startColumn+1)-C.endColumn,0);if(f>0){const q=d.startColumn-1,X=g.getColumnWidth(q),z={unitId:u,subUnitId:l,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+f},colInfo:new Array(f).fill(void 0).map(()=>({w:X,hd:s.BooleanNumber.FALSE}))};v.push({id:Se.id,params:z});const re=Nt(o,z);h.push({id:fe.id,params:re})}const R={};s.Range.foreach(d,(q,X)=>{const z=g.getCell(q,X);!z||!z.s||(R[q]||(R[q]={}),R[q][X]={s:z.s})});const M={range:d,subUnitId:l,unitId:u,shiftDimension:s.Dimension.COLUMNS,cellValue:R},{redo:_,undo:U}=Tt(o,M);v.push(..._),h.push(...U);const y=c.onCommandExecute({id:Ct.id,params:{range:d}});return v.push(...y.redos),v.push(Re(d,m,g)),h.push(...(V=y.preUndos)!=null?V:[]),v.unshift(...(w=y.preRedos)!=null?w:[]),h.unshift(...y.undos),s.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:u,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},_n="sheet.command.insert-row",Fe={type:s.CommandType.COMMAND,id:_n,handler:async(o,t)=>{var R,M;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.getSheetBySheetId(t.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=t,{startRow:g,endRow:v}=u,h=l===s.Direction.UP?g:g-1,S=c.getRowHeight(h),C={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:S,hd:s.BooleanNumber.FALSE}))},I=Et(o,C),p=a.onCommandExecute({id:Fe.id,params:t});return s.sequenceExecute([{id:ve.id,params:C},...p.redos,Re(u,i,c)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(R=p.preUndos)!=null?R:[],{id:Ce.id,params:I},...p.undos],redoMutations:[...(M=p.preRedos)!=null?M:[],{id:ve.id,params:C},...p.redos]}),!0):!1}},bn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var g;const n=(g=o.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const S=i.getCell(v,h);!S||!S.s||(d[v]||(d[v]={}),d[v][h]={s:S.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return o.get(s.ICommandService).executeCommand(Fe.id,m)}},Tn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const n=(m=o.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return o.get(s.ICommandService).executeCommand(Fe.id,d)}},Dn="sheet.command.insert-col",He={type:s.CommandType.COMMAND,id:Dn,handler:async(o,t)=>{var M,_,U;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l,cellValue:d}=t,{startColumn:m,endColumn:g}=t.range,v=r.getUniverSheetInstance(t.unitId),h=v.getSheetBySheetId(t.subUnitId),S=c===s.Direction.LEFT?m:m-1,C=h.getColumnWidth(S),I={unitId:l,subUnitId:u,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:C,hd:s.BooleanNumber.FALSE}))},p=Nt(o,I);t.unitId,t.subUnitId,t.range,s.Dimension.COLUMNS;const f=a.onCommandExecute({id:He.id,params:t});return s.sequenceExecute([...(M=f.preRedos)!=null?M:[],{id:Se.id,params:I},...f.redos,Re(i,v,h)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(_=f.preUndos)!=null?_:[],{id:fe.id,params:p},...f.undos].filter(Boolean),redoMutations:[...(U=f.preRedos)!=null?U:[],{id:Se.id,params:I},...f.redos].filter(Boolean)}),!0):!1}},En={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(d[g]||(d[g]={}),d[g][v]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return o.get(s.ICommandService).executeCommand(He.id,m)}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const n=o.get(exports.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return o.get(s.ICommandService).executeCommand(He.id,d)}},On={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(o,t)=>{var v,h;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.LocaleService),i=(v=t==null?void 0:t.unitId)!=null?v:r.getCurrentUniverSheetInstance().getUnitId(),c=r.getUniverSheetInstance(i);if(!c)return!1;let u=c.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(u=(h=t.index)!=null?h:u,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=s.Tools.generateRandomId(),l.name=c.generateNewSheetName(`${a.t("sheets.sheet")}`));const d={index:u,sheet:l,unitId:i},m=_t(o,d);return n.syncExecuteCommand(ye.id,d)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:We.id,params:m}],redoMutations:[{id:ye.id,params:d}]}),!0):!1}};function cr(o,t){const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:n,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:n,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const _e={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function ur(o,t){const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:n,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:n,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:r,targetRange:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function dr(o,t){return t.getMergeData().some(n=>n.startRow<o&&o<=n.endRow)}function lr(o,t){return t.getMergeData().some(n=>n.startColumn<o&&o<=n.endColumn)}const An="sheet.command.move-rows",Ot={id:An,type:s.CommandType.COMMAND,handler:async(o,t)=>{var z,re;const e=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(se=>se.range.rangeType===s.RANGE_TYPE.ROW&&se.range.startRow<=r&&r<=se.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=o.get(s.ErrorService),h=i[0].range,S=i[0].primary,C=Ke(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(dr(a,d))return v.emit("Across a merged cell."),!1;const I={...h,startRow:a,endRow:a+h.endRow-h.startRow},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=cr(o,p),M=a-r<0,_=h.endRow-h.startRow+1,U=M?I:{...I,startRow:I.startRow-_,endRow:I.endRow-_},y={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:Q(U,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:S,style:null}]},E=o.get(s.ICommandService),V=c.onCommandExecute({id:Ot.id,params:t}),w=[...(z=V.preRedos)!=null?z:[],{id:_e.id,params:p},{id:H.id,params:y},...V.redos],q=[...(re=V.preUndos)!=null?re:[],{id:_e.id,params:f},{id:H.id,params:b},...V.undos];return s.sequenceExecute(w,E).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0):!1}},Pn="sheet.command.move-cols",At={id:Pn,type:s.CommandType.COMMAND,handler:async(o,t)=>{var z,re;const e=o.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(se=>se.range.rangeType===s.RANGE_TYPE.COLUMN&&se.range.startColumn<=r&&r<=se.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=o.get(exports.SheetInterceptorService),l=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=o.get(s.ErrorService),h=i[0].range,S=i[0].primary,C=Ke(h,d,!1);if(!s.Rectangle.equals(h,C))return v.emit("Only part of a merged cell is selected."),!1;if(lr(a,d))return v.emit("Across a merged cell."),!1;const I={...h,startColumn:a,endColumn:a+h.endColumn-h.startColumn},p={unitId:m,subUnitId:g,sourceRange:h,targetRange:I},f=ur(o,p),R=h.endColumn-h.startColumn+1,U=a-r<0?I:{...I,startColumn:I.startColumn-R,endColumn:I.endColumn-R},y={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:U,primary:Q(U,d),style:null}]},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:S,style:null}]},E=o.get(s.ICommandService),V=c.onCommandExecute({id:At.id,params:t}),w=[...(z=V.preRedos)!=null?z:[],{id:be.id,params:p},{id:H.id,params:y},...V.redos],q=[...(re=V.preUndos)!=null?re:[],{id:be.id,params:f},{id:H.id,params:b},...V.undos];return s.sequenceExecute(w,E).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:q,redoMutations:w}),!0}},kn="sheet.command.remove-row",ft={type:s.CommandType.COMMAND,id:kn,handler:async(o,t)=>{var I,p,f,R;const n=o.get(exports.SelectionManagerService),e=o.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=n.getLast())==null?void 0:I.range),!r)return!1;const i=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startColumn:0,endColumn:Math.max(c.getMaxColumns()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=c.getCellMatrix().getSlice(r.startRow,r.endRow,0,c.getColumnCount()-1),g={unitId:u,subUnitId:l,cellValue:m.getMatrix()},v=sr(d,c),h=e.onCommandExecute({id:ft.id,params:{range:r}}),S=o.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:Ce.id,params:d},...h.redos,Re(r,i,c)],S).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:ve.id,params:v},{id:$.id,params:g},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:Ce.id,params:d},...h.redos]}),!0):!1}},xn="sheet.command.remove-col",It={type:s.CommandType.COMMAND,id:xn,handler:async(o,t)=>{var I,p,f,R;const n=o.get(exports.SelectionManagerService),e=o.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(I=n.getLast())==null?void 0:I.range),!r)return!1;const i=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),c=i.getActiveSheet(),u=i.getUnitId(),l=c.getSheetId();r={...r,startRow:0,endRow:Math.max(c.getMaxRows()-1,0)};const d={unitId:u,subUnitId:l,range:r},m=ir(o,d),g=c.getCellMatrix().getSlice(0,c.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:u,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:It.id,params:{range:r}}),S=o.get(s.ICommandService);return s.sequenceExecute([...(p=h.preRedos)!=null?p:[],{id:fe.id,params:d},...h.redos,Re(r,i,c)],S).result?(o.get(s.IUndoRedoService).pushUndoRedo({unitID:u,undoMutations:[...(f=h.preUndos)!=null?f:[],{id:Se.id,params:m},{id:$.id,params:v},...h.undos],redoMutations:[...(R=h.preRedos)!=null?R:[],{id:fe.id,params:d},...h.redos]}),!0):!1}},Pt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(o,t)=>{var I,p,f,R;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService);let i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(I=t.unitId)!=null?I:i,c=(p=t.subUnitId)!=null?p:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||u.getSheets().length<=1)return!1;const d=u.getSheetIndex(l);u.getConfig().sheetOrder[d+1];const m={subUnitId:c,unitId:i,subUnitName:l.getName()},g=Rn(o,m),v=a.onCommandExecute({id:Pt.id,params:{unitId:i,subUnitId:c}}),h=[...(f=v.preRedos)!=null?f:[],{id:We.id,params:m},...v.redos],S=[...(R=v.preUndos)!=null?R:[],{id:ye.id,params:g},...v.undos];return s.sequenceExecute(h,n)?(e.pushUndoRedo({unitID:i,undoMutations:S,redoMutations:h}),!0):!1}},le=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},L={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},te=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},j={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.splice(l,1)}return!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(M=>{g.forEach(_=>{s.Rectangle.intersects(M,_)&&(m=!0)})}),!m)return!1;const v=te(o,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const S=s.Tools.deepClone(h),C=s.Tools.deepClone(h),I=C[C.length-1],{startRow:p,startColumn:f}=I.range;return I.primary={startRow:p,startColumn:f,endRow:p,endColumn:f,actualRow:p,actualColumn:f,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:j.id,params:v},{id:H.id,params:{selections:C}}],n)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:L.id,params:v},{id:H.id,params:{selections:S}}],redoMutations:[{id:j.id,params:v},{id:H.id,params:{selections:C}}]}),!0):!1}};class Ne{constructor(){B(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});B(this,"_borderInfo$",new Pe.BehaviorSubject(this._borderInfo));B(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mr(o,t,n){const e=t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance();if(!e)throw new Error;const r=n?e.getSheetBySheetId(n):e.getActiveSheet();if(!r)throw new Error;return{workbook:e,worksheet:r,unitId:t!=null?t:e.getUnitId(),subUnitId:n!=null?n:r.getSheetId()}}function Ze(o,t){const{startRow:n,startColumn:e,endRow:r,endColumn:a}=o;for(let i=n;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const Vn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(o,t)=>{const{unitId:n,subUnitId:e,value:r}=t,{type:a,color:i,style:c}=r,u=o.get(s.ICommandService),l=o.get(Ne);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand($e.id,{unitId:n,subUnitId:e})}},Ln={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(o,t)=>{if(!t.value)return!1;const n=o.get(s.ICommandService);return o.get(Ne).setType(t.value),n.executeCommand($e.id)}},jn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService);return o.get(Ne).setStyle(t.value),n.executeCommand($e.id)}},Wn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService);return o.get(Ne).setColor(t.value),n.executeCommand($e.id)}},$e={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SelectionManagerService),i=o.get(Ne),{worksheet:c,unitId:u,subUnitId:l}=mr(r,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),d=a.getSelectionRanges(),m=c.getConfig().mergeData;if(!(d!=null&&d.length))return!1;const{style:g,color:v,type:h,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const C=h===s.BorderType.TOP||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,I=h===s.BorderType.LEFT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,p=h===s.BorderType.BOTTOM||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,f=h===s.BorderType.RIGHT||h===s.BorderType.ALL||h===s.BorderType.OUTSIDE,R=h===s.BorderType.VERTICAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,M=h===s.BorderType.HORIZONTAL||h===s.BorderType.ALL||h===s.BorderType.INSIDE,_=h.indexOf("tlbr")>-1,U=h.indexOf("tlbc")>-1,y=h.indexOf("tlmr")>-1,b=h.indexOf("bltr")>-1,E=h.indexOf("mltr")>-1,V=h.indexOf("bctr")>-1,w=d[0],q={startRow:w.startRow-1,startColumn:w.startColumn,endRow:w.startRow-1,endColumn:w.endColumn},X={startRow:w.startRow,startColumn:w.startColumn-1,endRow:w.endRow,endColumn:w.startColumn-1},z={startRow:w.endRow+1,startColumn:w.startColumn,endRow:w.endRow+1,endColumn:w.endColumn},re={startRow:w.startRow,startColumn:w.endColumn+1,endRow:w.endRow,endColumn:w.endColumn+1},se={startRow:w.startRow,startColumn:w.startColumn,endRow:w.startRow,endColumn:w.endColumn},tn={startRow:w.startRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.startColumn},nn={startRow:w.endRow,startColumn:w.startColumn,endRow:w.endRow,endColumn:w.endColumn},on={startRow:w.startRow,startColumn:w.endColumn,endRow:w.endRow,endColumn:w.endColumn},P=new s.ObjectMatrix,F={s:g,cl:{rgb:v}},Xe=(N,T)=>{let x=null;return m.forEach(J=>{s.Rectangle.intersects(J,{startColumn:T,endColumn:T,startRow:N,endRow:N})&&(x=J)}),x};function W(N,T,x){N.startRow<0||N.startColumn<0||Ze(N,(J,ie)=>{var D,Ge;const Z=Xe(J,ie);let ee=T;if(Z&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(x){const ae=s.Tools.deepClone((D=P.getValue(Z.startRow,Z.startColumn))==null?void 0:D.s);ee=ae!=null&&ae.bd?Object.assign(ae.bd,T):T}P.setValue(Z.startRow,Z.startColumn,{s:{bd:ee}})}else{if(x){const ae=s.Tools.deepClone((Ge=P.getValue(J,ie))==null?void 0:Ge.s);ee=ae!=null&&ae.bd?Object.assign(ae.bd,T):T}P.setValue(J,ie,{s:{bd:ee}})}})}C&&(W(q,{b:null}),W(se,{t:s.Tools.deepClone(F)},!0)),p&&(W(z,{t:null}),W(nn,{b:s.Tools.deepClone(F)},!0)),I&&(W(X,{r:null}),W(tn,{l:s.Tools.deepClone(F)},!0)),f&&(W(re,{l:null}),W(on,{r:s.Tools.deepClone(F)},!0)),_&&W(w,{tl_br:s.Tools.deepClone(F)},!0),U&&W(w,{tl_bc:s.Tools.deepClone(F)},!0),y&&W(w,{tl_mr:s.Tools.deepClone(F)},!0),b&&W(w,{bl_tr:s.Tools.deepClone(F)},!0),E&&W(w,{ml_tr:s.Tools.deepClone(F)},!0),V&&W(w,{bc_tr:s.Tools.deepClone(F)},!0),R&&Ze(w,(N,T)=>{var J,ie,Z,ee;const x=Xe(N,T);if(x){if(x.endColumn!==w.endColumn){const D=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(F)}):{r:s.Tools.deepClone(F)}}})}if(x.startColumn!==w.startColumn){const D=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(F)}):{l:s.Tools.deepClone(F)}}})}}else{if(T!==w.endColumn){const D=(Z=P.getValue(N,T))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{r:s.Tools.deepClone(F)}):{r:s.Tools.deepClone(F)}}})}if(T!==w.startColumn){const D=(ee=P.getValue(N,T))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{l:s.Tools.deepClone(F)}):{l:s.Tools.deepClone(F)}}})}}}),M&&Ze(w,(N,T)=>{var J,ie,Z,ee;const x=Xe(N,T);if(x){if(x.endRow!==w.endRow){const D=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(F)}):{b:s.Tools.deepClone(F)}}})}if(x.startRow!==w.startRow){const D=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(F)}):{t:s.Tools.deepClone(F)}}})}}else{if(N!==w.endRow){const D=(Z=P.getValue(N,T))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{b:s.Tools.deepClone(F)}):{b:s.Tools.deepClone(F)}}})}if(N!==w.startRow){const D=(ee=P.getValue(N,T))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:D!=null&&D.bd?Object.assign(D.bd,{t:s.Tools.deepClone(F)}):{t:s.Tools.deepClone(F)}}})}}}),!C&&!p&&!I&&!f&&!R&&!M&&!_&&!U&&!y&&!b&&!E&&!V&&(W(q,{b:null}),W(se,{t:null},!0),W(z,{t:null}),W(nn,{b:null},!0),W(X,{r:null}),W(tn,{l:null},!0),W(re,{l:null}),W(on,{r:null},!0),W(w,{tl_br:null},!0),W(w,{tl_bc:null},!0),W(w,{tl_mr:null},!0),W(w,{bl_tr:null},!0),W(w,{ml_tr:null},!0),W(w,{bc_tr:null},!0),Ze(w,(N,T)=>{var J,ie,Z,ee,D,Ge,ae,rn;const x=Xe(N,T);if(x){if(x.endColumn!==w.endColumn){const O=(J=P.getValue(x.startRow,x.startColumn))==null?void 0:J.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(x.startColumn!==w.startColumn){const O=(ie=P.getValue(x.startRow,x.startColumn))==null?void 0:ie.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(x.endRow!==w.endRow){const O=(Z=P.getValue(x.startRow,x.startColumn))==null?void 0:Z.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(x.startRow!==w.startRow){const O=(ee=P.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==w.endColumn){const O=(D=P.getValue(N,T))==null?void 0:D.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==w.startColumn){const O=(Ge=P.getValue(N,T))==null?void 0:Ge.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(N!==w.endRow){const O=(ae=P.getValue(N,T))==null?void 0:ae.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(N!==w.startRow){const O=(rn=P.getValue(N,T))==null?void 0:rn.s;P.setValue(N,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const pt={unitId:u,subUnitId:l,cellValue:P.getData()},To=Ie(o,pt);return n.syncExecuteCommand($.id,pt)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:$.id,params:To}],redoMutations:[{id:$.id,params:pt}]}),!0):!1}},gr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Be={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},hr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ve={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},kt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,a=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),i={unitId:n,subUnitId:e,ranges:r},c=hr(o,i),u={unitId:n,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:Q(g,a),style:null}))},l={unitId:n,subUnitId:e,pluginName:Y,selections:$n(r).map(g=>({range:g,primary:Q(g,a),style:null}))},d=o.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&o.get(s.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Be.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},Fn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const n=(l=o.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=n.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return o.get(s.ICommandService).executeCommand(kt.id,{unitId:i,subUnitId:c,ranges:u})}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v;const n=(v=o.get(exports.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===s.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const r=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:n},l={unitId:i,subUnitId:c,pluginName:Y,selections:$n(n).map(h=>({range:h,primary:Q(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:n.map(h=>({range:h,primary:Q(h,a),style:null}))},m=o.get(s.ICommandService);if(s.sequenceExecute([{id:Be.id,params:u},{id:H.id,params:l}],m).result){const h=o.get(s.IUndoRedoService),S=gr(o,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:S},{id:H.id,params:d}],redoMutations:[{id:Be.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function $n(o){return vr(o).map(n=>{const e=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:e,endColumn:e}})}function vr(o){const t=[];let n;return o.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}const xt=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},pe={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u)return!1;const{startColumn:l,startRow:d,xSplit:m,ySplit:g}=t;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const v={unitId:a,subUnitId:i,...t},h=xt(o,v);return n.syncExecuteCommand(pe.id,v)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:pe.id,params:h}],redoMutations:[{id:pe.id,params:v}]}),!0):!1}},Sr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const t=o.get(s.ICommandService),n=o.get(s.IUndoRedoService),e=o.get(s.IUniverInstanceService),r=e.getCurrentUniverSheetInstance().getUnitId(),a=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=e.getUniverSheetInstance(r);if(!i||!i.getSheetBySheetId(a))return!1;const u={unitId:r,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=xt(o,u);return t.syncExecuteCommand(pe.id,u)?(n.pushUndoRedo({unitID:r,undoMutations:[{id:pe.id,params:l}],redoMutations:[{id:pe.id,params:u}]}),!0):!1}},Cr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Le={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},fr=(o,t)=>{if(o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,a=o.get(s.ICommandService),i=o.get(s.IUndoRedoService),c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),u={unitId:n,subUnitId:e,ranges:r},l=Cr(o,u),d={unitId:n,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:Q(v,c),style:null}))},m={unitId:n,subUnitId:e,pluginName:Y,selections:Yn(r).map(v=>({range:v,primary:Q(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:n,undoMutations:[{id:je.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.id,params:d}]}),!0}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const t=o.get(exports.SelectionManagerService),n=o.get(s.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=n.getCurrentUniverSheetInstance();if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return o.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var S;const t=o.get(exports.SelectionManagerService),n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=(S=t.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=r.getCurrentUniverSheetInstance().getUnitId(),c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l)return!1;const d={unitId:i,subUnitId:c,ranges:a},m={unitId:i,subUnitId:c,pluginName:Y,selections:Yn(a).map(C=>({range:C,primary:Q(C,l),style:null}))},g={unitId:i,subUnitId:c,pluginName:Y,selections:a.map(C=>({range:C,primary:Q(C,l),style:null}))},v=fr(o,d);return s.sequenceExecute([{id:je.id,params:d},{id:H.id,params:m}],n).result&&e.pushUndoRedo({unitID:i,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:je.id,params:d},{id:H.id,params:m}]}),!0}};function Yn(o){return Ir(o).map(n=>{const e=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:e,endRow:e}})}function Ir(o){const t=[];let n;return o.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}const K={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,t)=>{const n=o.get(s.IUniverInstanceService),{unitId:e=n.getCurrentUniverSheetInstance().getUnitId(),subUnitId:r=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=t,c=o.get(s.ICommandService),u=o.get(s.IUndoRedoService),l=o.get(exports.SelectionManagerService),d=a?[a]:l.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=n.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(r))==null)return!1;const v=new s.ObjectMatrix;if(s.Tools.isArray(i.value))for(let R=0;R<d.length;R++){const{startRow:M,endRow:_,startColumn:U,endColumn:y}=d[R];for(let b=0;b<=_-M;b++)for(let E=0;E<=y-U;E++)v.setValue(b+M,E+U,{s:{[i.type]:i.value[b][E]}})}else for(let R=0;R<d.length;R++){const{startRow:M,endRow:_,startColumn:U,endColumn:y}=d[R],b={s:{[i.type]:i.value}};for(let E=M;E<=_;E++)for(let V=U;V<=y;V++)v.setValue(E,V,b)}const h={subUnitId:r,unitId:e,cellValue:v.getMatrix()},S=Ie(o,h),C=c.syncExecuteCommand($.id,h),{undos:I,redos:p}=o.get(exports.SheetInterceptorService).onCommandExecute({id:K.id,params:t}),f=s.sequenceExecute([...p],c);return C&&f.result?(u.pushUndoRedo({unitID:e,undoMutations:[{id:$.id,params:S},...I],redoMutations:[{id:$.id,params:h},...p]}),!0):!1}},Rr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:r}=t.primary,i={style:{type:"bl",value:n.getRange(e,r).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(K.id,i)}},pr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:a,startColumn:i}=t.primary;e=n.getRange(a,i).getFontStyle()===s.FontItalic.ITALIC}const r={style:{type:"it",value:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return o.get(s.ICommandService).executeCommand(K.id,r)}},Mr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const r={style:{type:"ul",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(K.id,r)}},wr={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const t=o.get(exports.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const r={style:{type:"st",value:{s:e?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return o.get(s.ICommandService).executeCommand(K.id,r)}};s.CommandType.COMMAND;const yr={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return n.executeCommand(K.id,e)}},Ur={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return n.executeCommand(K.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return n.executeCommand(K.id,e)}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const t=o.get(s.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(K.id,n)}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return n.executeCommand(K.id,e)}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const t=o.get(s.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(K.id,n)}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return n.executeCommand(K.id,e)}},eo={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return n.executeCommand(K.id,e)}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,t)=>{if(!t)return!1;const n=o.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return n.executeCommand(K.id,e)}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,t)=>{if(!t)return!1;const n=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=o.get(s.ICommandService),r={style:{type:"tr",value:n}};return e.executeCommand(K.id,r)}},_r=(o,t)=>{const a=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const l={color:t.value,unitId:a,subUnitId:i},d=_r(o,l);return n.syncExecuteCommand(ze.id,l)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:d}],redoMutations:[{id:ze.id,params:l}]}),!0):!1}},Je={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return n.setActiveSheet(r),!0;return!1}},br=4,Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,t,n)=>{var c,u;const e=o.get(s.ICommandService),r=o.get(s.IUniverInstanceService);let a=r.getCurrentUniverSheetInstance().getUnitId(),i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(a=(c=t.unitId)!=null?c:a,i=(u=t.subUnitId)!=null?u:i),new Promise(l=>{setTimeout(()=>{const d=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},n);l(d)},br)})}},Lt=(o,t)=>{const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=t.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ge={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(o,t)=>{var u;const e=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=t.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=o.get(s.ICommandService),a=o.get(s.IUndoRedoService),c=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),u=c.getActiveSheet(),l=c.getUnitId(),d=u.getSheetId(),{anchorCol:m,deltaX:g}=t,h=u.getColumnWidth(m)+g,S=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,C=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.COLUMN),I=S?s.RANGE_TYPE.ALL:C.some(({range:y})=>{const{startColumn:b,endColumn:E}=y;return b<=m&&m<=E})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let p;if(I===s.RANGE_TYPE.ALL){const y=u.getRowCount(),b=new Array(u.getColumnCount()).fill(void 0).map((E,V)=>({startRow:0,endRow:y-1,startColumn:V,endColumn:V}));p={subUnitId:d,unitId:l,colWidth:h,ranges:b}}else I===s.RANGE_TYPE.COLUMN?p={subUnitId:d,unitId:l,ranges:C.map(y=>s.Rectangle.clone(y.range)),colWidth:h}:p={subUnitId:d,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:m,endColumn:m}]};const f=Lt(o,p),R=r.syncExecuteCommand(ge.id,p),{undos:M,redos:_}=o.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:p}),U=s.sequenceExecute([..._],r);return R&&U.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:ge.id,params:f},...M],redoMutations:[{id:ge.id,params:p},..._]}),!0}},Wt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,t)=>{const n=o.get(exports.SelectionManagerService),e=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:c,ranges:i,colWidth:t.value},d=Lt(o,l),m=e.syncExecuteCommand(ge.id,l),{undos:g,redos:v}=o.get(exports.SheetInterceptorService).onCommandExecute({id:Wt.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:c,undoMutations:[{id:ge.id,params:d},...g],redoMutations:[{id:ge.id,params:l},...v]}),!0):!1}},ro=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Me={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},so={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,t)=>{var C;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(s.ErrorService),i=r.getCurrentUniverSheetInstance().getUnitId();let c=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(c=(C=t.subUnitId)!=null?C:c);const u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:c,hidden:s.BooleanNumber.TRUE},g=ro(o,m);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(Me.id,m)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:g}],redoMutations:[{id:Me.id,params:m}]}),!0):!1}},Tr=(o,t)=>{const e=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},ut={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,t)=>{var h,S;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=o.get(exports.SheetInterceptorService),i=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),u={subUnitId:t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:i},l=Tr(o,u),d=a.onCommandExecute({id:Ft.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:ut.id,params:u},...d.redos],g=[...(S=d.preUndos)!=null?S:[],{id:ut.id,params:l},...d.undos];return await s.sequenceExecute(m,n).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Dr=(o,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},io={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=t.unitId||r.getCurrentUniverSheetInstance().getUnitId(),i=t.subUnitId||r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),c=r.getUniverSheetInstance(a);if(!c||!c.getSheetBySheetId(i))return!1;const d={fromOrder:c.getConfig().sheetOrder.indexOf(i),toOrder:t.order,unitId:a,subUnitId:i},m=Dr(o,d);return n.syncExecuteCommand(qe.id,d)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:qe.id,params:m}],redoMutations:[{id:qe.id,params:d}]}),!0):!1}},Er=2e3,ao=(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);u[g]=v.h}return{unitId:n,subUnitId:e,ranges:r,rowHeight:u}},Ht=(o,t)=>{const{unitId:n,subUnitId:e,ranges:r}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);u[g]=v.ia}return{unitId:n,subUnitId:e,ranges:r,autoHeightInfo:u}},Nr=(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e),u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:e,rowsAutoHeightInfo:u}},he={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:r,rowHeight:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.h=a:S.h=(m=a[h])!=null?m:l,S.h=Math.min(Er,S.h)}return!0}},ce={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:r,autoHeightInfo:a}=t,c=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const S=d.getRowOrCreate(h);typeof a=="number"?S.ia=a:S.ia=(m=a[h-g])!=null?m:l}return!0}},$t={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:r}=t,i=o.get(s.IUniverInstanceService).getUniverSheetInstance(n),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},co={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const a=o.get(s.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),c=a.getUnitId(),u=i.getSheetId(),{anchorRow:l,deltaY:d}=t,g=i.getRowHeight(l)+d,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,h=e.filter(U=>U.range.rangeType===s.RANGE_TYPE.ROW),S=v?s.RANGE_TYPE.ALL:h.some(({range:U})=>{const{startRow:y,endRow:b}=U;return y<=l&&l<=b})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let C;if(S===s.RANGE_TYPE.ALL){const U=i.getRowCount(),y=new Array(i.getColumnCount()).fill(void 0).map((b,E)=>({startRow:E,endRow:E,startColumn:0,endColumn:U-1}));C={subUnitId:u,unitId:c,rowHeight:g,ranges:y}}else S===s.RANGE_TYPE.ROW?C={subUnitId:u,unitId:c,ranges:h.map(U=>s.Rectangle.clone(U.range)),rowHeight:g}:C={subUnitId:u,unitId:c,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const I=ao(o,C),p={unitId:c,subUnitId:u,ranges:C.ranges,autoHeightInfo:s.BooleanNumber.FALSE},f=Ht(o,p),R=o.get(s.ICommandService),M=o.get(s.IUndoRedoService);return s.sequenceExecute([{id:he.id,params:C},{id:ce.id,params:p}],R).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:he.id,params:I},{id:ce.id,params:f}],redoMutations:[{id:he.id,params:C},{id:ce.id,params:p}]}),!0):!1}},uo={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,t)=>{const n=o.get(exports.SelectionManagerService),e=o.get(s.ICommandService),r=o.get(s.IUndoRedoService),a=o.get(s.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=a.getCurrentUniverSheetInstance(),u=c.getUnitId(),l=c.getActiveSheet().getSheetId(),d={subUnitId:l,unitId:u,ranges:i,rowHeight:t.value},m=ao(o,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Ht(o,g);return s.sequenceExecute([{id:he.id,params:d},{id:ce.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:he.id,params:m},{id:ce.id,params:v}],redoMutations:[{id:he.id,params:d},{id:ce.id,params:g}]}),!0):!1}},Gt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(exports.SelectionManagerService),a=o.get(s.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),c=a.getCurrentUniverSheetInstance().getActiveSheet(),u=c.getSheetId(),{anchorRow:l}=t!=null?t:{},d=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:r.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={unitId:i,subUnitId:u,ranges:d,autoHeightInfo:s.BooleanNumber.TRUE},g=Ht(o,m),v=n.syncExecuteCommand(ce.id,m),{undos:h,redos:S}=o.get(exports.SheetInterceptorService).onCommandExecute({id:Gt.id,params:m}),C=s.sequenceExecute([...S],n);return v&&C.result?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ce.id,params:g},...h],redoMutations:[{id:ce.id,params:m},...S]}),!0):!1}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,t)=>{var S;const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService),r=o.get(s.IUniverInstanceService),a=r.getCurrentUniverSheetInstance().getUnitId();let i=r.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(S=t.value)!=null?S:i);const c=r.getUniverSheetInstance(a);if(!c)return!1;const u=c.getSheetBySheetId(i);if(!u||u.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const d={unitId:a,subUnitId:i,hidden:s.BooleanNumber.FALSE},m=ro(o,d),g=n.syncExecuteCommand(Me.id,d),v={unitId:a,subUnitId:i},h=n.syncExecuteCommand(Je.id,v);return g&&h?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:m}],redoMutations:[{id:Me.id,params:d}]}),!0):!1}},mo=o=>{const t=new s.ObjectMatrix;return o.forEach(n=>{s.Range.foreach(n,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((n,e)=>{const r=t.getValue(n-1,e);r&&t.setValue(n,e,r+1)}),t},go=o=>{const t=o;return t.forValue((n,e)=>{const r=o.getValue(n-1,e);r&&t.setValue(n,e,r+1)}),t},cn=o=>{const t={area:0},n=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return o.forValue((e,r,a)=>{let i=1,c=a;n(i*c,{startRow:e-c+1,endRow:e,startColumn:r,endColumn:r});const u={startRow:e-c+1,endRow:e,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&o.getValue(e,l);l--){c=Math.min(o.getValue(e,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,n(d,u)}}),t},Or=(o,t)=>(s.Range.foreach(t,(n,e)=>{o.realDeleteValue(n,e);let r=n+1,a=o.getValue(r,e)||0;for(;a>1;)o.setValue(r,e,a-1),r+=1,a=o.getValue(r,e)||0}),o),zt=o=>{const t=[];let n=cn(o);for(;n.area>0;)n.range&&(t.push(n.range),Or(o,n.range)),n=cn(o);return t},qt=o=>{const t=mo(o);return zt(t)};class Ar{constructor(){B(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(n=>{s.Range.foreach(n,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(n=>{s.Range.foreach(n,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=go(this._matrix);return zt(t)}}const Pr=(o,t,n="")=>o.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[n].push(r),e)},{}),kr=(o=0)=>{let t=o;return function(){return t++}},Oe=G.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const xr=(o,t)=>{const n=o.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[],u=n.getModel(r,a)||void 0;Object.keys(e).forEach(d=>{e[d].ranges.forEach(g=>{s.Range.foreach(g,(v,h)=>{const S=n.getValue(r,a,v,h,u);S?i.push({pattern:S.pattern,type:S.type,row:v,col:h}):c.push({startColumn:h,endColumn:h,startRow:v,endRow:v})})})});const l=[];if(i.length){const d=dt(r,a,i);Object.keys(d.values).forEach(m=>{const g=d.values[m];g.ranges=qt(g.ranges)}),l.push({id:Rt.id,params:dt(r,a,i)})}return c.length&&l.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:c}}),l},Rt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{values:n,refMap:e}=t,r=o.get(Oe),a=t.unitId,i=t.subUnitId,c=Object.keys(n).reduce((u,l)=>{const d=e[l],m=n[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{unitId:n,subUnitId:e,ranges:r}=t;return o.get(Oe).deleteValues(n,e,r),!0}},Br=(o,t)=>{const n=o.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[],c=n.getModel(r,a)||void 0;if(e.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=n.getValue(r,a,d,m,c);g&&i.push({pattern:g.pattern,type:g.type,row:d,col:m})})}),!i.length)return[];const u=dt(r,a,i);return Object.keys(u.values).forEach(l=>{const d=u.values[l];d.ranges=qt(d.ranges)}),[{id:Rt.id,params:u}]},dt=(o,t,n)=>{const e=Pr(n,"pattern"),r={},a={},i=kr();return Object.keys(e).forEach(c=>{const u=e[c],l=u[0],d=i();r[d]={pattern:c,type:l.type},u.forEach(m=>{a[d]||(a[d]={ranges:[]}),a[d].ranges.push(s.cellToRange(m.row,m.col))})}),{unitId:o,subUnitId:t,refMap:r,values:a}},ho={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},vo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return n.syncExecuteCommand(oe.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:oe.SetDefinedNameMutation.id,params:r}]}),!0):!1}},So={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return n.syncExecuteCommand(oe.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:oe.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},Co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(s.ICommandService),e=o.get(s.IUndoRedoService);return t&&n.syncExecuteCommand(oe.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:oe.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:oe.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},fo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Io="maxCellsPerSheet",Vr=3e6;var Lr=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Wr=(o,t,n,e)=>{for(var r=e>1?void 0:e?jr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Lr(t,n,r),r},un=(o,t)=>(n,e)=>t(n,e,o);let st=class extends s.Disposable{constructor(o,t){super(),this._commandService=o,this._configService=t,[L,lt,Ut,mt,pn,ht,vt,jt,co,Nn,En,He,Se,St,Ct,Tn,bn,Fe,ve,On,ye,At,be,gt,xe,Ot,_e,It,fe,ft,Ce,Pt,We,Bn,j,Zn,Jn,Xn,Vn,Wn,$e,Ln,jn,Hn,Be,Ve,Wt,Sr,Gn,pe,eo,Ue,$,uo,qn,je,Le,Fn,zn,kt,Bt,K,oo,ze,Kn,no,to,Qn,Vt,Je,ge,so,Me,Ft,ut,io,qe,$t,he,Gt,ce,lo,Rt,H,Yt,ho,vo,So,Co,fo].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(Io,Vr)}};st=Wr([s.OnLifecycle(s.LifecycleStages.Starting,st),un(0,s.ICommandService),un(1,s.IConfigService)],st);var Fr=Object.defineProperty,Hr=Object.getOwnPropertyDescriptor,$r=(o,t,n,e)=>{for(var r=e>1?void 0:e?Hr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Fr(t,n,r),r},Gr=(o,t)=>(n,e)=>t(n,e,o);let it=class extends s.Disposable{constructor(o){super(),this._commandService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==oe.SetFormulaCalculationResultMutation.id)return;const t=o.params,{unitData:n,unitOtherData:e}=t,r=Object.keys(n),a=[];return r.forEach(c=>{const u=n[c];if(u==null)return!0;Object.keys(u).forEach(d=>{const m=u[d];if(m==null)return!0;const g={subUnitId:d,unitId:c,cellValue:m};a.push({id:$.id,params:g})})}),a.every(c=>this._commandService.executeCommand(c.id,c.params,{onlyLocal:!0}))}))}};it=$r([s.OnLifecycle(s.LifecycleStages.Ready,it),Gr(0,s.ICommandService)],it);var zr=Object.defineProperty,qr=Object.getOwnPropertyDescriptor,Yr=(o,t,n,e)=>{for(var r=e>1?void 0:e?qr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&zr(t,n,r),r},Qe=(o,t)=>(n,e)=>t(n,e,o);let at=class extends s.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._featureCalculationManagerService=t,this._currentUniverService=n,this._formulaDataModel=e}_initialize(){const o="test",t="workbook-01",n="sheet-0011",e={[t]:{[n]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:t,subUnitId:n,dependencyRanges:[{unitId:t,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};at=Yr([s.OnLifecycle(s.LifecycleStages.Ready,at),Qe(0,s.ICommandService),Qe(1,oe.IFeatureCalculationManagerService),Qe(2,s.IUniverInstanceService),Qe(3,G.Inject(oe.FormulaDataModel))],at);const A={MoveRangeCommandId:Mn,InsertRowCommandId:_n,InsertColCommandId:Dn,RemoveColCommandId:xn,RemoveRowCommandId:kn,DeleteRangeMoveLeftCommandId:wn,DeleteRangeMoveUpCommandId:yn,InsertRangeMoveDownCommandId:ar,InsertRangeMoveRightCommandId:Un,MoveColsCommandId:Pn,MoveRowsCommandId:An};var k=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(k||{});const et=Number.MAX_SAFE_INTEGER,me=o=>{const t={...o};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=et),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=et),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=et,t.startRow=0,t.endRow=et),t},ne=o=>({startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow}),Ye=(o,t,n)=>{const e={...n},r={...t},a=(S,C)=>{const I=Math.max(S.start,C.start),p=Math.min(S.end,C.end);return p<I?null:{start:I,end:p}},i=S=>S.end-S.start+1,c=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),u=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),l=t.start>o.start;if(l){const S=Math.min(o.end,t.start)-o.start+1;r.start-=S,r.end-=S}const d=i(o),m=d,g=a(o,e),v=g&&i(g)>=i(e);if(o.end<e.start)e.start-=d,e.end-=d;else if(g){const S=i(g);if(v){const C=c(e,o),I=u(C,r);e.start=I.start,e.end=I.end}else g.start>o.start?l?(e.end-=S+d,e.start-=d):e.end-=S:l?e.end-=S:e.start>o.start&&e.end>o.end?(e.start-=d,e.end-=d+S):e.end-=S}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-n.start,length:i(e)-i(n)}},Kt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const r=me(n),a=me(e),i=me(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:c.step||0,length:c.length||0}]},Kr=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startRow:r}=n,{startRow:a}=e,i=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},Jt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const r=me(n),a=me(e),i=me(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:c.step||0,length:c.length||0}]},Jr=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startColumn:r}=n,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},Ro=(o,t)=>{var a,i;const n=(a=o.params)==null?void 0:a.toRange,e=(i=o.params)==null?void 0:i.fromRange;if(!n||!e)return[];const r=[];if(s.Rectangle.contains(n,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,n);return[{type:k.Set,range:u}]}return r},Xr=(o,t)=>{var m,g;const n=(m=o.params)==null?void 0:m.toRange,e=(g=o.params)==null?void 0:g.fromRange;if(!n||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(n,t))return[t];if(s.Rectangle.contains(e,t)){const v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,n)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,1))});const c=n.startColumn-e.startColumn,u=n.startRow-e.startRow,l={startColumn:n.startColumn-c,endColumn:n.endColumn-c,startRow:n.startRow-u,endRow:n.endRow-u};return l&&s.Range.foreach(l,(v,h)=>{var I;const S=v+u,C=h+c;r.setValue(S,C,(I=a.getValue(v,h))!=null?I:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(o,t)=>{const n=me(o),e=me(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn){const i=s.Rectangle.getIntersects(e,n);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn&&a(n)>=a(e))return null;if(e.startColumn>=n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn){const i=s.Rectangle.getIntersects(e,n);if(i){const c=-r(i);return{step:-(r(n)-r(i)),length:c}}}if(e.startColumn>n.endColumn)return{step:-r(n),length:0}}return{step:0,length:0}},Xt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(n,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.HorizontalMove,step:i,length:c})}return e},Zt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(ne(n),ne(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.VerticalMove,step:i,length:c})}return e},De=(o,t)=>{const n=me(o),e=me(t),r=a=>a.endColumn-a.startColumn+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn)return{step:0,length:r(n)};if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn>n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn||e.startColumn>=n.endColumn)return{step:r(n),length:0}}return{step:0,length:0}};function Zr(o,t,n){const e=[];if(s.Rectangle.contains(t,n)&&e.push({type:k.Delete}),s.Rectangle.contains(o,n)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(n,o),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const Qt=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(ne(n),ne(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},en=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(n,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},po=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(ne(n),ne(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qr=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[t];const e=n.endRow-n.startRow+1,r={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},Mo=(o,t)=>{var c;const n=(c=o.params)==null?void 0:c.range;if(!n)return[];const e=[],r=De(n,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},es=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[t];const e=n.endColumn-n.startColumn+1,r={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},wo=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(n,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.HorizontalMove,step:i,length:c})}return e},ts=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},r=n.endColumn-n.startColumn+1,a=s.Rectangle.getIntersects(n,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},yo=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],r=Te(ne(n),ne(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:c}=r;e.push({type:k.VerticalMove,step:i,length:c})}return e},ns=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},r=n.endRow-n.startRow+1,a=s.Rectangle.getIntersects(n,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ee=(o,t)=>{let n={...t};return o.forEach(e=>{switch(e.type){case k.Delete:{n=null;break}case k.HorizontalMove:{if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break}case k.Set:{n=e.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},os=(o,t)=>{let n=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:{n=wo(t,o);break}case A.DeleteRangeMoveUpCommandId:{n=yo(t,o);break}case A.InsertColCommandId:{n=en(t,o);break}case A.InsertRangeMoveDownCommandId:{n=po(t,o);break}case A.InsertRangeMoveRightCommandId:{n=Mo(t,o);break}case A.InsertRowCommandId:{n=Qt(t,o);break}case A.MoveColsCommandId:{n=Jt(t,o);break}case A.MoveRangeCommandId:{n=Ro(t,o);break}case A.MoveRowsCommandId:{n=Kt(t,o);break}case A.RemoveColCommandId:{n=Xt(t,o);break}case A.RemoveRowCommandId:{n=Zt(t,o);break}}return Ee(n,o)},rs=(o,t)=>{let n=[];switch(t.id){case A.DeleteRangeMoveLeftCommandId:return ts(t,o);case A.DeleteRangeMoveUpCommandId:return ns(t,o);case A.InsertRangeMoveDownCommandId:return Qr(t,o);case A.InsertRangeMoveRightCommandId:return es(t,o);case A.InsertColCommandId:{n=en(t,o);break}case A.InsertRowCommandId:{n=Qt(t,o);break}case A.MoveColsCommandId:return Jr(t,o);case A.MoveRangeCommandId:return Xr(t,o);case A.MoveRowsCommandId:return Kr(t,o);case A.RemoveColCommandId:{n=Xt(t,o);break}case A.RemoveRowCommandId:{n=Zt(t,o);break}}return Ee(n,o)};function ss(o,t){const{id:n,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(n){case We.id:r.type=k.Delete;break;case _e.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:o.startRow,end:o.endRow}),r.type=k.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case fe.id:r=Te(e.range,o),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Te(ne(e.range),ne(o)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case ve.id:r=De(ne(e.range),ne(o)),r.type=k.VerticalMove;break;case Se.id:r=De(e.range,o),r.type=k.HorizontalMove;break;case xe.id:r=Zr(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),o);break}return r?Array.isArray(r)?Ee(r,o):Ee([r],o):o}var is=Object.defineProperty,as=Object.getOwnPropertyDescriptor,cs=(o,t,n,e)=>{for(var r=e>1?void 0:e?as(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&is(t,n,r),r},tt=(o,t)=>(n,e)=>t(n,e,o);const us=s.createInterceptorKey("MERGE_REDO"),ds=s.createInterceptorKey("MERGE_UNDO");class ls extends s.Disposable{constructor(t,n,e,r){super(),this._unitId=t,this._subUnitId=n,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const n=ss(this._range,t);if(n&&s.Rectangle.equals(n,this._range))return!1;const e=this._range;this._range=n,this._callback(e,n)}}exports.RefRangeService=class extends s.Disposable{constructor(n,e,r,a){super();B(this,"interceptor",new s.InterceptorManager({MERGE_REDO:us,MERGE_UNDO:ds}));B(this,"_watchRanges",new Set);B(this,"_refRangeManagerMap",new Map);B(this,"_serializer",ms());B(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),r=dn(this._univerInstanceService),a=ln(this._univerInstanceService),u=((()=>{switch(n.id){case A.MoveColsCommandId:{const v=n.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],r,a)}case A.MoveRowsCommandId:{const v=n.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],r,a)}case A.MoveRangeCommandId:{const v=n;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case A.InsertRowCommandId:{const S={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.InsertColCommandId:{const h=n.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.RemoveRowCommandId:{const S={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.RemoveColCommandId:{const h=n.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([S],r,a)}case A.DeleteRangeMoveUpCommandId:case A.InsertRangeMoveDownCommandId:{const h=n.params.range||mn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],r,a)}case A.DeleteRangeMoveLeftCommandId:case A.InsertRangeMoveRightCommandId:{const h=n.params.range||mn(this._selectionManagerService)[0],S={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([S],r,a)}}})()||[]).reduce((v,h)=>{const S=h(n);return v.push(S),v},[]).reduce((v,h)=>{var S,C;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(S=h.preRedos)!=null?S:[]),v.preUndos.push(...(C=h.preUndos)!=null?C:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});B(this,"_checkRange",(n,e,r)=>{const a=gn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);n.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});B(this,"registerRefRange",(n,e,r,a)=>{const i=r||dn(this._univerInstanceService),c=a||ln(this._univerInstanceService),u=gn(i,c),l=this._serializer.serialize(n);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(e):d.set(l,new Set([e])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(e),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=n,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(n,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new ls(n,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=cs([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),tt(0,s.ICommandService),tt(1,G.Inject(exports.SheetInterceptorService)),tt(2,G.Inject(s.IUniverInstanceService)),tt(3,G.Inject(exports.SelectionManagerService))],exports.RefRangeService);function dn(o){return o.getCurrentUniverSheetInstance().getUnitId()}function ln(o){return o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function mn(o){return o.getSelectionRanges()||[]}function gn(o,t){return`${o}_${t}`}function ms(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:n=>{const e=o.reduce((a,i,c)=>(a[String(c)]=i,a),{});return n.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:n=>o.reduce((e,r,a)=>{const i=n[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gs=Object.defineProperty,hs=Object.getOwnPropertyDescriptor,vs=(o,t,n,e)=>{for(var r=e>1?void 0:e?hs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&gs(t,n,r),r},Ae=(o,t)=>(n,e)=>t(n,e,o);const Ss=[Se.id,ve.id,fe.id,Ce.id],Cs=[_e.id,be.id];function Uo(o,t){let n=o;if(t!==void 0){const e=[];for(let r=0;r<n.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=n[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};e.push(d)}else if(t===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}n=e}return n}exports.MergeCellController=class extends s.Disposable{constructor(n,e,r,a,i,c){super();B(this,"disposableCollection",new s.DisposableCollection);this._commandService=n,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case lt.id:case mt.id:{const r=n._univerInstanceService.getCurrentUniverSheetInstance(),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.getConfig().mergeData,l=n._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:c,ranges:l},g=te(n._injector,m),v=[{id:j.id,params:m}],h=[{id:L.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,e,r){switch(n.id){case A.MoveColsCommandId:{const a=n.params;return this._handleMoveColsCommand(a,e,r)}case A.MoveRowsCommandId:{const a=n.params;return this._handleMoveRowsCommand(a,e,r)}case Fe.id:{const a=n.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case He.id:{const a=n.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case It.id:{const a=n.params;return this._handleRemoveColCommand(a,e,r)}case ft.id:{const a=n.params;return this._handleRemoveRowCommand(a,e,r)}case gt.id:{const a=n.params;return this._handleMoveRangeCommand(a,e,r)}case Ct.id:{const a=n.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case St.id:{const a=n.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case vt.id:{const a=n.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case ht.id:{const a=n.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(a,i)=>{const c=this._univerInstanceService.getUniverSheetInstance(a);if(!c)return;const u=c==null?void 0:c.getSheetBySheetId(i);if(!u)return;this.disposableCollection.dispose();const l=u.getMergeData(),d=m=>this.refRangeHandle(m,a,i);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,d,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===Vt.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;n(u,c)}if(a.id===L.id){const i=a.params,c=i.subUnitId,u=i.unitId;if(!c||!u)return;n(i.unitId,i.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=e.getActiveSheet();n(e.getUnitId(),r.getSheetId())}_handleMoveRowsCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=n,{startRow:m,endRow:g}=d;if(c.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){u.ranges.push(S);const C=Kt({id:A.MoveRowsCommandId,params:n},S),I=Ee(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=te(this._injector,u),h=le(this._injector,l);return{redos:[{id:j.id,params:u},{id:L.id,params:l}],undos:[{id:j.id,params:h},{id:L.id,params:v}]}}_handleMoveColsCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=n,{startColumn:m,endColumn:g}=d;if(c.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){u.ranges.push(S);const C=Jt({id:A.MoveColsCommandId,params:n},S),I=Ee(C,S);I&&l.ranges.push(I)}}),u.ranges.length===0)return this._handleNull();const v=te(this._injector,u),h=le(this._injector,l);return{redos:[{id:j.id,params:u},{id:L.id,params:l}],undos:[{id:j.id,params:h},{id:L.id,params:v}]}}_handleMoveRangeCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=i.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,n.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,n.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,n.fromRange)).map(h=>s.Rectangle.getPositionRange(h,n.toRange)),m=Uo(d).filter(h=>!c.some(S=>s.Rectangle.equals(h,S))),g=[{id:j.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:L.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const{range:c}=n,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((p,f)=>(u>f.startRow&&u<=f.endRow&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((p,f)=>{if(u>f.startRow&&u<=f.endRow){const R=l-u+1;f.endRow+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:j.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleInsertColCommand(n,e,r){const{range:a}=n,i=ue(this._univerInstanceService,e);if(!i)return this._handleNull();const c=de(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>(u>f.startColumn&&u<=f.endColumn&&p.push(f),p),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((p,f)=>{if(u>f.startColumn&&u<=f.endColumn){const R=l-u+1;f.endColumn+=R,this._checkIsMergeCell(f)&&p.push(f)}return p},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:j.id,params:S},{id:L.id,params:v}];return{redos:C,undos:I}}_handleRemoveColCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const{range:c}=n,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(c,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(c,M)){if(u<=M.startColumn&&l>=M.endColumn)return R;u>=M.startColumn&&l<=M.endColumn?M.endColumn-=l-u+1:u<M.startColumn?(M.startColumn=u,M.endColumn-=l-u+1):l>M.endColumn&&(M.endColumn=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g}],I=[{id:L.id,params:h}],p=[{id:j.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleRemoveRowCommand(n,e,r){const{range:a}=n,i=ue(this._univerInstanceService,e);if(!i)return this._handleNull();const c=de(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>(s.Rectangle.intersects(a,M)&&R.push(M),R),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((R,M)=>{if(s.Rectangle.intersects(a,M)){if(u<=M.startRow&&l>=M.endRow)return R;u>=M.startRow&&l<=M.endRow?M.endRow-=l-u+1:u<M.startRow?(M.startRow=u,M.endRow-=l-u+1):l>M.endRow&&(M.endRow=u-1),this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g}],I=[{id:L.id,params:h}],p=[{id:j.id,params:S}],f=[{id:L.id,params:v}];return{preUndos:p,undos:f,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn+U,endRow:C.endRow,endColumn:C.endColumn+U})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h);return{redos:[{id:j.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:j.id,params:S}]}}_handleInsertRangeMoveDownCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:_}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const b=_-f+1;m.push({startRow:p.startRow+b,startColumn:p.startColumn,endRow:p.endRow+b,endColumn:p.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:j.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(p=>{const{startRow:f,startColumn:R,endColumn:M,endRow:_}=c;if(s.Rectangle.intersects({startRow:f,startColumn:R,endRow:u,endColumn:M},p)&&(d.push(p),s.Rectangle.contains({startRow:f,startColumn:R,endRow:u,endColumn:M},p))){const b=_-f+1,E=s.Rectangle.moveVertical(p,-b);m.push(E)}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h),C=[{id:j.id,params:g},{id:L.id,params:h}],I=[{id:L.id,params:v},{id:j.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(n,e,r){const a=ue(this._univerInstanceService,e);if(!a)return this._handleNull();const i=de(a,r);if(!i)return this._handleNull();const c=n.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,endRow:p,startColumn:f,endColumn:R}=c;if(s.Rectangle.intersects({startRow:I,startColumn:f,endRow:p,endColumn:u},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:f,endRow:p,endColumn:u},C))){const U=R-f+1;m.push({startRow:C.startRow,startColumn:C.startColumn-U,endRow:C.endRow,endColumn:C.endColumn-U})}});const g={unitId:e,subUnitId:r,ranges:d},v=te(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},S=le(this._injector,h);return{redos:[{id:j.id,params:g},{id:L.id,params:h}],undos:[{id:L.id,params:v},{id:j.id,params:S}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(Cs.includes(n.id)){if(!n.params)return;const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const r=e.getSheetBySheetId(n.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=n.params,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M}=C;s.Rectangle.intersects(C,a)||(c?l<I&&d>p?(I-=u,p-=u):l>p&&d<=I&&(I+=u,p+=u):l<f&&d>R?(f-=u,R-=u):l>R&&d<=f&&(f+=u,R+=u)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:p,startColumn:f,endColumn:R,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=n.params,S=C=>this.refRangeHandle(C,v,h);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,S,v,h))})}if(Ss.includes(n.id)){const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const r=e.getSheetBySheetId(n.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=n.params;if(!i)return;const{range:c}=i,u=n.id.includes("row"),l=n.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,v=[];a.forEach(I=>{let{startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:_}=I;l?u?d<=p&&(p+=g,f+=g):d<=R&&(R+=g,M+=g):u?m<p&&(p-=g,f-=g):m<R&&(R-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||v.push({startRow:p,endRow:f,startColumn:R,endColumn:M,rangeType:_})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:S}=n.params,C=I=>this.refRangeHandle(I,h,S);v.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,h,S))})}}))}};exports.MergeCellController=vs([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Ae(0,G.Inject(s.ICommandService)),Ae(1,G.Inject(exports.RefRangeService)),Ae(2,G.Inject(s.IUniverInstanceService)),Ae(3,G.Inject(G.Injector)),Ae(4,G.Inject(exports.SheetInterceptorService)),Ae(5,G.Inject(exports.SelectionManagerService))],exports.MergeCellController);function ue(o,t){return t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance()}function de(o,t){return t?o.getSheetBySheetId(t):o.getActiveSheet()}const fs={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},_o={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Is=Object.defineProperty,Rs=Object.getOwnPropertyDescriptor,ps=(o,t,n,e)=>{for(var r=e>1?void 0:e?Rs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Is(t,n,r),r},nt=(o,t)=>(n,e)=>t(n,e,o);const hn="SHEET_NUMFMT_PLUGIN",Ms=24*60*60*1e3;exports.NumfmtService=class extends s.Disposable{constructor(n,e,r,a){super();B(this,"_numfmtModel",new Map);B(this,"_refAliasModel",new Map);B(this,"_modelReplace$",new Pe.Subject);B(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=n,this._resourceManagerService=e,this._univerInstanceService=r,this._logService=a,this._initModel(),this.disposeWithMe(s.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const n=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,hn,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,c)=>{const{model:u,refModel:l}=c;if(u){const d=Object.keys(u).reduce((m,g)=>(m.set(g,new s.ObjectMatrix(u[g])),m),new Map);this._numfmtModel.set(i,d)}l&&this._refAliasModel.set(i,new s.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,hn)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(r=>n(r))}_toJson(n){const e=this._numfmtModel.get(n),r=this._refAliasModel.get(n);if(!e||!r)return"";const a=[...e.keys()].reduce((u,l)=>{const d=e.get(l);return u[l]=d.toJSON(),u},{}),i=r.getValues().filter(u=>u.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(n){try{return JSON.parse(n)}catch{return{model:{},refModel:[]}}}_setValue(n,e,r,a,i){let c=this.getModel(n,e);if(!c){const u=this._numfmtModel.get(n)||new Map,l=u.get(e)||new s.ObjectMatrix;u.set(e,l),this._numfmtModel.set(n,u),c=l}if(i)c.setValue(r,a,i);else if(c.realDeleteValue(r,a),!c.getSizeOf()){const l=this._numfmtModel.get(n);l==null||l.delete(e)}}_getUniqueRefId(n){const e=this._refAliasModel.get(n);if(!e)return"0";const r=e.getKeyMap("i");return`${Math.max(...r.map(i=>Number(i||0)),0)+1}`}getValue(n,e,r,a,i){const c=i||this.getModel(n,e);if(!c)return null;const u=this._refAliasModel.get(n),l=c.getValue(r,a);if(l&&u){const d=u.getValue(l==null?void 0:l.i,["i"]);return d?{pattern:d.pattern,type:d.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(n,e,r){let a=this._refAliasModel.get(n);const i=this.getModel(n,e);a||(a=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,a)),r.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=this.getValue(n,e,u,l,i);if(d&&d.pattern){const m=a.getValue(d.pattern,["pattern"]);m&&m.count--}this._setValue(n,e,u,l,null)})})}setValues(n,e,r){const a=this.getModel(n,e);let i=this._refAliasModel.get(n);i||(i=new s.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,i)),r.forEach(c=>{let u=i.getValue(c.pattern,["pattern"]);u||(u={count:0,i:this._getUniqueRefId(n),pattern:c.pattern,type:r[0].type},i.addValue(u)),c.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{if(a){const g=this.getValue(n,e,d,m,a);if(g&&g.pattern){const v=i.getValue(g.pattern,["pattern"]);v&&v.count--}}this._setValue(n,e,d,m,{i:u.i}),u.count++})})})}getModel(n,e){const r=this._numfmtModel.get(n);return r==null?void 0:r.get(e)}getRefModel(n){return this._refAliasModel.get(n)}serialTimeToTimestamp(n,e=!0){const r=new Date("1900-01-01").getTime();return(n-(e?25569:24107))*Ms+r}};exports.NumfmtService=ps([nt(0,G.Inject(s.ICommandService)),nt(1,G.Inject(s.IResourceManagerService)),nt(2,G.Inject(s.IUniverInstanceService)),nt(3,G.Inject(s.ILogService))],exports.NumfmtService);const vn="univer.sheet.editable";class we extends s.PermissionPoint{constructor(n,e){super();B(this,"id",vn);B(this,"value",!0);B(this,"unitID");this._unitId=n,this._subUnitId=e,this.unitID=n,this.id=`${vn}_${n}_${e}`}}var ws=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Us=(o,t,n,e)=>{for(var r=e>1?void 0:e?ys(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&ws(t,n,r),r},Mt=(o,t)=>(n,e)=>t(n,e,o);exports.SheetPermissionService=class extends s.Disposable{constructor(t,n,e){super(),this._permissionService=t,this._univerInstanceService=n,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),n=t.getUnitId();t.getSheets().forEach(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.addPermissionPoint(t.getUnitId(),a)}),this.disposeWithMe(s.toDisposable(t.sheetCreated$.subscribe(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.addPermissionPoint(t.getUnitId(),a)}))),this.disposeWithMe(s.toDisposable(t.sheetDisposed$.subscribe(e=>{const r=e.getSheetId(),a=new we(n,r);this._permissionService.deletePermissionPoint(t.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(ke.PERMISSION,{priority:99,handler:(t,n,e)=>{const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=r==null?void 0:r.getActiveSheet(),i=r==null?void 0:r.getUnitId(),c=a==null?void 0:a.getSheetId();if(!i||!c)return!1;switch(n.id){case Ue.id:return this.getSheetEditable(i,c)}return e()}}))}getEditable$(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),c=new we(r,i);return this._permissionService.composePermission$(r,[s.UniverEditablePermissionPoint,c.id]).pipe(No.map(([u,l])=>{const d=u.value&&l.value,m=s.getTypeFromPermissionItemList([u,l]);return{value:d,status:m}}))}getSheetEditable(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),r=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),c=new we(r,i);return this._permissionService.composePermission(r,[s.UniverEditablePermissionPoint,c.id]).every(u=>u.value)}setSheetEditable(t,n,e){const r=this._univerInstanceService.getCurrentUniverSheetInstance(),a=n||r.getUnitId(),i=r.getActiveSheet(),c=e||i.getSheetId(),u=new we(a,c);this._permissionService.updatePermissionPoint(a,u.id,t)}};exports.SheetPermissionService=Us([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),Mt(0,G.Inject(s.IPermissionService)),Mt(1,G.Inject(s.IUniverInstanceService)),Mt(2,G.Inject(exports.SheetInterceptorService))],exports.SheetPermissionService);function _s(o){const t=o.get(s.IUniverInstanceService),n=o.get(exports.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),r=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new Pe.Observable(a=>{var c;const i=(c=n.getEditable$(e,r))==null?void 0:c.subscribe(u=>{a.next(!u.value)});return()=>{i==null||i.unsubscribe()}})}var bs=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,Ds=(o,t,n,e)=>{for(var r=e>1?void 0:e?Ts(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&bs(t,n,r),r},ot=(o,t)=>(n,e)=>t(n,e,o);const Sn="SHEET_DEFINED_NAME_PLUGIN";let ct=class extends s.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const o=r=>{const a=this._definedNamesService.getDefinedNameMap(r);return a?JSON.stringify(a):""},t=r=>{if(!r)return{};try{return JSON.parse(r)}catch{return{}}},n=r=>{const a=r.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,Sn,{toJson:i=>o(i),parseJson:i=>t(i),onChange:(i,c)=>{this._definedNamesService.registerDefinedNames(i,c)}}))};this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(s.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(r=>{const a=r.getUnitId();this._resourceManagerService.disposePluginResource(a,Sn)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();n(e)}};ct=Ds([s.OnLifecycle(s.LifecycleStages.Ready,ct),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,oe.IDefinedNamesService),ot(3,s.IResourceManagerService)],ct);var Es=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,Os=(o,t,n,e)=>{for(var r=e>1?void 0:e?Ns(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(r=(e?i(t,n,r):i(r))||r);return e&&r&&Es(t,n,r),r},wt=(o,t)=>(n,e)=>t(n,e,o);const As="sheet";var yt;exports.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,n,e,r){super(As),this._config=t,this._commandService=n,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const n=[[Ne],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[st],[exports.MergeCellController],[ct]];(e=this._config)!=null&&e.notExecuteFormula||n.push([it],[at]),n.forEach(r=>{t.add(r)})}},B(yt,"type",s.PluginType.Sheet),yt);exports.UniverSheetsPlugin=Os([wt(1,s.ICommandService),wt(2,G.Inject(s.LocaleService)),wt(3,G.Inject(G.Injector))],exports.UniverSheetsPlugin);const Ps=[he.id,ce.id,$t.id,ge.id,Je.id,_e.id,be.id,Be.id,Ve.id,je.id,Le.id,Se.id,ve.id,fe.id,Ce.id],ks=[$.id,xe.id,j.id,L.id],xs=1.5,Bs="rgba(255,255,255, 0.01)";function Vs(o){const t=o.getCurrentTheme(),n=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Ls(o){const{rangeWithCoord:t,primaryWithCoord:n,style:e}=o,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return n!=null&&(r.primary=bo(n)),r}function bo(o){const{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:r}=o,{startRow:a,startColumn:i,endRow:c,endColumn:u}=o.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function js(o,t,n){const e=Oo.getCellInfoInMergeData(o,t,n),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Ws=(o,t,n)=>{const r=o.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=t;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:v,startColumn:h,endRow:S,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const R=n.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);R&&(C=R.endColumn,v=R.startRow,S=R.endRow)}else if(a===s.Dimension.ROWS){const R=n.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);R&&(S=R.endRow,h=R.startColumn,C=R.endColumn)}const I={startRow:v,startColumn:h,endRow:S,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},p=r.map((R,M,_)=>({range:R.range,style:null,primary:M===_.length-1?I:null})),f={unitId:c,subUnitId:u,pluginName:Y,selections:p};return{id:H.id,params:f}}return null}return null},Fs=(o,t)=>{const e=o.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=Ws;exports.AddMergeUndoMutationFactory=le;exports.AddMergeUndoSelectionsOperationFactory=Fs;exports.AddWorksheetMergeMutation=L;exports.BorderStyleManagerService=Ne;exports.COMMAND_LISTENER_SKELETON_CHANGE=Ps;exports.COMMAND_LISTENER_VALUE_CHANGE=ks;exports.ClearSelectionAllCommand=lt;exports.ClearSelectionContentCommand=Ut;exports.ClearSelectionFormatCommand=mt;exports.CopySheetCommand=pn;exports.DeleteRangeMoveLeftCommand=ht;exports.DeleteRangeMoveUpCommand=vt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=co;exports.EffectRefRangId=A;exports.EmptyMutation=ho;exports.INTERCEPTOR_POINT=ke;exports.INumfmtService=Oe;exports.InsertColAfterCommand=Nn;exports.InsertColBeforeCommand=En;exports.InsertColCommand=He;exports.InsertColMutation=Se;exports.InsertColMutationUndoFactory=Nt;exports.InsertDefinedNameCommand=vo;exports.InsertRangeMoveDownCommand=St;exports.InsertRangeMoveRightCommand=Ct;exports.InsertRowAfterCommand=Tn;exports.InsertRowBeforeCommand=bn;exports.InsertRowCommand=Fe;exports.InsertRowMutation=ve;exports.InsertRowMutationUndoFactory=Et;exports.InsertSheetCommand=On;exports.InsertSheetMutation=ye;exports.InsertSheetUndoMutationFactory=_t;exports.MAX_CELL_PER_SHEET_KEY=Io;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=gt;exports.MoveRangeMutation=xe;exports.MoveRowsCommand=Ot;exports.MoveRowsMutation=_e;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=k;exports.RangeMergeUtil=Ar;exports.RemoveColCommand=It;exports.RemoveColMutation=fe;exports.RemoveDefinedNameCommand=So;exports.RemoveMergeUndoMutationFactory=te;exports.RemoveNumfmtMutation=Yt;exports.RemoveRowCommand=ft;exports.RemoveRowMutation=Ce;exports.RemoveSheetCommand=Pt;exports.RemoveSheetMutation=We;exports.RemoveSheetUndoMutationFactory=Rn;exports.RemoveWorksheetMergeCommand=Bn;exports.RemoveWorksheetMergeMutation=j;exports.ResetBackgroundColorCommand=Zn;exports.ResetTextColorCommand=Jn;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Bs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=xs;exports.ScrollToCellOperation=fo;exports.SelectionMoveType=Cn;exports.SetBackgroundColorCommand=Xn;exports.SetBoldCommand=Rr;exports.SetBorderBasicCommand=Vn;exports.SetBorderColorCommand=Wn;exports.SetBorderCommand=$e;exports.SetBorderPositionCommand=Ln;exports.SetBorderStyleCommand=jn;exports.SetColHiddenCommand=Hn;exports.SetColHiddenMutation=Be;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Wt;exports.SetDefinedNameCommand=Co;exports.SetFontFamilyCommand=yr;exports.SetFontSizeCommand=Ur;exports.SetFrozenCommand=Gn;exports.SetFrozenMutation=pe;exports.SetFrozenMutationFactory=xt;exports.SetHorizontalTextAlignCommand=eo;exports.SetItalicCommand=pr;exports.SetNumfmtMutation=Rt;exports.SetRangeValuesCommand=Ue;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=uo;exports.SetRowHiddenCommand=qn;exports.SetRowHiddenMutation=je;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=Fn;exports.SetSelectedRowsVisibleCommand=zn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=kt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=wr;exports.SetStyleCommand=K;exports.SetTabColorCommand=oo;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=Kn;exports.SetTextRotationCommand=no;exports.SetTextWrapCommand=to;exports.SetUnderlineCommand=Mr;exports.SetVerticalTextAlignCommand=Qn;exports.SetWorksheetActivateCommand=Vt;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ge;exports.SetWorksheetColWidthMutationFactory=Lt;exports.SetWorksheetHideCommand=so;exports.SetWorksheetHideMutation=Me;exports.SetWorksheetNameCommand=Ft;exports.SetWorksheetNameMutation=ut;exports.SetWorksheetOrderCommand=io;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=$t;exports.SetWorksheetRowAutoHeightMutationFactory=Nr;exports.SetWorksheetRowHeightMutation=he;exports.SetWorksheetRowIsAutoHeightCommand=Gt;exports.SetWorksheetRowIsAutoHeightMutation=ce;exports.SetWorksheetShowCommand=lo;exports.SheetEditablePermission=we;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=bo;exports.convertSelectionDataToRange=Ls;exports.createTopMatrixFromMatrix=go;exports.createTopMatrixFromRanges=mo;exports.enUS=fs;exports.factoryRemoveNumfmtUndoMutation=Br;exports.factorySetNumfmtUndoMutation=xr;exports.findAllRectangle=zt;exports.followSelectionOperation=Re;exports.getAddMergeMutationRangeByType=Uo;exports.getCellAtRowCol=er;exports.getCurrentSheetDisabled$=_s;exports.getInsertRangeMutations=Tt;exports.getNormalSelectionStyle=Vs;exports.getPrimaryForRange=Q;exports.getRemoveRangeMutations=Dt;exports.handleBaseInsertRange=De;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=rs;exports.handleDefaultRangeChangeWithEffectRefCommands=os;exports.handleDeleteRangeMoveLeft=wo;exports.handleDeleteRangeMoveUp=yo;exports.handleDeleteRangeMutation=or;exports.handleIRemoveCol=Xt;exports.handleIRemoveRow=Zt;exports.handleInsertCol=en;exports.handleInsertRangeMoveDown=po;exports.handleInsertRangeMoveRight=Mo;exports.handleInsertRangeMutation=nr;exports.handleInsertRow=Qt;exports.handleMoveCols=Jt;exports.handleMoveRange=Ro;exports.handleMoveRows=Kt;exports.rangeMerge=qt;exports.rotateRange=ne;exports.runRefRangeMutations=Ee;exports.setEndForRange=tr;exports.transformCellDataToSelectionData=js;exports.transformCellsToRange=dt;exports.zhCN=_o;
|
|
1
|
+
"use strict";var Po=Object.defineProperty;var ko=(n,t,o)=>t in n?Po(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var L=(n,t,o)=>(ko(n,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@univerjs/core"),K=require("@wendellhu/redi"),ke=require("rxjs"),ae=require("@univerjs/engine-formula"),Ao=require("@univerjs/engine-numfmt"),cn=require("rxjs/operators"),xo=require("@univerjs/engine-render");var Vo=Object.defineProperty,Lo=Object.getOwnPropertyDescriptor,Bo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Lo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Vo(t,o,r),r},Fo=(n,t)=>(o,e)=>t(o,e,n);const Y="normalSelectionPluginName";var pn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(pn||{});exports.SelectionManagerService=class{constructor(t){L(this,"_selectionInfo",new Map);L(this,"_currentSelection",null);L(this,"_selectionMoveStart$",new ke.Subject);L(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());L(this,"_selectionMoving$",new ke.Subject);L(this,"selectionMoving$",this._selectionMoving$.asObservable());L(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));L(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());L(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:Y,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=Y,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:r},a)=>e===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const c=this._selectionInfo.get(e);c.has(r)||c.set(r,new Map);const u=c.get(r);if(!u.has(a))u.set(a,[...i]);else{let l=u.get(a);l==null&&(l=[],u.set(a,l)),l.push(...i)}o&&this._refresh({pluginName:e,unitId:r,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const c=i.get(e);if(!c.has(r))c.set(r,a);else{let u=c.get(r);u==null&&(u=[],c.set(r,u)),u.splice(0,u.length,...a)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}};exports.SelectionManagerService=Bo([Fo(0,K.Inject(s.ThemeService))],exports.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),st={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Ho=Object.defineProperty,$o=Object.getOwnPropertyDescriptor,Go=(n,t,o,e)=>{for(var r=e>1?void 0:e?$o(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ho(t,o,r),r},zo=(n,t)=>(o,e)=>t(o,e,n);exports.SheetInterceptorService=class extends s.Disposable{constructor(o){super();L(this,"_interceptorsByName",new Map);L(this,"_commandInterceptors",[]);L(this,"_workbookDisposables",new Map);L(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(st.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,c)=>{var u,l;return((u=c.priority)!=null?u:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(o){const e=o,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const e=new s.DisposableCollection,r=o.getUnitId(),a=this,i=c=>{const u=c.getSheetId();c.__interceptViewModel(l=>{const d=new s.DisposableCollection;a._worksheetDisposables.set(un(r,c),d),d.add(l.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(st.CELL_CONTENT)(c.getCellRaw(m,g),{unitId:r,subUnitId:u,row:m,col:g,worksheet:c,workbook:o})}})),d.add(l.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(st.ROW_FILTERED)(!1,{unitId:r,subUnitId:u,row:m,workbook:o,worksheet:c})}}))})};o.getSheets().forEach(c=>i(c)),e.add(s.toDisposable(o.sheetCreated$.subscribe(c=>i(c)))),e.add(s.toDisposable(()=>o.getSheets().forEach(c=>this._disposeSheetInterceptor(r,c)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(c=>this._disposeSheetInterceptor(r,c)))),this._workbookDisposables.set(r,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=un(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}};exports.SheetInterceptorService=Go([s.OnLifecycle(s.LifecycleStages.Starting,exports.SheetInterceptorService),zo(0,s.IUniverInstanceService)],exports.SheetInterceptorService);function un(n,t){return`${n}|${t.getSheetId()}`}const Ie=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const c=i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u=c.getCellMatrix(),l=i.getStyles(),d=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,v,h)=>{const f=s.Tools.deepClone(u==null?void 0:u.getValue(g,v))||{},S=l.getStyleByCell(f),R=Ko(S,h&&h.s?h.s:null);f.s=R,d.setValue(g,v,qo(f))}),{...t,options:{},cellValue:d.getMatrix()}};function qo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const $={id:"sheet.mutation.set-range-values",type:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const c=i.getSheetBySheetId(e);if(!c)return!1;const u=c.getCellMatrix(),l=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,v)=>{if(!v)u==null||u.setValue(m,g,{});else{const h=u.getValue(m,g)||{},f=v.t===s.CellValueType.FORCE_STRING?v.t:v.v!==void 0?dn(v.v,v.t):dn(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=f===s.CellValueType.NUMBER?Number(v.v):f===s.CellValueType.BOOLEAN?Yo(v.v)?1:0:v.v),h.v!==void 0&&(h.t=f),v.s!==void 0){const S=l.getStyleByCell(h);S==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const R=at(S,v.s?v.s:null);R&&s.Tools.removeNull(R),s.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!v.p&&h.p&&Zo(h.p,v.s?v.s:null)}v.custom!==void 0&&(h.custom=v.custom),u.setValue(m,g,s.Tools.removeNull(h))}}),!0}};function dn(n,t){return n===null?null:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function Yo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function Ko(n,t){return Xo(n,t)}function Xo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Jo(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Jo(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function at(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=s.Tools.deepClone(n)||{};if(e){for(const r in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function Mn(n,t){return n.some(o=>o.startIndex===t)?Mn(n,t+1):t}function Zo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],r=((i=n.body)==null?void 0:i.paragraphs)||[];for(const c of n.body.textRuns){const{st:u,ed:l,ts:d={}}=c;if(o<u){const g={st:o,ed:u},v=at({},t,!0);v&&s.Tools.removeNull(v),s.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=at(d,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete c.ts:c.ts=m,e.push(c),o=Mn(r,l)}const a=n.body.dataStream.endsWith(`\r
|
|
2
|
+
`)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const c={st:o,ed:a},u=at({},t,!0);u&&s.Tools.removeNull(u),s.Tools.isEmptyObject(u)||(c.ts=u),e.push(c)}n.body.textRuns=s.normalizeTextRuns(e)}const gt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:Qo(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const f=a.onCommandExecute({id:gt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const Tt={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m={subUnitId:l,unitId:c,cellValue:er(d)},g=Ie(n,m),v=a.onCommandExecute({id:Tt.id}),h=[{id:$.id,params:m},...v.redos],f=[...v.undos,{id:$.id,params:g}];return s.sequenceExecute(h,o).result?(r.pushUndoRedo({unitID:c,undoMutations:f,redoMutations:h}),!0):!1}};function er(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{v:null,p:null,f:null,si:null})}),t.getData()}const ht={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(exports.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(exports.SheetInterceptorService),i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const c=i.getUnitId(),l=i.getActiveSheet().getSheetId(),d=e.getSelectionRanges();if(!(d!=null&&d.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:c,cellValue:tr(d)},h=Ie(n,v);m.push({id:$.id,params:v}),g.push({id:$.id,params:h});const f=a.onCommandExecute({id:ht.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:c,undoMutations:g,redoMutations:m}),!0):!1}};function tr(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,{s:null})}),t.getData()}const Et=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_e={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function wn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function V(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function vt(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const yn=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=vt(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:c}=a,u=c.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:u,unitId:r}},Fe={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},_n={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=V(r,t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l}=i,d=s.Tools.deepClone(u.getConfig());d.name+=a.t("sheets.tabs.sheetCopy"),d.id=s.Tools.generateRandomId();const g={index:c.getSheetIndex(u)+1,sheet:d,unitId:l},v=Et(n,g);return o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:Fe.id,params:v}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ae={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),c=a.getSheetBySheetId(t.to.subUnitId);if(!i||!c)return!1;const u=i.getCellMatrix(),l=c.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((d,m,g)=>{u.setValue(d,m,g)}),new s.ObjectMatrix(e.value).forValue((d,m,g)=>{l.setValue(d,m,g)}),!0}},H={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(exports.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function Ke(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];if(e.forValue((i,c,u)=>{if(u.colSpan!==void 0&&u.rowSpan!==void 0){const l={startRow:i,startColumn:c,endRow:i+u.rowSpan-1,endColumn:c+u.colSpan-1};s.Rectangle.contains(n,l)||r.push(l)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);return o?Ke(a,t,o):a}function nr(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,c)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:c.rowSpan!==void 0||c.colSpan!==void 0,isMergedMainCell:c.rowSpan!==void 0&&c.colSpan!==void 0,endRow:a+(c.rowSpan!==void 0?c.rowSpan-1:0),endColumn:i+(c.colSpan!==void 0?c.colSpan-1:0),rangeType:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function or(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function ne(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const pe=(n,t,o)=>({id:H.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:Y,selections:[{range:n,primary:ne(n,o)}]}});function rr(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}const Un="sheet.command.move-range",ft={type:s.CommandType.COMMAND,id:Un,handler:(n,t)=>{var R,C;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),c=V(r);if(!c)return!1;const{worksheet:u,subUnitId:l,unitId:d}=c,m=St(n,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const v=n.get(exports.SheetInterceptorService).onCommandExecute({id:ft.id,params:{...t}}),h=[...(R=v.preRedos)!=null?R:[],...m.redos,...v.redos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:ne(t.toRange,u)}]}}],f=[...(C=v.preUndos)!=null?C:[],...m.undos,...v.undos,{id:H.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:ne(t.fromRange,u)}]}}];return s.sequenceExecute(h,o).result?(e.pushUndoRedo({unitID:d,undoMutations:f,redoMutations:h}),!0):!1}};function St(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:c,unitId:u}=t,{range:l,subUnitId:d}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(u),v=g==null?void 0:g.getSheetBySheetId(d),h=g==null?void 0:g.getSheetBySheetId(c),f=v==null?void 0:v.getCellMatrix(),S=h==null?void 0:h.getCellMatrix();if(v&&h&&f&&S){const R=Ke(l,v,!1);if(!s.Rectangle.equals(l,R)&&!e)return null;const C=new s.ObjectMatrix,I=new s.ObjectMatrix;s.Range.foreach(i,(_,b)=>{C.setValue(_,b,S.getValue(_,b)),I.setValue(_,b,null)});const M=new s.ObjectMatrix;s.Range.foreach(l,(_,b)=>{M.setValue(_,b,f.getValue(_,b))});const p=new s.ObjectMatrix;s.Range.foreach(i,(_,b)=>{const N=s.cellToRange(_,b),G=s.Rectangle.getRelativeRange(N,i),z=s.Rectangle.getPositionRange(G,l);p.setValue(z.startRow,z.startColumn,S.getValue(_,b))});const w={from:{value:I.getMatrix(),subUnitId:c},to:{value:p.getMatrix(),subUnitId:d},unitId:u},U={from:{value:C.getMatrix(),subUnitId:c},to:{value:M.getMatrix(),subUnitId:d},unitId:u};r.push({id:Ae.id,params:w}),a.push({id:Ae.id,params:U})}return{redos:r,undos:a}}const Xe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{subUnitId:u,unitId:l}=c,{value:d,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const v=new s.ObjectMatrix;let h;if(s.Tools.isArray(d))for(let p=0;p<g.length;p++){const{startRow:w,startColumn:U,endRow:_,endColumn:b}=g[p];for(let N=0;N<=_-w;N++)for(let G=0;G<=b-U;G++)v.setValue(N+w,G+U,d[N][G])}else if(s.isICellData(d))for(let p=0;p<g.length;p++){const{startRow:w,startColumn:U,endRow:_,endColumn:b}=g[p];for(let N=w;N<=_;N++)for(let G=U;G<=b;G++)v.setValue(N,G,d)}else h=d;const f={subUnitId:u,unitId:l,cellValue:h!=null?h:v.getMatrix()},S=Ie(n,f),R=o.syncExecuteCommand($.id,f),{undos:C,redos:I}=i.onCommandExecute({id:Xe.id,params:{...f,range:g}}),M=s.sequenceExecute([...I],o);return R&&M.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:S},...C],redoMutations:[{id:$.id,params:f},...I]}),!0):!1}};function Nt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c,cellValue:u={}}=t,l=n.get(s.IUniverInstanceService),d=n.get(exports.SheetInterceptorService),m=l.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I,M;if(c===s.Dimension.COLUMNS){const w=Math.min(i.endRow,h.endRow);let U=0;for(let b=i.startRow;b<=w;b++){const N=v.getRow(b),G=N?s.getArrayLength(N)-1:0;U=Math.max(U,G)}I={startRow:i.startRow,startColumn:i.startColumn,endRow:w,endColumn:U};const _=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:I.startColumn+_,endRow:w,endColumn:I.endColumn+_}}else{const w=Math.min(i.endColumn,h.endColumn),U=h.endRow;I={startRow:i.startRow,startColumn:i.startColumn,endRow:U,endColumn:w};const _=i.endRow-i.startRow+1;M={startRow:I.startRow+_,startColumn:i.startColumn,endRow:I.endRow+_,endColumn:w}}const p=St(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:M},!0);p&&(o.push(...p.redos),e.push(...p.undos))}if(Object.entries(u).length===0)for(let I=i.startRow;I<=i.endRow;I++){u[I]||(u[I]={});for(let M=i.startColumn;M<=i.endColumn;M++)u[I][M]=null}const f={subUnitId:a,unitId:r,cellValue:u},S=Ie(n,f),{undos:R,redos:C}=d.onCommandExecute({id:Xe.id,params:{...f,range:i}});o.push({id:$.id,params:f},...C),e.push({id:$.id,params:S},...R)}return{redo:o,undo:e}}function Dt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:c}=t,u=n.get(s.IUniverInstanceService),l=n.get(exports.SheetInterceptorService),d=u.getUniverSheetInstance(r),m=d==null?void 0:d.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:r,cellValue:ir([i])},f=Ie(n,h),S=l.onCommandExecute({id:Xe.id,params:h});if(o.push({id:$.id,params:h},...S.redos),e.push(...S.undos,{id:$.id,params:f}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,C=null;if(c===s.Dimension.COLUMNS&&i.endColumn<v.endColumn){const I=Math.min(i.endRow,v.endRow);let M=0;for(let w=i.startRow;w<=I;w++){const U=g.getRow(w),_=U?s.getArrayLength(U)-1:0;M=Math.max(M,_)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:I,endColumn:M};const p=i.endColumn-i.startColumn+1;C={startRow:i.startRow,startColumn:R.startColumn-p,endRow:I,endColumn:R.endColumn-p}}if(c===s.Dimension.ROWS&&i.endRow<v.endRow){const I=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:I};const p=i.endRow-i.startRow+1;C={startRow:R.startRow-p,startColumn:i.startColumn,endRow:R.endRow-p,endColumn:I}}if(R&&C){const I=St(n,{unitId:r,subUnitId:a,range:R},{unitId:r,subUnitId:a,range:C},!0);I&&(o.push(...I.redos),e.push(...I.undos))}}}return{redo:o,undo:e}}function sr(n,t,o,e,r,a){const{startRow:i,endRow:c,startColumn:u,endColumn:l}=t;if(r===s.Dimension.ROWS){const d=c-i+1;for(let m=o;m>=i;m--)for(let g=u;g<=l;g++){const v=n.getValue(m,g);v==null?n.realDeleteValue(m+d,g):n.setValue(m+d,g,v)}for(let m=c;m>=i;m--)for(let g=u;g<=l;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(r===s.Dimension.COLUMNS){const d=l-u+1;for(let m=i;m<=c;m++)for(let g=e;g>=u;g--){const v=n.getValue(m,g);v==null?n.realDeleteValue(m,g+d):n.setValue(m,g+d,v)}for(let m=i;m<=c;m++)for(let g=l;g>=u;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ar(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=t,l=i-a+1,d=u-c+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=c;g<=u;g++){const v=n.getValue(m+l,g);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=c;g<=e;g++){const v=n.getValue(m,g+d);v==null?n.realDeleteValue(m,g):n.setValue(m,g,v)}}function ir(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let c=e;c<=a;c++)for(let u=r;u<=i;u++)t.setValue(c,u,null)}),t.getData()}const bn="sheet.command.delete-range-move-left",Ct={type:s.CommandType.COMMAND,id:bn,handler:async(n,t)=>{var M,p,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{worksheet:u,workbook:l,subUnitId:d,unitId:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:d,unitId:m,shiftDimension:s.Dimension.COLUMNS},h=i.onCommandExecute({id:Ct.id,params:{range:g}}),{redo:f,undo:S}=Dt(n,v),R=[...(p=h.preRedos)!=null?p:[],...f],C=[...h.undos,...S];return R.push(...h.redos),R.push(pe(g,l,u)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:m,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},Tn="sheet.command.delete-range-move-up",Rt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var M,p,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=V(r);if(!c)return!1;const{unitId:u,subUnitId:l,workbook:d,worksheet:m}=c;let g=t==null?void 0:t.range;if(g||(g=(M=a.getLast())==null?void 0:M.range),!g)return!1;const v={range:g,subUnitId:l,unitId:u,shiftDimension:s.Dimension.ROWS},h=i.onCommandExecute({id:Rt.id,params:{range:g}}),{redo:f,undo:S}=Dt(n,v),R=[...(p=h.preRedos)!=null?p:[],...f],C=[...h.undos,...S];return R.push(...h.redos),R.push(pe(g,d,m)),C.push(...(w=h.preUndos)!=null?w:[]),s.sequenceExecute(R,o).result?(e.pushUndoRedo({unitID:u,undoMutations:C.reverse(),redoMutations:R}),!0):!1}},Ot=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Se={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(c==null)throw new Error("universheet is null error!");const u=c.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const l=u.getRowManager().getRowData(),d={h:u.getConfig().defaultRowHeight,hd:0},m=r.startRow,g=r.endRow-r.startRow+1;for(let f=m;f<m+g;f++)a?s.insertMatrixArray(f,(h=a[f-r.startRow])!=null?h:d,l):s.insertMatrixArray(f,d,l);return u.setRowCount(u.getRowCount()+r.endRow-r.startRow+1),u.getCellMatrix().insertRows(r.startRow,g),!0}},Pt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var h;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:c}=t,l=a.getColumnData(),d=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let f=d;f<d+m;f++){const S={w:g,hd:0};c?s.insertMatrixArray(f,(h=c[f-i.startColumn])!=null?h:S,l):s.insertMatrixArray(f,S,l)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},cr=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,c=s.sliceMatrixArray(i.startRow,i.endRow,r),u=s.concatMatrixArray(a,c);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:u}},ye={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getRowManager().getRowData();for(let d=a.startRow;d<=a.endRow;d++)r.getRowFiltered(d);const u=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,u,c),r.getCellMatrix().removeRows(a.startRow,u),r.setRowCount(r.getRowCount()-u),!0}},ur=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const c=r.getColumnManager().getColumnData(),u={},l=t.range,d=s.sliceMatrixArray(l.startColumn,l.endColumn,c),m=s.concatMatrixArray(u,d);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Re={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,c=r.getColumnManager().getColumnData(),u=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,u,c),r.setColumnCount(r.getColumnCount()-u),r.getCellMatrix().removeColumns(a.startColumn,u),!0}},dr="sheet.command.insert-range-move-down",It={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{unitId:d,subUnitId:m,worksheet:g,workbook:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const f=[],S=[],R=g.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(C.startRow,C.endRow,h.startColumn,h.endColumn).getDataRange().endRow,p=Math.max(M+(h.endRow-h.startRow+1)-C.endRow,0);if(p>0){const X=h.startRow-1,J=g.getRowHeight(X),q={unitId:d,subUnitId:m,range:{startRow:C.endRow+1,endRow:C.endRow+p,startColumn:C.startColumn,endColumn:C.endColumn},rowInfo:new Array(p).fill(void 0).map(()=>({h:J,hd:s.BooleanNumber.FALSE}))};f.push({id:Se.id,params:q});const Q=Ot(n,q);S.push({id:ye.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=g.getCell(X,J);q&&(w[X]||(w[X]={}),w[X][J]={s:q.s})});const U={range:h,subUnitId:m,unitId:d,shiftDimension:s.Dimension.ROWS,cellValue:w},{redo:_,undo:b}=Nt(n,U);f.push(..._),S.push(...b);const N=i.onCommandExecute({id:It.id,params:{range:h}});return f.push(...N.redos),f.push(pe(h,v,g)),S.push(...(y=N.preUndos)!=null?y:[]),f.unshift(...(ie=N.preRedos)!=null?ie:[]),S.unshift(...N.undos),s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:d,undoMutations:S.reverse(),redoMutations:f}),!0):!1}},En="sheet.command.insert-range-move-right",pt={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var z,y,ie;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(exports.SheetInterceptorService),c=n.get(s.ErrorService),u=n.get(s.LocaleService);if(a.isOverlapping())return c.emit(u.t("sheets.info.overlappingSelections")),!1;const l=V(r);if(!l)return!1;const{workbook:d,worksheet:m,unitId:g,subUnitId:v}=l;let h=t==null?void 0:t.range;if(h||(h=(z=a.getLast())==null?void 0:z.range),!h)return!1;const f=[],S=[],R=m.getCellMatrix(),C=R.getDataRange(),M=R.getSlice(h.startRow,h.endRow,C.startColumn,C.endColumn).getDataRange().endColumn,p=Math.max(M+(h.endColumn-h.startColumn+1)-C.endColumn,0);if(p>0){const X=h.startColumn-1,J=m.getColumnWidth(X),q={unitId:g,subUnitId:v,range:{startRow:C.startRow+1,endRow:C.endRow,startColumn:C.endColumn+1,endColumn:C.endColumn+p},colInfo:new Array(p).fill(void 0).map(()=>({w:J,hd:s.BooleanNumber.FALSE}))};f.push({id:Ce.id,params:q});const Q=Pt(n,q);S.push({id:Re.id,params:Q})}const w={};s.Range.foreach(h,(X,J)=>{const q=m.getCell(X,J);!q||!q.s||(w[X]||(w[X]={}),w[X][J]={s:q.s})});const U={range:h,subUnitId:v,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:w},{redo:_,undo:b}=Nt(n,U);f.push(..._),S.push(...b);const N=i.onCommandExecute({id:pt.id,params:{range:h}});return f.push(...N.redos),f.push(pe(h,d,m)),S.push(...(y=N.preUndos)!=null?y:[]),f.unshift(...(ie=N.preRedos)!=null?ie:[]),S.unshift(...N.undos),s.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:g,undoMutations:S.reverse(),redoMutations:f}),!0):!1}},Nn="sheet.command.insert-row",We={type:s.CommandType.COMMAND,id:Nn,handler:async(n,t)=>{var M,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),c=i.getSheetBySheetId(t.subUnitId),{range:u,direction:l,unitId:d,subUnitId:m}=t,{startRow:g,endRow:v}=u,h=l===s.Direction.UP?g:g-1,f=c.getRowHeight(h),S={unitId:d,subUnitId:m,range:u,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},R=Ot(n,S),C=a.onCommandExecute({id:We.id,params:t});return s.sequenceExecute([{id:Se.id,params:S},...C.redos,pe(u,i,c)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=C.preUndos)!=null?M:[],{id:ye.id,params:R},...C.undos],redoMutations:[...(p=C.preRedos)!=null?p:[],{id:Se.id,params:S},...C.redos]}),!0):!1}},Dn={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(exports.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={};s.Range.foreach(e,(v,h)=>{const f=i.getCell(v,h);!f||!f.s||(d[v]||(d[v]={}),d[v][h]={s:f.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:d};return n.get(s.ICommandService).executeCommand(We.id,m)}},On={type:s.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(exports.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endRow-e.startRow+1,d={unitId:c,subUnitId:u,direction:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(We.id,d)}},Pn="sheet.command.insert-col",je={type:s.CommandType.COMMAND,id:Pn,handler:async(n,t)=>{var M,p,w;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),{range:i,direction:c,subUnitId:u,unitId:l}=t,{startColumn:d,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),v=g.getSheetBySheetId(t.subUnitId),h=c===s.Direction.LEFT?d:d-1,f=v.getColumnWidth(h),S={unitId:l,subUnitId:u,range:i,colInfo:new Array(m-d+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},R=Pt(n,S),C=a.onCommandExecute({id:je.id,params:t});return s.sequenceExecute([...(M=C.preRedos)!=null?M:[],{id:Ce.id,params:S},...C.redos,pe(i,g,v)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(p=C.preUndos)!=null?p:[],{id:Re.id,params:R},...C.undos].filter(Boolean),redoMutations:[...(w=C.preRedos)!=null?w:[],{id:Ce.id,params:S},...C.redos].filter(Boolean)}),!0):!1}},kn={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={};s.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(d[g]||(d[g]={}),d[g][v]={s:h.s})});const m={unitId:c,subUnitId:u,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:d};return n.get(s.ICommandService).executeCommand(je.id,m)}},An={type:s.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(exports.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const c=a.getUnitId(),u=i.getSheetId(),l=e.endColumn-e.startColumn+1,d={unitId:c,subUnitId:u,direction:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(je.id,d)}},xn={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var h;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=wn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:c,workbook:u}=i;let l=u.getSheets().length,d=s.mergeWorksheetSnapshotWithDefault({});t?(l=(h=t.index)!=null?h:l,t.sheet?d=t.sheet:(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(d.id=s.Tools.generateRandomId(),d.name=u.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:l,sheet:d,unitId:c},g=Et(n,m);return o.syncExecuteCommand(_e.id,m)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Fe.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}};function lr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,c=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+c,startRow:r.startRow+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-c,startRow:a.startRow-c}}}const Ue={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveRowMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveRowMutation] worksheet is null!");const l=r.startRow,d=r.endRow-r.startRow+1,m=a.startRow,g=u.getRowManager().getRowData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveRows(l,d,m),!0}};function mr(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,c=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+c,startColumn:r.startColumn+c}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-c,endColumn:a.endColumn-c}}}const be={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(!c)throw new Error("[MoveColumnMutation] univerSheet is null!");const u=c.getSheetBySheetId(e);if(!u)throw new Error("[MoveColumnMutation] worksheet is null!");const l=r.startColumn,d=r.endColumn-r.startColumn+1,m=a.startColumn,g=u.getColumnManager().getColumnData();return s.moveMatrixArray(l,d,m,g),u.getCellMatrix().moveColumns(l,d,m),!0}};function gr(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function hr(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const Vn="sheet.command.move-rows",kt={id:Vn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.ROW&&Q.range.startRow<=r&&r<=Q.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=n.get(s.LocaleService),f=i[0].range,S=i[0].primary,R=Ke(f,d,!1);if(!s.Rectangle.equals(f,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(gr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...f,startRow:a,endRow:a+f.endRow-f.startRow},I={unitId:m,subUnitId:g,sourceRange:f,targetRange:C},M=lr(n,I),w=a-r<0,U=f.endRow-f.startRow+1,_=w?C:{...C,startRow:C.startRow-U,endRow:C.endRow-U},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:ne(_,d),style:null}]},N={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:f,primary:S,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:kt.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:Ue.id,params:I},{id:H.id,params:b},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:Ue.id,params:M},{id:H.id,params:N},...z.undos];return s.sequenceExecute(y,G).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0):!1}},Ln="sheet.command.move-cols",At={id:Ln,type:s.CommandType.COMMAND,handler:async(n,t)=>{var J,q;const e=n.get(exports.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(Q=>Q.range.rangeType===s.RANGE_TYPE.COLUMN&&Q.range.startColumn<=r&&r<=Q.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const c=n.get(exports.SheetInterceptorService),l=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!l)return!1;const d=l.getActiveSheet();if(!d)return!1;const m=l.getUnitId(),g=d.getSheetId(),v=n.get(s.ErrorService),h=n.get(s.LocaleService),f=i[0].range,S=i[0].primary,R=Ke(f,d,!1);if(!s.Rectangle.equals(f,R))return v.emit(h.t("sheets.info.partOfCell")),!1;if(hr(a,d))return v.emit(h.t("sheets.info.acrossMergedCell")),!1;const C={...f,startColumn:a,endColumn:a+f.endColumn-f.startColumn},I={unitId:m,subUnitId:g,sourceRange:f,targetRange:C},M=mr(n,I),p=f.endColumn-f.startColumn+1,_=a-r<0?C:{...C,startColumn:C.startColumn-p,endColumn:C.endColumn-p},b={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:ne(_,d),style:null}]},N={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:f,primary:S,style:null}]},G=n.get(s.ICommandService),z=c.onCommandExecute({id:At.id,params:t}),y=[...(J=z.preRedos)!=null?J:[],{id:be.id,params:I},{id:H.id,params:b},...z.redos],ie=[...(q=z.preUndos)!=null?q:[],{id:be.id,params:M},{id:H.id,params:N},...z.undos];return s.sequenceExecute(y,G).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:ie,redoMutations:y}),!0}},Bn="sheet.command.remove-row",Mt={type:s.CommandType.COMMAND,id:Bn,handler:async(n,t)=>{var C,I,M,p;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const m=[];for(let w=r.startRow;w<=r.endRow;w++)u.getRowFiltered(w)&&m.push(w);const g=[];if(m.length){const w=[r.startRow,...m.map(_=>_+1)],U=[...m.map(_=>_-1),r.endRow];for(let _=w.length-1;_>=0;_--)w[_]<=U[_]&&g.push({startRow:w[_],endRow:U[_],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const v=[],h=[];g.forEach(w=>{const U={unitId:d,subUnitId:l,range:w},_=u.getCellMatrix().getSlice(w.startRow,w.endRow,0,u.getColumnCount()-1),b={unitId:d,subUnitId:l,cellValue:_.getMatrix()},N=cr(U,u);v.push({id:ye.id,params:U}),h.unshift({id:Se.id,params:N},{id:$.id,params:b})});const f=e.onCommandExecute({id:Mt.id,params:{range:r}}),S=n.get(s.ICommandService);return s.sequenceExecute([...(I=f.preRedos)!=null?I:[],...v,...f.redos,pe(r,c,u)],S).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=f.preUndos)!=null?M:[],...h,...f.undos],redoMutations:[...(p=f.preRedos)!=null?p:[],...v,...f.redos]}),!0):!1}},Fn="sheet.command.remove-col",wt={type:s.CommandType.COMMAND,id:Fn,handler:async(n,t)=>{var C,I,M,p;const o=n.get(exports.SelectionManagerService),e=n.get(exports.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(C=o.getLast())==null?void 0:C.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{workbook:c,worksheet:u,subUnitId:l,unitId:d}=i;r={...r,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const m={unitId:d,subUnitId:l,range:r},g=ur(n,m),v=u.getCellMatrix().getSlice(0,u.getRowCount()-1,r.startColumn,r.endColumn),h={unitId:d,subUnitId:l,cellValue:v.getMatrix()},f=e.onCommandExecute({id:wt.id,params:{range:r}}),S=n.get(s.ICommandService);return s.sequenceExecute([...(I=f.preRedos)!=null?I:[],{id:Re.id,params:m},...f.redos,pe(r,c,u)],S).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(M=f.preUndos)!=null?M:[],{id:Ce.id,params:g},{id:$.id,params:h},...f.undos],redoMutations:[...(p=f.preRedos)!=null?p:[],{id:Re.id,params:m},...f.redos]}),!0):!1}},xt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var C,I;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SheetInterceptorService),i=V(r,t);if(!i)return!1;const{unitId:c,subUnitId:u,workbook:l,worksheet:d}=i;if(l.getSheets().length<=1)return!1;const m=l.getSheetIndex(d);l.getConfig().sheetOrder[m+1];const g={subUnitId:u,unitId:c,subUnitName:d.getName()},v=yn(n,g),h=a.onCommandExecute({id:xt.id,params:{unitId:c,subUnitId:u}}),f=[...(C=h.preRedos)!=null?C:[],{id:Fe.id,params:g},...h.redos],S=[...(I=h.preUndos)!=null?I:[],{id:_e.id,params:v},...h.undos];return s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:c,undoMutations:S,redoMutations:f}),!0):!1}},ge=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},B={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)i.push(c[u]);return!0}},re=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,c=t.ranges,u=[];for(let l=0;l<c.length;l++)for(let d=i.length-1;d>=0;d--){const m=i[d],g=c[l];s.Rectangle.intersects(m,g)&&u.push(i[d])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:u}},F={id:"sheet.mutation.remove-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,c=t.ranges;for(let u=0;u<c.length;u++)for(let l=i.length-1;l>=0;l--){const d=i[l],m=c[u];s.Rectangle.intersects(d,m)&&i.splice(l,1)}return!0}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{subUnitId:c,unitId:u,worksheet:l}=i,d={unitId:u,subUnitId:c,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(p=>{g.forEach(w=>{s.Rectangle.intersects(p,w)&&(m=!0)})}),!m)return!1;const v=re(n,d),h=t.getSelections();if(!(h!=null&&h.length))return!1;const f=s.Tools.deepClone(h),S=s.Tools.deepClone(h),R=S[S.length-1],{startRow:C,startColumn:I}=R.range;return R.primary={startRow:C,startColumn:I,endRow:C,endColumn:I,actualRow:C,actualColumn:I,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:v},{id:H.id,params:{selections:S}}],o)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:B.id,params:v},{id:H.id,params:{selections:f}}],redoMutations:[{id:F.id,params:v},{id:H.id,params:{selections:S}}]}),!0):!1}};class De{constructor(){L(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));L(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function Qe(n,t){const{startRow:o,startColumn:e,endRow:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let c=e;c<=a;c++)t(i,c)}const jn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:c}=r,u=n.get(s.ICommandService),l=n.get(De);return l.setType(a),l.setColor(i),l.setStyle(c),u.executeCommand(He.id,{unitId:o,subUnitId:e})}},Hn={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(De).setType(t.value),o.executeCommand(He.id)}},$n={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setStyle(t.value),o.executeCommand(He.id)}},Gn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(De).setColor(t.value),o.executeCommand(He.id)}},He={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(exports.SelectionManagerService),i=n.get(De),c=V(r,t);if(!c)return!1;const{worksheet:u,unitId:l,subUnitId:d}=c,m=a.getSelectionRanges(),g=u.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:v,color:h,type:f,activeBorderType:S}=i.getBorderInfo();if(!S)return!1;const R=f===s.BorderType.TOP||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,C=f===s.BorderType.LEFT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,I=f===s.BorderType.BOTTOM||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,M=f===s.BorderType.RIGHT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,p=f===s.BorderType.VERTICAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,w=f===s.BorderType.HORIZONTAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,U=f.indexOf("tlbr")>-1,_=f.indexOf("tlbc")>-1,b=f.indexOf("tlmr")>-1,N=f.indexOf("bltr")>-1,G=f.indexOf("mltr")>-1,z=f.indexOf("bctr")>-1,y=m[0],ie={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},X={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},J={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},q={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},Q={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},on={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},rn={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},sn={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},k=new s.ObjectMatrix,j={s:v,cl:{rgb:h}},Ze=(D,T)=>{let x=null;return g.forEach(ee=>{s.Rectangle.intersects(ee,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(x=ee)}),x};function W(D,T,x){D.startRow<0||D.startColumn<0||Qe(D,(ee,ce)=>{var E,$e;const te=Ze(ee,ce);let oe=T;if(te&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(x){const ue=s.Tools.deepClone((E=k.getValue(te.startRow,te.startColumn))==null?void 0:E.s);oe=ue!=null&&ue.bd?Object.assign(ue.bd,T):T}k.setValue(te.startRow,te.startColumn,{s:{bd:oe}})}else{if(x){const ue=s.Tools.deepClone(($e=k.getValue(ee,ce))==null?void 0:$e.s);oe=ue!=null&&ue.bd?Object.assign(ue.bd,T):T}k.setValue(ee,ce,{s:{bd:oe}})}})}R&&(W(ie,{b:null}),W(Q,{t:s.Tools.deepClone(j)},!0)),I&&(W(J,{t:null}),W(rn,{b:s.Tools.deepClone(j)},!0)),C&&(W(X,{r:null}),W(on,{l:s.Tools.deepClone(j)},!0)),M&&(W(q,{l:null}),W(sn,{r:s.Tools.deepClone(j)},!0)),U&&W(y,{tl_br:s.Tools.deepClone(j)},!0),_&&W(y,{tl_bc:s.Tools.deepClone(j)},!0),b&&W(y,{tl_mr:s.Tools.deepClone(j)},!0),N&&W(y,{bl_tr:s.Tools.deepClone(j)},!0),G&&W(y,{ml_tr:s.Tools.deepClone(j)},!0),z&&W(y,{bc_tr:s.Tools.deepClone(j)},!0),p&&Qe(y,(D,T)=>{var ee,ce,te,oe;const x=Ze(D,T);if(x){if(x.endColumn!==y.endColumn){const E=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(x.startColumn!==y.startColumn){const E=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}else{if(T!==y.endColumn){const E=(te=k.getValue(D,T))==null?void 0:te.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(j)}):{r:s.Tools.deepClone(j)}}})}if(T!==y.startColumn){const E=(oe=k.getValue(D,T))==null?void 0:oe.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(j)}):{l:s.Tools.deepClone(j)}}})}}}),w&&Qe(y,(D,T)=>{var ee,ce,te,oe;const x=Ze(D,T);if(x){if(x.endRow!==y.endRow){const E=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(x.startRow!==y.startRow){const E=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}else{if(D!==y.endRow){const E=(te=k.getValue(D,T))==null?void 0:te.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(j)}):{b:s.Tools.deepClone(j)}}})}if(D!==y.startRow){const E=(oe=k.getValue(D,T))==null?void 0:oe.s;k.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(j)}):{t:s.Tools.deepClone(j)}}})}}}),!R&&!I&&!C&&!M&&!p&&!w&&!U&&!_&&!b&&!N&&!G&&!z&&(W(ie,{b:null}),W(Q,{t:null},!0),W(J,{t:null}),W(rn,{b:null},!0),W(X,{r:null}),W(on,{l:null},!0),W(q,{l:null}),W(sn,{r:null},!0),W(y,{tl_br:null},!0),W(y,{tl_bc:null},!0),W(y,{tl_mr:null},!0),W(y,{bl_tr:null},!0),W(y,{ml_tr:null},!0),W(y,{bc_tr:null},!0),Qe(y,(D,T)=>{var ee,ce,te,oe,E,$e,ue,an;const x=Ze(D,T);if(x){if(x.endColumn!==y.endColumn){const O=(ee=k.getValue(x.startRow,x.startColumn))==null?void 0:ee.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(x.startColumn!==y.startColumn){const O=(ce=k.getValue(x.startRow,x.startColumn))==null?void 0:ce.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(x.endRow!==y.endRow){const O=(te=k.getValue(x.startRow,x.startColumn))==null?void 0:te.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(x.startRow!==y.startRow){const O=(oe=k.getValue(x.startRow,x.startColumn))==null?void 0:oe.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==y.endColumn){const O=(E=k.getValue(D,T))==null?void 0:E.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==y.startColumn){const O=($e=k.getValue(D,T))==null?void 0:$e.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==y.endRow){const O=(ue=k.getValue(D,T))==null?void 0:ue.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==y.startRow){const O=(an=k.getValue(D,T))==null?void 0:an.s;k.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const _t={unitId:l,subUnitId:d,cellValue:k.getData()},Oo=Ie(n,_t);return o.syncExecuteCommand($.id,_t)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:$.id,params:Oo}],redoMutations:[{id:$.id,params:_t}]}),!0):!1}},vr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},xe={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.TRUE)}}return!0}},fr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ve={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startColumn;c<i.endColumn+1;c++){const u=r.getColumnOrCreate(c);u!=null&&(u.hd=s.BooleanNumber.FALSE)}}return!0}},Vt={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},c=fr(n,i),u={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(g=>({range:g,primary:ne(g,a),style:null}))},l={unitId:o,subUnitId:e,pluginName:Y,selections:Yn(r).map(g=>({range:g,primary:ne(g,a),style:null}))},d=n.get(s.ICommandService);return s.sequenceExecute([{id:Ve.id,params:i},{id:H.id,params:u}],d).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:xe.id,params:c},{id:H.id,params:l}],redoMutations:[{id:Ve.id,params:i},{id:H.id,params:u}]}),!0}},zn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var l;const o=(l=n.get(exports.SelectionManagerService).getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=o.map(d=>a.getHiddenCols(d.startColumn,d.endColumn)).flat();return n.get(s.ICommandService).executeCommand(Vt.id,{unitId:i,subUnitId:c,ranges:u})}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var v;const o=(v=n.get(exports.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u={unitId:i,subUnitId:c,ranges:o},l={unitId:i,subUnitId:c,pluginName:Y,selections:Yn(o).map(h=>({range:h,primary:ne(h,a),style:null}))},d={unitId:i,subUnitId:c,pluginName:Y,selections:o.map(h=>({range:h,primary:ne(h,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:xe.id,params:u},{id:H.id,params:l}],m).result){const h=n.get(s.IUndoRedoService),f=vr(n,u);return h.pushUndoRedo({unitID:i,undoMutations:[{id:Ve.id,params:f},{id:H.id,params:d}],redoMutations:[{id:xe.id,params:u},{id:H.id,params:l}]}),!0}return!1}};function Yn(n){return Sr(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Sr(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Lt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},Me={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:c,ySplit:u,xSplit:l}=t;return a.freeze={startRow:i,startColumn:c,ySplit:u,xSplit:l},!0}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=V(r);if(!a)return!1;const{unitId:i,subUnitId:c,worksheet:u}=a,{startColumn:l,startRow:d,xSplit:m,ySplit:g}=t;if(d>=u.getRowCount()||l>=u.getColumnCount()||m>=u.getColumnCount()||g>=u.getRowCount())return!1;const v={unitId:i,subUnitId:c,...t},h=Lt(n,v);return o.syncExecuteCommand(Me.id,v)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Me.id,params:h}],redoMutations:[{id:Me.id,params:v}]}),!0):!1}},Cr={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=V(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},u=Lt(n,c);return t.syncExecuteCommand(Me.id,c)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:Me.id,params:u}],redoMutations:[{id:Me.id,params:c}]}),!0):!1}},Rr=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Le={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=0)}}return!0}},Ir=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Be={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let c=i.startRow;c<i.endRow+1;c++){const u=r.getRowOrCreate(c);u!=null&&(u.hd=1)}}return!0}},Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={unitId:o,subUnitId:e,ranges:r},l=Rr(n,u),d={unitId:o,subUnitId:e,pluginName:Y,selections:r.map(v=>({range:v,primary:ne(v,c),style:null}))},m={unitId:o,subUnitId:e,pluginName:Y,selections:Zn(r).map(v=>({range:v,primary:ne(v,c),style:null}))};return s.sequenceExecute([{id:Le.id,params:u},{id:H.id,params:d}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:Be.id,params:l},{id:H.id,params:m}],redoMutations:[{id:Le.id,params:u},{id:H.id,params:d}]}),!0}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var l;const t=n.get(exports.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(d=>d.range).filter(d=>d.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),c=a.getSheetId(),u=e.map(d=>a.getHiddenRows(d.startRow,d.endRow)).flat();return n.get(s.ICommandService).executeCommand(Bt.id,{unitId:i,subUnitId:c,ranges:u})}},Jn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var f;const t=n.get(exports.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(f=t.getSelections())==null?void 0:f.map(S=>S.range).filter(S=>S.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=V(r);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,d={unitId:c,subUnitId:u,ranges:a},m={unitId:c,subUnitId:u,pluginName:Y,selections:Zn(a).map(S=>({range:S,primary:ne(S,l),style:null}))},g={unitId:c,subUnitId:u,pluginName:Y,selections:a.map(S=>({range:S,primary:ne(S,l),style:null}))},v=Ir(n,d);return s.sequenceExecute([{id:Be.id,params:d},{id:H.id,params:m}],o).result&&e.pushUndoRedo({unitID:c,undoMutations:[{id:Le.id,params:v},{id:H.id,params:g}],redoMutations:[{id:Be.id,params:d},{id:H.id,params:m}]}),!0}};function Zn(n){return pr(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function pr(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const Z={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=V(o);if(!e)return!1;const{unitId:r,subUnitId:a}=e,{range:i,style:c}=t,u=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),d=n.get(exports.SelectionManagerService),m=i?[i]:d.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g=new s.ObjectMatrix;if(s.Tools.isArray(c.value))for(let I=0;I<m.length;I++){const{startRow:M,endRow:p,startColumn:w,endColumn:U}=m[I];for(let _=0;_<=p-M;_++)for(let b=0;b<=U-w;b++)g.setValue(_+M,b+w,{s:{[c.type]:c.value[_][b]}})}else for(let I=0;I<m.length;I++){const{startRow:M,endRow:p,startColumn:w,endColumn:U}=m[I],_={s:{[c.type]:c.value}};for(let b=M;b<=p;b++)for(let N=w;N<=U;N++)g.setValue(b,N,_)}const v={subUnitId:a,unitId:r,cellValue:g.getMatrix()},h=Ie(n,v),f=u.syncExecuteCommand($.id,v),{undos:S,redos:R}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Z.id,params:t}),C=s.sequenceExecute([...R],u);return f&&C.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:$.id,params:h},...S],redoMutations:[{id:$.id,params:v},...R]}),!0):!1}},Mr={type:s.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,c={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,c)}},wr={type:s.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:c}=t.primary;r=e.getRange(i,c).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},yr={type:s.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}},_r={type:s.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(exports.SelectionManagerService).getLast();if(!t)return!1;const o=V(n.get(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(Z.id,a)}};s.CommandType.COMMAND;const Ur={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(Z.id,e)}},br={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(Z.id,e)}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(Z.id,e)}},eo={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(Z.id,o)}},to={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(Z.id,e)}},no={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(Z.id,o)}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(Z.id,e)}},ro={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(Z.id,e)}},so={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(Z.id,e)}},ao={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(Z.id,r)}},Tr=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},ze={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},io={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,c={color:t.value,unitId:a,subUnitId:i},u=Tr(n,c);return o.syncExecuteCommand(ze.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:ze.id,params:u}],redoMutations:[{id:ze.id,params:c}]}),!0):!1}},Je={id:"sheet.operation.set-worksheet-active",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},Er=4,Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(c=>{setTimeout(()=>{const u=e.syncExecuteCommand(Je.id,{unitId:a,subUnitId:i},o);c(u)},Er)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),c=t.ranges;for(let u=0;u<c.length;u++){const l=c[u];for(let d=l.startColumn;d<l.endColumn+1;d++){const m=i.getColumnOrCreate(d);a[d]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},ve={id:"sheet.mutation.set-worksheet-col-width",type:s.CommandType.MUTATION,handler:(n,t)=>{var u;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),c=t.ranges;for(let l=0;l<c.length;l++){const d=c[l];for(let m=d.startColumn;m<d.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(u=t.colWidth[m-d.startColumn])!=null?u:a}}return!0}},jt={type:s.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:c,unitId:u,subUnitId:l}=i,{anchorCol:d,deltaX:m}=t,v=c.getColumnWidth(d)+m,h=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,f=e.filter(U=>U.range.rangeType===s.RANGE_TYPE.COLUMN),S=h?s.RANGE_TYPE.ALL:f.some(({range:U})=>{const{startColumn:_,endColumn:b}=U;return _<=d&&d<=b})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let R;if(S===s.RANGE_TYPE.ALL){const U=c.getRowCount(),_=new Array(c.getColumnCount()).fill(void 0).map((b,N)=>({startRow:0,endRow:U-1,startColumn:N,endColumn:N}));R={subUnitId:l,unitId:u,colWidth:v,ranges:_}}else S===s.RANGE_TYPE.COLUMN?R={subUnitId:l,unitId:u,ranges:f.map(U=>s.Rectangle.clone(U.range)),colWidth:v}:R={subUnitId:l,unitId:u,colWidth:v,ranges:[{startRow:0,endRow:c.getMaxRows()-1,startColumn:d,endColumn:d}]};const C=Wt(n,R),I=r.syncExecuteCommand(ve.id,R),{undos:M,redos:p}=n.get(exports.SheetInterceptorService).onCommandExecute({id:jt.id,params:R}),w=s.sequenceExecute([...p],r);return I&&w.result&&a.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:C},...M],redoMutations:[{id:ve.id,params:R},...p]}),!0}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(exports.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=V(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:c,unitId:u}=i,l={subUnitId:c,unitId:u,ranges:a,colWidth:t.value},d=Wt(n,l),m=e.syncExecuteCommand(ve.id,l),{undos:g,redos:v}=n.get(exports.SheetInterceptorService).onCommandExecute({id:Ht.id,params:l}),h=s.sequenceExecute([...v],e);return m&&h.result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:ve.id,params:d},...g],redoMutations:[{id:ve.id,params:l},...v]}),!0):!1}},co=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},we={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},uo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=V(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:c,worksheet:u,unitId:l,subUnitId:d}=i;if(u.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:l,subUnitId:d,hidden:s.BooleanNumber.TRUE},v=co(n,g);return c.getSheets().filter(R=>R.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(we.id,g)?(e.pushUndoRedo({unitID:l,undoMutations:[{id:we.id,params:v}],redoMutations:[{id:we.id,params:g}]}),!0):!1}},Nr=(n,t)=>{const o=vt(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},lt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},$t={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var h,f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SheetInterceptorService),a=V(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:c}=a,u={subUnitId:c,name:t.name,unitId:i},l=Nr(n,u),d=r.onCommandExecute({id:$t.id,params:t}),m=[...(h=d.preRedos)!=null?h:[],{id:lt.id,params:u},...d.redos],g=[...(f=d.preUndos)!=null?f:[],{id:lt.id,params:l},...d.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Dr=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),qe={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},lo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=V(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:c}=r,l={fromOrder:a.getConfig().sheetOrder.indexOf(c),toOrder:t.order,unitId:i,subUnitId:c},d=Dr(n,l);return o.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:qe.id,params:d}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Or=2e3,mo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e);if(c==null)throw new Error("worksheet is null error!");const u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<m+1;g++){const v=l.getRowOrCreate(g);u[g]=v.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:u}},Gt=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),u={},l=c.getRowManager();for(const{startRow:d,endRow:m}of r)for(let g=d;g<=m;g++){const v=l.getRowOrCreate(g);u[g]=v.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:u}},Pr=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e),u=[],l=c.getRowManager();for(const d of r){const{row:m}=d,{ah:g}=l.getRowOrCreate(m);u.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:u}},fe={id:"sheet.mutation.set-worksheet-row-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=u.getConfig().defaultRowHeight,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const f=d.getRowOrCreate(h);typeof a=="number"?f.h=a:f.h=(m=a[h])!=null?m:l,f.h=Math.min(Or,f.h)}return!0}},de={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,c=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=c==null?void 0:c.getSheetBySheetId(e);if(!u)return!1;const l=void 0,d=u.getRowManager();for(const{startRow:g,endRow:v}of r)for(let h=g;h<=v;h++){const f=d.getRowOrCreate(h);typeof a=="number"?f.ia=a:f.ia=(m=a[h-g])!=null?m:l}return!0}},zt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),c=i==null?void 0:i.getSheetBySheetId(e);if(!c||!i)return!1;const u=c.getRowManager();for(const{row:l,autoHeight:d}of r){const m=u.getRowOrCreate(l);m.ah=d}return!0}},go={type:s.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const r=V(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:c}=r,{anchorRow:u,deltaY:l}=t,m=a.getRowHeight(u)+l,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,v=e.filter(w=>w.range.rangeType===s.RANGE_TYPE.ROW),h=g?s.RANGE_TYPE.ALL:v.some(({range:w})=>{const{startRow:U,endRow:_}=w;return U<=u&&u<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(h===s.RANGE_TYPE.ALL){const w=a.getRowCount(),U=new Array(a.getColumnCount()).fill(void 0).map((_,b)=>({startRow:b,endRow:b,startColumn:0,endColumn:w-1}));f={subUnitId:i,unitId:c,rowHeight:m,ranges:U}}else h===s.RANGE_TYPE.ROW?f={subUnitId:i,unitId:c,ranges:v.map(w=>s.Rectangle.clone(w.range)),rowHeight:m}:f={subUnitId:i,unitId:c,rowHeight:m,ranges:[{startRow:u,endRow:u,startColumn:0,endColumn:a.getMaxColumns()-1}]};const S=mo(n,f),R={unitId:c,subUnitId:i,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},C=Gt(n,R),I=n.get(s.ICommandService),M=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:fe.id,params:f},{id:de.id,params:R}],I).result?(M.pushUndoRedo({unitID:c,undoMutations:[{id:fe.id,params:S},{id:de.id,params:C}],redoMutations:[{id:fe.id,params:f},{id:de.id,params:R}]}),!0):!1}},ho={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(exports.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const c=V(a);if(!c)return!1;const{unitId:u,subUnitId:l}=c,d={subUnitId:l,unitId:u,ranges:i,rowHeight:t.value},m=mo(n,d),g={unitId:u,subUnitId:l,ranges:d.ranges,autoHeightInfo:s.BooleanNumber.FALSE},v=Gt(n,g);return s.sequenceExecute([{id:fe.id,params:d},{id:de.id,params:g}],e).result?(r.pushUndoRedo({unitID:u,undoMutations:[{id:fe.id,params:m},{id:de.id,params:v}],redoMutations:[{id:fe.id,params:d},{id:de.id,params:g}]}),!0):!1}},qt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(exports.SelectionManagerService),a=n.get(s.IUniverInstanceService),i=V(a);if(!i)return!1;const{unitId:c,subUnitId:u,worksheet:l}=i,{anchorRow:d}=t!=null?t:{},m=d!=null?[{startRow:d,endRow:d,startColumn:0,endColumn:l.getMaxColumns()-1}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:c,subUnitId:u,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},v=Gt(n,g),h=o.syncExecuteCommand(de.id,g),{undos:f,redos:S}=n.get(exports.SheetInterceptorService).onCommandExecute({id:qt.id,params:g}),R=s.sequenceExecute([...S],o);return h&&R.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:de.id,params:v},...f],redoMutations:[{id:de.id,params:g},...S]}),!0):!1}},vo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=V(n.get(s.IUniverInstanceService));if(!a)return!1;const{unitId:i,subUnitId:c}=a,u=r.getUniverSheetInstance(i);if(!u)return!1;const l=u.getSheetBySheetId(c);if(!l||l.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:i,subUnitId:c,hidden:s.BooleanNumber.FALSE},g=co(n,m),v=o.syncExecuteCommand(we.id,m),h={unitId:i,subUnitId:c},f=o.syncExecuteCommand(Je.id,h);return v&&f?(e.pushUndoRedo({unitID:i,undoMutations:[{id:we.id,params:g}],redoMutations:[{id:we.id,params:m}]}),!0):!1}},fo=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},So=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ln=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,c=a;o(i*c,{startRow:e-c+1,endRow:e,startColumn:r,endColumn:r});const u={startRow:e-c+1,endRow:e,startColumn:0,endColumn:r};for(let l=r-1;l>=0&&n.getValue(e,l);l--){c=Math.min(n.getValue(e,l)||0,c),i++;const d=c*i;u.startColumn=l,u.startRow=e-c+1,o(d,u)}}),t},kr=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),Yt=n=>{const t=[];let o=ln(n);for(;o.area>0;)o.range&&(t.push(o.range),kr(n,o.range)),o=ln(n);return t},Kt=n=>{const t=fo(n);return Yt(t)};class Ar{constructor(){L(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=So(this._matrix);return Yt(t)}}const xr=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Vr=(n=0)=>{let t=n;return function(){return t++}},Oe=K.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Oe);const Lr=(n,t)=>{const o=n.get(Oe),{values:e,unitId:r,subUnitId:a}=t,i=[],c=[];Object.keys(e).forEach(l=>{e[l].ranges.forEach(m=>{s.Range.foreach(m,(g,v)=>{const h=o.getValue(r,a,g,v);h?i.push({pattern:h.pattern,row:g,col:v}):c.push({startColumn:v,endColumn:v,startRow:g,endRow:g})})})});const u=[];if(i.length){const l=mt(r,a,i);Object.keys(l.values).forEach(d=>{const m=l.values[d];m.ranges=Kt(m.ranges)}),u.push({id:yt.id,params:mt(r,a,i)})}return c.length&&u.push({id:Xt.id,params:{unitId:r,subUnitId:a,ranges:c}}),u},yt={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(Oe),a=t.unitId,i=t.subUnitId,c=Object.keys(o).reduce((u,l)=>{const d=e[l],m=o[l].ranges;return d&&u.push({...d,ranges:m}),u},[]);return r.setValues(a,i,c),!0}},Xt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Oe).deleteValues(o,e,r),!0}},Br=(n,t)=>{const o=n.get(Oe),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(u=>{s.Range.foreach(u,(l,d)=>{const m=o.getValue(r,a,l,d);m&&i.push({pattern:m.pattern,row:l,col:d})})}),!i.length)return[];const c=mt(r,a,i);return Object.keys(c.values).forEach(u=>{const l=c.values[u];l.ranges=Kt(l.ranges)}),[{id:yt.id,params:c}]},mt=(n,t,o)=>{const e=xr(o,"pattern"),r={},a={},i=Vr();return Object.keys(e).forEach(c=>{const u=e[c],l=i();r[l]={pattern:c},u.forEach(d=>{a[l]||(a[l]={ranges:[]}),a[l].ranges.push(s.cellToRange(d.row,d.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},Co={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},Ro={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ae.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ae.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ae.SetDefinedNameMutation.id,params:r}]}),!0):!1}},Io={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ae.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ae.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ae.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},po={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ae.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ae.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ae.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},Mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},wo="maxCellsPerSheet",Fr=3e6;var Wr=Object.defineProperty,jr=Object.getOwnPropertyDescriptor,Hr=(n,t,o,e)=>{for(var r=e>1?void 0:e?jr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Wr(t,o,r),r},mn=(n,t)=>(o,e)=>t(o,e,n);let it=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[B,gt,Tt,ht,_n,Ct,Rt,jt,go,An,kn,je,Ce,It,pt,On,Dn,We,Se,xn,_e,At,be,ft,Ae,kt,Ue,wt,Re,Mt,ye,xt,Fe,Wn,F,no,eo,to,jn,Gn,He,Hn,$n,qn,xe,Ve,Ht,Cr,Kn,Me,ro,Xe,$,ho,Jn,Be,Le,zn,Xn,Vt,Bt,Z,io,ze,Qn,ao,so,oo,Ft,Je,ve,uo,we,$t,lt,lo,qe,zt,fe,qt,de,vo,yt,H,Xt,Co,Ro,Io,po,Mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(wo,Fr)}};it=Hr([s.OnLifecycle(s.LifecycleStages.Starting,it),mn(0,s.ICommandService),mn(1,s.IConfigService)],it);const $r=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],Gr={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 zr(n,t,o){var u,l;if(n==null||t==null)return t;const e=(o==null?void 0:o.getStyleByCell(n))||n.s,r=(o==null?void 0:o.getStyleByCell(t))||t.s;if(e==null||r==null||typeof e!="object"||typeof r!="object")return t;const a=(u=e==null?void 0:e.n)==null?void 0:u.pattern,i=(l=r==null?void 0:r.n)==null?void 0:l.pattern;if(a==null||i==null)return t;const c=qr(a,i);return r.n.pattern=c,t}function qr(n,t){const o=gn(n),e=gn(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 gn(n){if(Yr(n))return 3;const t=Ao.getInfo(n).type||"unknown";return Gr[t]}function Yr(n){return!!$r.find(t=>n.includes(t))&&n.startsWith("_(")}var Kr=Object.defineProperty,Xr=Object.getOwnPropertyDescriptor,Jr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Xr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Kr(t,o,r),r},hn=(n,t)=>(o,e)=>t(o,e,n);let ct=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ae.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const c=o[i];if(c==null)return!0;Object.keys(c).forEach(l=>{const d=c[l];if(d==null)return!0;const m=this._getMergedCellData(i,l,d),g={subUnitId:l,unitId:i,cellValue:m};r.push({id:$.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),c=new s.ObjectMatrix(o);return c.forValue((u,l,d)=>{const m=i==null?void 0:i.getValue(u,l),g=zr(m,d,r);c.setValue(u,l,g)}),c.clone()}};ct=Jr([s.OnLifecycle(s.LifecycleStages.Ready,ct),hn(0,K.Inject(s.IUniverInstanceService)),hn(1,s.ICommandService)],ct);var Zr=Object.defineProperty,Qr=Object.getOwnPropertyDescriptor,es=(n,t,o,e)=>{for(var r=e>1?void 0:e?Qr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Zr(t,o,r),r},et=(n,t)=>(o,e)=>t(o,e,n);let ut=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};ut=es([s.OnLifecycle(s.LifecycleStages.Ready,ut),et(0,s.ICommandService),et(1,ae.IFeatureCalculationManagerService),et(2,s.IUniverInstanceService),et(3,K.Inject(ae.FormulaDataModel))],ut);const P={MoveRangeCommandId:Un,InsertRowCommandId:Nn,InsertColCommandId:Pn,RemoveColCommandId:Fn,RemoveRowCommandId:Bn,DeleteRangeMoveLeftCommandId:bn,DeleteRangeMoveUpCommandId:Tn,InsertRangeMoveDownCommandId:dr,InsertRangeMoveRightCommandId:En,MoveColsCommandId:Ln,MoveRowsCommandId:Vn};var A=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(A||{});const tt=Number.MAX_SAFE_INTEGER,he=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=tt),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=tt),t.rangeType===s.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=tt,t.startRow=0,t.endRow=tt),t},se=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Ye=(n,t,o)=>{const e={...o},r={...t},a=(f,S)=>{const R=Math.max(f.start,S.start),C=Math.min(f.end,S.end);return C<R?null:{start:R,end:C}},i=f=>f.end-f.start+1,c=(f,S)=>({start:f.start-S.start,end:f.start-S.start+f.end-f.start}),u=(f,S)=>({start:S.start+f.start,end:S.start+f.start+f.end-f.start}),l=t.start>n.start;if(l){const f=Math.min(n.end,t.start)-n.start+1;r.start-=f,r.end-=f}const d=i(n),m=d,g=a(n,e),v=g&&i(g)>=i(e);if(n.end<e.start)e.start-=d,e.end-=d;else if(g){const f=i(g);if(v){const S=c(e,n),R=u(S,r);e.start=R.start,e.end=R.end}else g.start>n.start?l?(e.end-=f+d,e.start-=d):e.end-=f:l?e.end-=f:e.start>n.start&&e.end>n.end?(e.start-=d,e.end-=d+f):e.end-=f}const h=a(r,e);return v||(r.start<=e.start?(e.start+=m,e.end+=m):h&&(l?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Jt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startRow,end:r.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return c===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:c.step||0,length:c.length||0}]},ts=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(l,d)=>{c.setValue(l,d,1)}),c.moveRows(r,i,a),s.queryObjectMatrix(c,l=>l===1)},Zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=he(o),a=he(e),i=he(t),c=Ye({start:r.startColumn,end:r.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return c===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:c.step||0,length:c.length||0}]},ns=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,c=new s.ObjectMatrix;return s.Range.foreach(t,(u,l)=>{c.setValue(u,l,1)}),c.moveColumns(r,i,a),s.queryObjectMatrix(c,u=>u===1)},yo=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:A.Delete}),s.Rectangle.contains(e,t)){r.push({type:A.Delete});const c=s.Rectangle.getRelativeRange(t,e),u=s.Rectangle.getPositionRange(c,o);return[{type:A.Set,range:u}]}return r},os=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const v=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(v,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(v,h)=>{r.setValue(v,h,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(v,h)=>{r.getValue(v,h)&&(r.setValue(v,h,void 0),a.setValue(v,h,1))});const c=o.startColumn-e.startColumn,u=o.startRow-e.startRow,l={startColumn:o.startColumn-c,endColumn:o.endColumn-c,startRow:o.startRow-u,endRow:o.endRow-u};return l&&s.Range.foreach(l,(v,h)=>{var R;const f=v+u,S=h+c;r.setValue(f,S,(R=a.getValue(v,h))!=null?R:0)}),s.queryObjectMatrix(r,v=>v===1)},Te=(n,t)=>{const o=he(n),e=he(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const c=-r(i);return{step:-(r(o)-r(i)),length:c}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Qt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},en=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(se(o),se(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},Ee=(n,t)=>{const o=he(n),e=he(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function rs(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:A.Delete}),s.Rectangle.contains(n,o)){e.push({type:A.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:A.Set,range:a}]}return e}const tn=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(se(o),se(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},nn=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},_o=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(se(o),se(t)),{step:a,length:i}=r;return e.push({type:A.VerticalMove,step:a,length:i}),e},ss=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endRow-o.startRow+1,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l+e,d,1)}),s.queryObjectMatrix(c,l=>l===1)},Uo=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[];const e=[],r=Ee(o,t),{step:a,length:i}=r;return e.push({type:A.HorizontalMove,step:a,length:i}),e},as=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const c=new s.ObjectMatrix;return a.forEach(l=>{s.Range.foreach(l,(d,m)=>{c.setValue(d,m,1)})}),i&&s.Range.foreach(i,(l,d)=>{c.setValue(l,d+e,1)}),s.queryObjectMatrix(c,l=>l===1)},bo=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(o,t);if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.HorizontalMove,step:i,length:c})}return e},is=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d,m-r,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d,m-r,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},To=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=Te(se(o),se(t));if(!r)e.push({type:A.Delete});else{const{step:i,length:c}=r;e.push({type:A.VerticalMove,step:i,length:c})}return e},cs=(n,t)=>{var l;const o=(l=n.params)==null?void 0:l.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),c=s.Rectangle.getIntersects(e,t);if(!a&&!c)return[t];const u=new s.ObjectMatrix;return c&&s.Range.foreach(c,(d,m)=>{u.setValue(d-r,m,1)}),a&&s.Range.foreach(a,(d,m)=>{u.setValue(d-r,m,0)}),i.forEach(d=>{s.Range.foreach(d,(m,g)=>{u.setValue(m,g,1)})}),s.queryObjectMatrix(u,d=>d===1)},Ne=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},us=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=bo(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=To(t,n);break}case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRangeMoveDownCommandId:{o=_o(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Uo(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:{o=Zt(t,n);break}case P.MoveRangeCommandId:{o=yo(t,n);break}case P.MoveRowsCommandId:{o=Jt(t,n);break}case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Ne(o,n)},ds=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return is(t,n);case P.DeleteRangeMoveUpCommandId:return cs(t,n);case P.InsertRangeMoveDownCommandId:return ss(t,n);case P.InsertRangeMoveRightCommandId:return as(t,n);case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:return ns(t,n);case P.MoveRangeCommandId:return os(t,n);case P.MoveRowsCommandId:return ts(t,n);case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Ne(o,n)};function ls(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:A.Unknown};switch(o){case Fe.id:r.type=A.Delete;break;case Ue.id:r=Ye({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=A.VerticalMove;break;case be.id:r=Ye({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Re.id:r=Te(e.range,n),r?r.type=A.HorizontalMove:r={step:0,length:0,type:A.Delete};break;case ye.id:r=Te(se(e.range),se(n)),r?r.type=A.VerticalMove:r={step:0,length:0,type:A.Delete};break;case Se.id:r=Ee(se(e.range),se(n)),r.type=A.VerticalMove;break;case Ce.id:r=Ee(e.range,n),r.type=A.HorizontalMove;break;case Ae.id:r=rs(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Ne(r,n):Ne([r],n):n}var ms=Object.defineProperty,gs=Object.getOwnPropertyDescriptor,hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?gs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&ms(t,o,r),r},nt=(n,t)=>(o,e)=>t(o,e,n);const vs=s.createInterceptorKey("MERGE_REDO"),fs=s.createInterceptorKey("MERGE_UNDO");class Ss extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=ls(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}exports.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();L(this,"interceptor",new s.InterceptorManager({MERGE_REDO:vs,MERGE_UNDO:fs}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",Cs());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=vn(this._univerInstanceService),a=fn(this._univerInstanceService),u=((()=>{switch(o.id){case P.MoveColsCommandId:{const v=o.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],r,a)}case P.MoveRowsCommandId:{const v=o.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],r,a)}case P.MoveRangeCommandId:{const v=o;return this._checkRange([v.params.fromRange,v.params.toRange],r,a)}case P.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.InsertColCommandId:{const h=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveColCommandId:{const h=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const h=o.params.range||Sn(this._selectionManagerService)[0],f={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const h=o.params.range||Sn(this._selectionManagerService)[0],f={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([f],r,a)}}})()||[]).reduce((v,h)=>{const f=h(o);return v.push(f),v},[]).reduce((v,h)=>{var f,S;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(f=h.preRedos)!=null?f:[]),v.preUndos.push(...(S=h.preUndos)!=null?S:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.preRedos,null)||[],d=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(u.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(u.undos,null)||[];return{redos:d,undos:g,preRedos:l,preUndos:m}}})});L(this,"_checkRange",(o,e,r)=>{const a=Cn(e,r),i=this._refRangeManagerMap.get(a);if(i){const c=new Set;return[...i.keys()].forEach(l=>{const d=i.get(l),m=this._serializer.deserialize(l);o.some(g=>s.Rectangle.intersects(g,m))&&d&&d.forEach(g=>{c.add(g)})}),[...c]}return[]});L(this,"registerRefRange",(o,e,r,a)=>{const i=r||vn(this._univerInstanceService),c=a||fn(this._univerInstanceService),u=Cn(i,c),l=this._serializer.serialize(o);let d=this._refRangeManagerMap.get(u);d||(d=new Map,this._refRangeManagerMap.set(u,d));const m=d.get(l);return m?m.add(e):d.set(l,new Set([e])),s.toDisposable(()=>{const g=d.get(l);g&&(g.delete(e),g.size||(d.delete(l),d.size||this._refRangeManagerMap.delete(u)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(d=>{if(d.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(d)}));const c=new Ss(o,e,r,a);this._watchRanges.add(c);const u=s.toDisposable(()=>{this._watchRanges.delete(c),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(u);return s.toDisposable(()=>{l.dispose(),u.dispose()})}};exports.RefRangeService=hs([s.OnLifecycle(s.LifecycleStages.Ready,exports.RefRangeService),nt(0,s.ICommandService),nt(1,K.Inject(exports.SheetInterceptorService)),nt(2,K.Inject(s.IUniverInstanceService)),nt(3,K.Inject(exports.SelectionManagerService))],exports.RefRangeService);function vn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function fn(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function Sn(n){return n.getSelectionRanges()||[]}function Cn(n,t){return`${n}_${t}`}function Cs(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,c)=>(a[String(c)]=i,a),{});return o.split(t).reduce((a,i,c)=>{const u=String(c);return i&&e[u]&&(a[e[u]]=i),a},{})},serialize:o=>n.reduce((e,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var Rs=Object.defineProperty,Is=Object.getOwnPropertyDescriptor,ps=(n,t,o,e)=>{for(var r=e>1?void 0:e?Is(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Rs(t,o,r),r},Pe=(n,t)=>(o,e)=>t(o,e,n);const Ms=[Ce.id,Se.id,Re.id,ye.id],ws=[Ue.id,be.id];function Eo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:c,endColumn:u}=o[r];if(t===s.Dimension.ROWS)for(let l=a;l<=i;l++){const d={startRow:l,endRow:l,startColumn:c,endColumn:u};e.push(d)}else if(t===s.Dimension.COLUMNS)for(let l=c;l<=u;l++){const d={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(d)}}o=e}return o}exports.MergeCellController=class extends s.Disposable{constructor(o,e,r,a,i,c){super();L(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=c,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case gt.id:case ht.id:{const r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),c=i.getSheetId(),u=i.getConfig().mergeData,l=o._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>u.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:c,ranges:l},g=re(o._injector,m),v=[{id:F.id,params:m}],h=[{id:B.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case P.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case P.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case We.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertRowCommand(a,i,c)}case je.id:{const a=o.params,i=a.unitId||e,c=a.subUnitId||r;return this._handleInsertColCommand(a,i,c)}case wt.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case Mt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case ft.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case pt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case It.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case Rt.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case Ct.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const c=i==null?void 0:i.getSheetBySheetId(a);if(!c)return;this.disposableCollection.dispose();const u=c.getMergeData(),l=d=>this.refRangeHandle(d,r,a);u.forEach(d=>{this.disposableCollection.add(this._refRangeService.registerRefRange(d,l,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Ft.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(c,i)}if(r.id===B.id){const a=r.params,i=a.subUnitId,c=a.unitId;if(!i||!c)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startRow:m,endRow:g}=d;if(c.forEach(f=>{if(m<=f.startRow&&g>=f.endRow){u.ranges.push(f);const S=Jt({id:P.MoveRowsCommandId,params:o},f),R=Ne(S,f);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=re(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveColsCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=[...i.getMergeData()],u={unitId:e,subUnitId:r,ranges:[]},l={unitId:e,subUnitId:r,ranges:[]},{fromRange:d}=o,{startColumn:m,endColumn:g}=d;if(c.forEach(f=>{if(m<=f.startColumn&&g>=f.endColumn){u.ranges.push(f);const S=Zt({id:P.MoveColsCommandId,params:o},f),R=Ne(S,f);R&&l.ranges.push(R)}}),u.ranges.length===0)return this._handleNull();const v=re(this._injector,u),h=ge(this._injector,l);return{redos:[{id:F.id,params:u},{id:B.id,params:l}],undos:[{id:F.id,params:h},{id:B.id,params:v}]}}_handleMoveRangeCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=i.getMergeData(),u=c.filter(h=>s.Rectangle.intersects(h,o.fromRange)),l=c.filter(h=>s.Rectangle.intersects(h,o.toRange)),d=u.map(h=>s.Rectangle.getRelativeRange(h,o.fromRange)).map(h=>s.Rectangle.getPositionRange(h,o.toRange)),m=Eo(d).filter(h=>!c.some(f=>s.Rectangle.equals(h,f))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:u}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:l}},{id:B.id,params:{unitId:e,subUnitId:r,ranges:u}}];return{redos:g,undos:v}}_handleInsertRowCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startRow:u,endRow:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((C,I)=>(u>I.startRow&&u<=I.endRow&&C.push(I),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((C,I)=>{if(u>I.startRow&&u<=I.endRow){const M=l-u+1;I.endRow+=M,this._checkIsMergeCell(I)&&C.push(I)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:f},{id:B.id,params:v}];return{redos:S,undos:R}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startColumn:u,endColumn:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((C,I)=>(u>I.startColumn&&u<=I.endColumn&&C.push(I),C),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((C,I)=>{if(u>I.startColumn&&u<=I.endColumn){const M=l-u+1;I.endColumn+=M,this._checkIsMergeCell(I)&&C.push(I)}return C},[]),g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:F.id,params:f},{id:B.id,params:v}];return{redos:S,undos:R}}_handleRemoveColCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const{range:c}=o,{startColumn:u,endColumn:l}=c,d=s.Tools.deepClone(i.getMergeData()).reduce((M,p)=>(s.Rectangle.intersects(c,p)&&M.push(p),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((M,p)=>{if(s.Rectangle.intersects(c,p)){if(u<=p.startColumn&&l>=p.endColumn)return M;u>=p.startColumn&&l<=p.endColumn?p.endColumn-=l-u+1:u<p.startColumn?(p.startColumn=u,p.endColumn-=l-u+1):l>p.endColumn&&(p.endColumn=u-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:f}],I=[{id:B.id,params:v}];return{preUndos:C,undos:I,preRedos:S,redos:R}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const c=me(i,r);if(!c)return this._handleNull();const{startRow:u,endRow:l}=a,d=s.Tools.deepClone(c.getMergeData()).reduce((M,p)=>(s.Rectangle.intersects(a,p)&&M.push(p),M),[]);if(d.length===0)return this._handleNull();const m=s.Tools.deepClone(c.getMergeData()).reduce((M,p)=>{if(s.Rectangle.intersects(a,p)){if(u<=p.startRow&&l>=p.endRow)return M;u>=p.startRow&&l<=p.endRow?p.endRow-=l-u+1:u<p.startRow?(p.startRow=u,p.endRow-=l-u+1):l>p.endRow&&(p.endRow=u-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g}],R=[{id:B.id,params:h}],C=[{id:F.id,params:f}],I=[{id:B.id,params:v}];return{preUndos:C,undos:I,preRedos:S,redos:R}}_handleInsertRangeMoveRightCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(S=>{const{startRow:R,endRow:C,startColumn:I,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:I,endRow:C,endColumn:u},S)&&(d.push(S),s.Rectangle.contains({startRow:R,startColumn:I,endRow:C,endColumn:u},S))){const U=M-I+1;m.push({startRow:S.startRow,startColumn:S.startColumn+U,endRow:S.endRow,endColumn:S.endColumn+U})}});const g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:f}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,startColumn:M,endColumn:p,endRow:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:M,endRow:u,endColumn:p},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:M,endRow:u,endColumn:p},C))){const b=w-I+1;m.push({startRow:C.startRow+b,startColumn:C.startColumn,endRow:C.endRow+b,endColumn:C.endColumn})}});const g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:f}];return{redos:S,undos:R}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxRows()-1,l=i.getMergeData(),d=[],m=[];l.forEach(C=>{const{startRow:I,startColumn:M,endColumn:p,endRow:w}=c;if(s.Rectangle.intersects({startRow:I,startColumn:M,endRow:u,endColumn:p},C)&&(d.push(C),s.Rectangle.contains({startRow:I,startColumn:M,endRow:u,endColumn:p},C))){const b=w-I+1,N=s.Rectangle.moveVertical(C,-b);m.push(N)}});const g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h),S=[{id:F.id,params:g},{id:B.id,params:h}],R=[{id:B.id,params:v},{id:F.id,params:f}];return{redos:S,undos:R}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,r);if(!i)return this._handleNull();const c=o.range,u=i.getMaxColumns()-1,l=i.getMergeData(),d=[],m=[];l.forEach(S=>{const{startRow:R,endRow:C,startColumn:I,endColumn:M}=c;if(s.Rectangle.intersects({startRow:R,startColumn:I,endRow:C,endColumn:u},S)&&(d.push(S),s.Rectangle.contains({startRow:R,startColumn:I,endRow:C,endColumn:u},S))){const U=M-I+1;m.push({startRow:S.startRow,startColumn:S.startColumn-U,endRow:S.endRow,endColumn:S.endColumn-U})}});const g={unitId:e,subUnitId:r,ranges:d},v=re(this._injector,g),h={unitId:e,subUnitId:r,ranges:m},f=ge(this._injector,h);return{redos:[{id:F.id,params:g},{id:B.id,params:h}],undos:[{id:B.id,params:v},{id:F.id,params:f}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(ws.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,c=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,u=c?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=c?a.startRow:a.startColumn,d=c?i.startRow:i.startColumn,m=r.getConfig().mergeData,g=[];m.forEach(S=>{let{startRow:R,endRow:C,startColumn:I,endColumn:M,rangeType:p}=S;s.Rectangle.intersects(S,a)||(c?l<R&&d>C?(R-=u,C-=u):l>C&&d<=R&&(R+=u,C+=u):l<I&&d>M?(I-=u,M-=u):l>M&&d<=I&&(I+=u,M+=u)),S.startRow===S.endRow&&S.startColumn===S.endColumn||g.push({startRow:R,endRow:C,startColumn:I,endColumn:M,rangeType:p})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=o.params,f=S=>this.refRangeHandle(S,v,h);g.forEach(S=>{this.disposableCollection.add(this._refRangeService.registerRefRange(S,f,v,h))})}if(Ms.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range:c}=i,u=o.id.includes("row"),l=o.id.includes("insert"),d=u?c.startRow:c.startColumn,m=u?c.endRow:c.endColumn,g=m-d+1,v=[];a.forEach(R=>{let{startRow:C,endRow:I,startColumn:M,endColumn:p,rangeType:w}=R;l?u?d<=C&&(C+=g,I+=g):d<=M&&(M+=g,p+=g):u?m<C&&(C-=g,I-=g):m<M&&(M-=g,p-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:C,endRow:I,startColumn:M,endColumn:p,rangeType:w})}),r.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:f}=o.params,S=R=>this.refRangeHandle(R,h,f);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,S,h,f))})}}))}};exports.MergeCellController=ps([s.OnLifecycle(s.LifecycleStages.Steady,exports.MergeCellController),Pe(0,K.Inject(s.ICommandService)),Pe(1,K.Inject(exports.RefRangeService)),Pe(2,K.Inject(s.IUniverInstanceService)),Pe(3,K.Inject(K.Injector)),Pe(4,K.Inject(exports.SheetInterceptorService)),Pe(5,K.Inject(exports.SelectionManagerService))],exports.MergeCellController);function le(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET)}function me(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const ys={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"}}},No={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}};var _s=Object.defineProperty,Us=Object.getOwnPropertyDescriptor,bs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Us(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&_s(t,o,r),r},Ut=(n,t)=>(o,e)=>t(o,e,n);exports.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const c=a.getStyles(),u=i.getCellRaw(e,r);if(u!=null&&u.s){const l=c.get(u.s);if(l!=null&&l.n)return l.n}return null}deleteValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(c=>{s.Range.foreach(c,(u,l)=>{const d=a.getCellRaw(u,l);if(!d)return;const m=d==null?void 0:d.s,v={...m&&i.get(m)||{}};delete v.n;const h=i.setValue(v);d.s=h})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),c=a.getCellMatrix();e.forEach(u=>{u.ranges.forEach(l=>{s.Range.foreach(l,(d,m)=>{const g=a.getCellRaw(d,m);if(g){const h={...g.s&&i.get(g.s)||{},n:{pattern:u.pattern}},f=i.setValue(h);g.s=f}else{const v={n:{pattern:u.pattern}},h=i.setValue(v);h&&c.setValue(d,m,{s:h})}})})})}};exports.NumfmtService=bs([Ut(0,s.IResourceManagerService),Ut(1,s.IUniverInstanceService),Ut(2,s.ILogService)],exports.NumfmtService);const Rn="univer.sheet.editable";class Ge extends s.PermissionPoint{constructor(o,e){super();L(this,"id",Rn);L(this,"value",!0);L(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${Rn}_${o}_${e}`}}var Ts=Object.defineProperty,Es=Object.getOwnPropertyDescriptor,Ns=(n,t,o,e)=>{for(var r=e>1?void 0:e?Es(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ts(t,o,r),r},In=(n,t)=>(o,e)=>t(o,e,n);exports.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();L(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(cn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(cn.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),c)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),c=new Ge(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),c.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),c=a.getActiveSheet(),u=r||c.getSheetId(),l=new Ge(i,u);this._permissionService.updatePermissionPoint(i,l.id,o)}};exports.SheetPermissionService=Ns([s.OnLifecycle(s.LifecycleStages.Ready,exports.SheetPermissionService),In(0,K.Inject(s.IPermissionService)),In(1,K.Inject(s.IUniverInstanceService))],exports.SheetPermissionService);function Ds(n){var a,i,c;const t=n.get(s.IUniverInstanceService),o=n.get(exports.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(c=o.getEditable$(e,r))==null?void 0:c.pipe(ke.map(u=>!u.value))}var Os=Object.defineProperty,Ps=Object.getOwnPropertyDescriptor,ks=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ps(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Os(t,o,r),r},ot=(n,t)=>(o,e)=>t(o,e,n);const As="SHEET_DEFINED_NAME_PLUGIN";let dt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:As,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};dt=ks([s.OnLifecycle(s.LifecycleStages.Ready,dt),ot(0,s.ICommandService),ot(1,s.IUniverInstanceService),ot(2,ae.IDefinedNamesService),ot(3,s.IResourceManagerService)],dt);var xs=Object.defineProperty,Vs=Object.getOwnPropertyDescriptor,Ls=(n,t,o,e)=>{for(var r=e>1?void 0:e?Vs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&xs(t,o,r),r},bt=(n,t)=>(o,e)=>t(o,e,n);const Bs="sheets";var rt;exports.UniverSheetsPlugin=(rt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:No})}_initializeDependencies(t){var e;const o=[[De],[exports.SelectionManagerService],[exports.RefRangeService],[exports.SheetPermissionService],[Oe,{useClass:exports.NumfmtService}],[exports.SheetInterceptorService],[it],[exports.MergeCellController],[dt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ct],[ut]),o.forEach(r=>{t.add(r)})}},L(rt,"pluginName",Bs),L(rt,"type",s.UniverInstanceType.UNIVER_SHEET),rt);exports.UniverSheetsPlugin=Ls([bt(1,s.ICommandService),bt(2,K.Inject(s.LocaleService)),bt(3,K.Inject(K.Injector))],exports.UniverSheetsPlugin);const Fs=[fe.id,de.id,zt.id,ve.id,Je.id,Ue.id,be.id,xe.id,Ve.id,Be.id,Le.id,Ce.id,Se.id,Re.id,ye.id],Ws=[$.id,Ae.id,F.id,B.id],js=1.5,Hs="rgba(255, 255, 255, 0.01)";function $s(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Gs(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=Do(o)),r}function Do(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:c,endColumn:u}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:c,endColumn:u}}function zs(n,t,o){const e=xo.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const qs=(n,t,o)=>{const r=n.get(exports.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:c,subUnitId:u}=t;if(r){const d=r[(r==null?void 0:r.length)-1].primary;if(d){const{actualColumn:m,actualRow:g}=d;let{startRow:v,startColumn:h,endRow:f,endColumn:S}=i[i.length-1];if(a===s.Dimension.COLUMNS){const M=o.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);M&&(S=M.endColumn,v=M.startRow,f=M.endRow)}else if(a===s.Dimension.ROWS){const M=o.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);M&&(f=M.endRow,h=M.startColumn,S=M.endColumn)}const R={startRow:v,startColumn:h,endRow:f,endColumn:S,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},C=r.map((M,p,w)=>({range:M.range,style:null,primary:p===w.length-1?R:null})),I={unitId:c,subUnitId:u,pluginName:Y,selections:C};return{id:H.id,params:I}}return null}return null},Ys=(n,t)=>{const e=n.get(exports.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const u={unitId:r,subUnitId:a,pluginName:Y,selections:[...e]};return{id:H.id,params:u}}return null};exports.AddMergeRedoSelectionsOperationFactory=qs;exports.AddMergeUndoMutationFactory=ge;exports.AddMergeUndoSelectionsOperationFactory=Ys;exports.AddWorksheetMergeMutation=B;exports.BorderStyleManagerService=De;exports.COMMAND_LISTENER_SKELETON_CHANGE=Fs;exports.COMMAND_LISTENER_VALUE_CHANGE=Ws;exports.ClearSelectionAllCommand=gt;exports.ClearSelectionContentCommand=Tt;exports.ClearSelectionFormatCommand=ht;exports.CopySheetCommand=_n;exports.DeleteRangeMoveLeftCommand=Ct;exports.DeleteRangeMoveUpCommand=Rt;exports.DeltaColumnWidthCommand=jt;exports.DeltaRowHeightCommand=go;exports.EffectRefRangId=P;exports.EmptyMutation=Co;exports.INTERCEPTOR_POINT=st;exports.INumfmtService=Oe;exports.InsertColAfterCommand=An;exports.InsertColBeforeCommand=kn;exports.InsertColCommand=je;exports.InsertColMutation=Ce;exports.InsertColMutationUndoFactory=Pt;exports.InsertDefinedNameCommand=Ro;exports.InsertRangeMoveDownCommand=It;exports.InsertRangeMoveRightCommand=pt;exports.InsertRowAfterCommand=On;exports.InsertRowBeforeCommand=Dn;exports.InsertRowCommand=We;exports.InsertRowMutation=Se;exports.InsertRowMutationUndoFactory=Ot;exports.InsertSheetCommand=xn;exports.InsertSheetMutation=_e;exports.InsertSheetUndoMutationFactory=Et;exports.MAX_CELL_PER_SHEET_KEY=wo;exports.MoveColsCommand=At;exports.MoveColsMutation=be;exports.MoveRangeCommand=ft;exports.MoveRangeMutation=Ae;exports.MoveRowsCommand=kt;exports.MoveRowsMutation=Ue;exports.NORMAL_SELECTION_PLUGIN_NAME=Y;exports.OperatorType=A;exports.RangeMergeUtil=Ar;exports.RemoveColCommand=wt;exports.RemoveColMutation=Re;exports.RemoveDefinedNameCommand=Io;exports.RemoveMergeUndoMutationFactory=re;exports.RemoveNumfmtMutation=Xt;exports.RemoveRowCommand=Mt;exports.RemoveRowMutation=ye;exports.RemoveSheetCommand=xt;exports.RemoveSheetMutation=Fe;exports.RemoveSheetUndoMutationFactory=yn;exports.RemoveWorksheetMergeCommand=Wn;exports.RemoveWorksheetMergeMutation=F;exports.ResetBackgroundColorCommand=no;exports.ResetTextColorCommand=eo;exports.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Hs;exports.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=js;exports.ScrollToCellOperation=Mo;exports.SelectionMoveType=pn;exports.SetBackgroundColorCommand=to;exports.SetBoldCommand=Mr;exports.SetBorderBasicCommand=jn;exports.SetBorderColorCommand=Gn;exports.SetBorderCommand=He;exports.SetBorderPositionCommand=Hn;exports.SetBorderStyleCommand=$n;exports.SetColHiddenCommand=qn;exports.SetColHiddenMutation=xe;exports.SetColVisibleMutation=Ve;exports.SetColWidthCommand=Ht;exports.SetDefinedNameCommand=po;exports.SetFontFamilyCommand=Ur;exports.SetFontSizeCommand=br;exports.SetFrozenCommand=Kn;exports.SetFrozenMutation=Me;exports.SetFrozenMutationFactory=Lt;exports.SetHorizontalTextAlignCommand=ro;exports.SetItalicCommand=wr;exports.SetNumfmtMutation=yt;exports.SetRangeValuesCommand=Xe;exports.SetRangeValuesMutation=$;exports.SetRangeValuesUndoMutationFactory=Ie;exports.SetRowHeightCommand=ho;exports.SetRowHiddenCommand=Jn;exports.SetRowHiddenMutation=Be;exports.SetRowVisibleMutation=Le;exports.SetSelectedColsVisibleCommand=zn;exports.SetSelectedRowsVisibleCommand=Xn;exports.SetSelectionsOperation=H;exports.SetSpecificColsVisibleCommand=Vt;exports.SetSpecificRowsVisibleCommand=Bt;exports.SetStrikeThroughCommand=_r;exports.SetStyleCommand=Z;exports.SetTabColorCommand=io;exports.SetTabColorMutation=ze;exports.SetTextColorCommand=Qn;exports.SetTextRotationCommand=ao;exports.SetTextWrapCommand=so;exports.SetUnderlineCommand=yr;exports.SetVerticalTextAlignCommand=oo;exports.SetWorksheetActivateCommand=Ft;exports.SetWorksheetActiveOperation=Je;exports.SetWorksheetColWidthMutation=ve;exports.SetWorksheetColWidthMutationFactory=Wt;exports.SetWorksheetHideCommand=uo;exports.SetWorksheetHideMutation=we;exports.SetWorksheetNameCommand=$t;exports.SetWorksheetNameMutation=lt;exports.SetWorksheetOrderCommand=lo;exports.SetWorksheetOrderMutation=qe;exports.SetWorksheetRowAutoHeightMutation=zt;exports.SetWorksheetRowAutoHeightMutationFactory=Pr;exports.SetWorksheetRowHeightMutation=fe;exports.SetWorksheetRowIsAutoHeightCommand=qt;exports.SetWorksheetRowIsAutoHeightMutation=de;exports.SetWorksheetShowCommand=vo;exports.SheetEditablePermission=Ge;exports.alignToMergedCellsBorders=Ke;exports.convertPrimaryWithCoordToPrimary=Do;exports.convertSelectionDataToRange=Gs;exports.createTopMatrixFromMatrix=So;exports.createTopMatrixFromRanges=fo;exports.enUS=ys;exports.factoryRemoveNumfmtUndoMutation=Br;exports.factorySetNumfmtUndoMutation=Lr;exports.findAllRectangle=Yt;exports.followSelectionOperation=pe;exports.getAddMergeMutationRangeByType=Eo;exports.getCellAtRowCol=nr;exports.getCurrentSheetDisabled$=Ds;exports.getInsertRangeMutations=Nt;exports.getMoveRangeUndoRedoMutations=St;exports.getNormalSelectionStyle=$s;exports.getPrimaryForRange=ne;exports.getRemoveRangeMutations=Dt;exports.getSheetCommandTarget=V;exports.getSheetCommandTargetWorkbook=wn;exports.getSheetMutationTarget=vt;exports.handleBaseInsertRange=Ee;exports.handleBaseMoveRowsCols=Ye;exports.handleBaseRemoveRange=Te;exports.handleCommonDefaultRangeChangeWithEffectRefCommands=ds;exports.handleDefaultRangeChangeWithEffectRefCommands=us;exports.handleDeleteRangeMoveLeft=bo;exports.handleDeleteRangeMoveUp=To;exports.handleDeleteRangeMutation=ar;exports.handleIRemoveCol=Qt;exports.handleIRemoveRow=en;exports.handleInsertCol=nn;exports.handleInsertRangeMoveDown=_o;exports.handleInsertRangeMoveRight=Uo;exports.handleInsertRangeMutation=sr;exports.handleInsertRow=tn;exports.handleMoveCols=Zt;exports.handleMoveRange=yo;exports.handleMoveRows=Jt;exports.isSingleCellSelection=rr;exports.rangeMerge=Kt;exports.rotateRange=se;exports.runRefRangeMutations=Ne;exports.setEndForRange=or;exports.transformCellDataToSelectionData=zs;exports.transformCellsToRange=mt;exports.zhCN=No;
|