@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.
Files changed (33) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +3443 -3379
  3. package/lib/types/basics/const/command-listener-const.d.ts +3 -0
  4. package/lib/types/basics/numfmt-kit.d.ts +41 -0
  5. package/lib/types/basics/selection.d.ts +1 -1
  6. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +1 -1
  7. package/lib/types/commands/commands/insert-row-col.command.d.ts +2 -2
  8. package/lib/types/commands/commands/utils/selection-utils.d.ts +10 -1
  9. package/lib/types/commands/commands/utils/target-util.d.ts +33 -0
  10. package/lib/types/commands/mutations/__tests__/create-command-test-bed.d.ts +1 -1
  11. package/lib/types/commands/mutations/numfmt-mutation.d.ts +0 -3
  12. package/lib/types/controllers/__tests__/util.d.ts +1 -1
  13. package/lib/types/controllers/calculate-result-apply.controller.d.ts +11 -2
  14. package/lib/types/controllers/feature-calculation.controller.d.ts +2 -2
  15. package/lib/types/index.d.ts +5 -2
  16. package/lib/types/locale/zh-CN.d.ts +10 -2
  17. package/lib/types/services/__tests__/util.d.ts +1 -1
  18. package/lib/types/services/numfmt/numfmt.service.d.ts +5 -25
  19. package/lib/types/services/numfmt/type.d.ts +1 -17
  20. package/lib/types/services/permission/sheet-permission.service.d.ts +7 -8
  21. package/lib/types/services/permission/tool.d.ts +1 -2
  22. package/lib/types/services/ref-range/__tests__/__testing__.d.ts +1 -1
  23. package/lib/types/services/sheet-interceptor/__tests__/create-core-test-bed.d.ts +1 -1
  24. package/lib/types/services/sheet-interceptor/interceptor-const.d.ts +3 -3
  25. package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +3 -3
  26. package/lib/types/services/sheet-interceptor/utils/interceptor.d.ts +7 -0
  27. package/lib/types/sheets-plugin.d.ts +3 -2
  28. package/lib/umd/index.js +2 -2
  29. package/package.json +14 -12
  30. package/lib/types/commands/commands/copy-to-worksheet.command.d.ts +0 -9
  31. package/lib/types/commands/mutations/set-worksheet-config.mutation.d.ts +0 -13
  32. package/lib/types/commands/utils/get-target.d.ts +0 -18
  33. /package/lib/types/{services/__tests__/sheet-permission.spec.d.ts → basics/__tests__/numfmt-kit.spec.d.ts} +0 -0
package/lib/umd/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(S,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","rxjs/operators","@univerjs/engine-render"],r):(S=typeof globalThis<"u"?globalThis:S||self,r(S.UniverSheets={},S.UniverCore,S["@wendellhu/redi"],S.rxjs,S.UniverEngineFormula,S.rxjs.operators,S.UniverEngineRender))})(this,function(S,r,j,Pe,te,Do,Eo){"use strict";var Hr=Object.defineProperty;var $r=(S,r,j)=>r in S?Hr(S,r,{enumerable:!0,configurable:!0,writable:!0,value:j}):S[r]=j;var L=(S,r,j)=>($r(S,typeof r!="symbol"?r+"":r,j),j);var en;var No=Object.defineProperty,Oo=Object.getOwnPropertyDescriptor,Ao=(o,t,n,e)=>{for(var s=e>1?void 0:e?Oo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&No(t,n,s),s},Po=(o,t)=>(n,e)=>t(n,e,o);const Y="normalSelectionPluginName";var nn=(o=>(o[o.MOVE_START=0]="MOVE_START",o[o.MOVING=1]="MOVING",o[o.MOVE_END=2]="MOVE_END",o))(nn||{});S.SelectionManagerService=class{constructor(t){L(this,"_selectionInfo",new Map);L(this,"_currentSelection",null);L(this,"_selectionMoveStart$",new Pe.Subject);L(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());L(this,"_selectionMoving$",new Pe.Subject);L(this,"selectionMoving$",this._selectionMoving$.asObservable());L(this,"_selectionMoveEnd$",new Pe.BehaviorSubject(null));L(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());L(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var n,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(n=this._currentSelection)==null?void 0:n.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,n;this._currentSelection!=null&&(this._currentSelection={pluginName:Y,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(n=this._currentSelection)==null?void 0:n.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=Y,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(n=>n.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,n=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),n===0?this._refreshStart(this._currentSelection):n===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:n},e)=>t.some(({range:s},a)=>e===a?!1:n.startRow<=s.endRow&&n.endRow>=s.startRow&&n.startColumn<=s.endColumn&&n.endColumn>=s.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:n,unitId:e,sheetId:s}=t;return(i=(a=this._selectionInfo.get(n))==null?void 0:a.get(e))==null?void 0:i.get(s)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[0]}_getLastByParam(t){const n=this._getSelectionDatas(t);return n==null?void 0:n[n.length-1]}_addByParam(t,n=!0){const{pluginName:e,unitId:s,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(s)||u.set(s,new Map);const d=u.get(s);if(!d.has(a))d.set(a,[...i]);else{let l=d.get(a);l==null&&(l=[],d.set(a,l)),l.push(...i)}n&&this._refresh({pluginName:e,unitId:s,sheetId:a})}_replaceByParam(t){const{pluginName:n,unitId:e,sheetId:s,selectionDatas:a}=t;this._selectionInfo.has(n)||this._selectionInfo.set(n,new Map);const i=this._selectionInfo.get(n);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(s))u.set(s,a);else{let d=u.get(s);d==null&&(d=[],u.set(s,d)),d.splice(0,d.length,...a)}}_clearByParam(t){const n=this._getSelectionDatas(t);n==null||n.splice(0),this._refresh(t)}_removeByParam(t,n){const e=this._getSelectionDatas(n);e==null||e.splice(t,1),this._refresh(n)}},S.SelectionManagerService=Ao([Po(0,j.Inject(r.ThemeService))],S.SelectionManagerService);const ko=r.createInterceptorKey("CELL_CONTENT"),Bo=r.createInterceptorKey("PERMISSION"),ke={CELL_CONTENT:ko,PERMISSION:Bo};var Vo=Object.defineProperty,Lo=Object.getOwnPropertyDescriptor,jo=(o,t,n,e)=>{for(var s=e>1?void 0:e?Lo(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Vo(t,n,s),s},Wo=(o,t)=>(n,e)=>t(n,e,o);S.SheetInterceptorService=class extends r.Disposable{constructor(n){super();L(this,"_interceptorsByName",new Map);L(this,"_commandInterceptors",[]);L(this,"_workbookDisposables",new Map);L(this,"_worksheetDisposables",new Map);this._currentUniverService=n,this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetAdded$.subscribe(e=>{this._interceptWorkbook(e)}))),this.disposeWithMe(r.toDisposable(this._currentUniverService.sheetDisposed$.subscribe(e=>this._disposeWorkbookInterceptor(e)))),this.intercept(ke.CELL_CONTENT,{priority:-1,handler(e,s){const a=s.worksheet.getCellRaw(s.row,s.col);return e?{...a,...e}:a}}),this.intercept(ke.PERMISSION,{priority:-1,handler:()=>!0})}dispose(){super.dispose(),this._workbookDisposables.forEach(n=>n.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(n){if(this._commandInterceptors.includes(n))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(n),this._commandInterceptors.sort((e,s)=>{var a,i;return((a=s.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,n)))}onCommandExecute(n){const e=this._commandInterceptors.map(s=>s.getMutations(n));return{preUndos:e.map(s=>{var a;return(a=s.preUndos)!=null?a:[]}).flat(),undos:e.map(s=>s.undos).flat(),preRedos:e.map(s=>{var a;return(a=s.preRedos)!=null?a:[]}).flat(),redos:e.map(s=>s.redos).flat()}}intercept(n,e){const s=n;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const a=this._interceptorsByName.get(s);return a.push(e),this._interceptorsByName.set(s,a.sort((i,u)=>{var d,l;return((d=u.priority)!=null?d:0)-((l=i.priority)!=null?l:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),e)))}fetchThroughInterceptors(n){const e=n,s=this._interceptorsByName.get(e);return r.composeInterceptors(s||[])}_interceptWorkbook(n){const e=new r.DisposableCollection,s=n.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(l=>{const c=new r.DisposableCollection,m=l.registerCellContentInterceptor({getCell(g,v){return a.fetchThroughInterceptors(ke.CELL_CONTENT)(u.getCellRaw(g,v),{unitId:s,subUnitId:d,row:g,col:v,worksheet:u,workbook:n})}});c.add(m),a._worksheetDisposables.set(on(s,u),c)})};n.getSheets().forEach(u=>i(u)),e.add(r.toDisposable(n.sheetCreated$.subscribe(u=>i(u)))),e.add(r.toDisposable(n.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),e.add(r.toDisposable(()=>n.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u))))}_disposeWorkbookInterceptor(n){const e=n.getUnitId(),s=this._workbookDisposables.get(e);s&&(s.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(n,e){const s=on(n,e),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},S.SheetInterceptorService=jo([r.OnLifecycle(r.LifecycleStages.Starting,S.SheetInterceptorService),Wo(0,r.IUniverInstanceService)],S.SheetInterceptorService);function on(o,t){return`${o}|${t.getSheetId()}`}const he=(o,t)=>{const{unitId:n,subUnitId:e,cellValue:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),l=i.getStyles(),c=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,v,h)=>{const C=r.Tools.deepClone(d==null?void 0:d.getValue(g,v))||{},f=l.getStyleByCell(C),R=$o(f,h&&h.s?h.s:null);C.s=R,c.setValue(g,v,Fo(C))}),{...t,options:{},cellValue:c.getMatrix()}};function Fo(o){return o==null?null:(o.f===void 0&&(o.f=null),o.si===void 0&&(o.si=null),o.p===void 0&&(o.p=null),o.v===void 0&&(o.v=null),o.t===void 0&&(o.t=null),o.s===void 0&&(o.s=null),o)}const x={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(o,t)=>{const{cellValue:n,subUnitId:e,unitId:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),l=i.getStyles();return new r.ObjectMatrix(n).forValue((m,g,v)=>{if(!v)d==null||d.setValue(m,g,{});else{const h=d.getValue(m,g)||{},C=v.t===r.CellValueType.FORCE_STRING?v.t:v.v!==void 0?sn(v.v,v.t):sn(h.v,h.t);if(v.f!==void 0&&(h.f=v.f),v.si!==void 0&&(h.si=v.si),v.p!==void 0&&(h.p=v.p),v.v!==void 0&&(h.v=C===r.CellValueType.NUMBER?Number(v.v):C===r.CellValueType.BOOLEAN?Ho(v.v)?1:0:v.v),h.v!==void 0&&(h.t=C),v.s!==void 0){const f=l.getStyleByCell(h);f==null&&delete h.s,typeof v.s=="string"&&(v.s=l.get(v.s));const R=Ze(f,v.s?v.s:null);R&&r.Tools.removeNull(R),r.Tools.isEmptyObject(R)?delete h.s:h.s=l.setValue(R),!v.p&&h.p&&xo(h.p,v.s?v.s:null)}d.setValue(m,g,r.Tools.removeNull(h))}}),!0}};function sn(o,t){return o===null?null:typeof o=="string"?an(o)?(+o==0||+o==1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:Yo(o)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof o=="number"?(o===0||o===1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:typeof o=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function Ho(o){if(typeof o=="string"){if(o.toUpperCase()==="TRUE")return!0;if(o.toUpperCase()==="FALSE")return!1;if(an(o)){if(Number(o)===0)return!1;if(Number(o)===1)return!0}}if(typeof o=="number"){if(o===0)return!1;if(o===1)return!0}return typeof o=="boolean"?o:null}function $o(o,t){return Go(o,t)}function Go(o,t){if(!t||!Object.keys(t).length)return o;const n=o||{};for(const e in t)e==="bd"?n[e]=zo(n[e]||{},t[e]):e in n||(n[e]=null);return n}function zo(o,t){if(!t||!Object.keys(t).length)return o;for(const n in t)n in o||(o[n]=null);return o}function Ze(o,t,n=!1){if(t===null)return t;if(t===void 0)return o;const e=r.Tools.deepClone(o)||{};if(e){for(const s in t)n&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in e&&s==="bd"?e[s]=Object.assign(e[s],t[s]):e[s]=t[s]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function rn(o,t){return o.some(n=>n.startIndex===t)?rn(o,t+1):t}function xo(o,t){var i;if(o.body==null)return;Array.isArray(o.body.textRuns)||(o.body.textRuns=[]);let n=0;const e=[],s=((i=o.body)==null?void 0:i.paragraphs)||[];for(const u of o.body.textRuns){const{st:d,ed:l,ts:c={}}=u;if(n<d){const g={st:n,ed:d},v=Ze({},t,!0);v&&r.Tools.removeNull(v),r.Tools.isEmptyObject(v)||(g.ts=v),e.push(g)}const m=Ze(c,t,!0);m&&r.Tools.removeNull(m),r.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),n=rn(s,l)}const a=o.body.dataStream.endsWith(`\r
2
- `)?o.body.dataStream.length-2:o.body.dataStream.length;if(n<a){const u={st:n,ed:a},d=Ze({},t,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}o.body.textRuns=r.normalizeTextRuns(e)}function qo(o){return/^-?\d+(\.\d+)?$/.test(o)}function an(o){return qo(o)?Number(o)<=Number.MAX_SAFE_INTEGER:!1}function Yo(o){return o.toUpperCase()==="TRUE"||o.toUpperCase()==="FALSE"}const Qe={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Ko(c)},h=he(o,v);m.push({id:x.id,params:v}),g.push({id:x.id,params:h});const C=a.onCommandExecute({id:Qe.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,n)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Ko(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const wt={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={subUnitId:l,unitId:u,cellValue:Jo(c)},g=he(o,m),v=a.onCommandExecute({id:wt.id}),h=[{id:x.id,params:m},...v.redos],C=[...v.undos,{id:x.id,params:g}];return r.sequenceExecute(h,n).result?(s.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:h}),!0):!1}};function Jo(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null})}),t.getData()}const et={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async o=>{const t=o.get(r.IUniverInstanceService),n=o.get(r.ICommandService),e=o.get(S.SelectionManagerService),s=o.get(r.IUndoRedoService),a=o.get(S.SheetInterceptorService),i=t.getCurrentUniverSheetInstance(),u=i.getUnitId(),l=i.getActiveSheet().getSheetId(),c=e.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=[],g=[],v={subUnitId:l,unitId:u,cellValue:Xo(c)},h=he(o,v);m.push({id:x.id,params:v}),g.push({id:x.id,params:h});const C=a.onCommandExecute({id:et.id});return m.push(...C.redos),g.unshift(...C.undos),r.sequenceExecute(m,n)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Xo(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{s:null})}),t.getData()}const pt=(o,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),ye={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService),{sheet:e,index:s,unitId:a}=t,i=n.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,s,e):!1}},un=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),{subUnitId:s,unitId:a}=t,i=e.getSheetBySheetId(s).getConfig();return{index:e.getConfig().sheetOrder.findIndex(l=>l===s),sheet:i,unitId:a}},Be={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=n.getUniverSheetInstance(s);return a?a.removeSheet(e):!1}},dn={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(o,t)=>{var C,f;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.LocaleService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(C=t.unitId)!=null?C:i,u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c=r.Tools.deepClone(l.getConfig());c.name+=a.t("sheets.sheetCopy"),c.id=r.Tools.generateRandomId();const g={index:d.getSheetIndex(l)+1,sheet:c,unitId:i},v=pt(o,g);return n.syncExecuteCommand(ye.id,g)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Be.id,params:v}],redoMutations:[{id:ye.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(o,t)=>{const{from:n,to:e}=t;if(!n||!e)return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),l=u.getCellMatrix();return new r.ObjectMatrix(n.value).forValue((c,m,g)=>{d.setValue(c,m,g)}),new r.ObjectMatrix(e.value).forValue((c,m,g)=>{l.setValue(c,m,g)}),!0}},G={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(S.SelectionManagerService);if(!t)return!1;const{selections:e,type:s}=t;return n.replace(e,s),!0}};function xe(o,t,n=!0){const e=t.getMatrixWithMergedCells(...r.selectionToArray(o)),s=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const l={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};r.Rectangle.contains(o,l)||s.push(l)}}),s.length===0)return o;const a=r.Rectangle.union(o,...s);return n?xe(a,t,n):a}function Zo(o,t,n){let e=null;return n.getMatrixWithMergedCells(o,t,o,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:r.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:o,startRow:o,startColumn:t,endRow:o,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function Qo(o,t,n){const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;return Number.isNaN(e)&&(o.startRow=0),Number.isNaN(a)&&(o.endRow=t),Number.isNaN(s)&&(o.startColumn=0),Number.isNaN(i)&&(o.endColumn=n),o}function Z(o,t){const n=Number.isNaN(o.startRow)?0:o.startRow,e=Number.isNaN(o.startColumn)?0:o.startColumn,s=t.getMergedCell(n,e);return s?{...s,actualRow:n,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:n,startColumn:e,endRow:o.startRow,endColumn:o.startColumn,actualRow:n,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const ve=(o,t,n)=>({id:G.id,params:{unitId:t.getUnitId(),subUnitId:n.getSheetId(),pluginName:Y,selections:[{range:o,primary:Z(o,n)}]}}),cn="sheet.command.move-range",tt={type:r.CommandType.COMMAND,id:cn,handler:(o,t)=>{var f,R;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ErrorService),i=s.getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId(),c=yt(o,{unitId:d,subUnitId:l,range:t.fromRange},{unitId:d,subUnitId:l,range:t.toRange});if(c===null)return a.emit("Across a merged cell."),!1;const g=o.get(S.SheetInterceptorService).onCommandExecute({id:tt.id,params:{...t}}),v=[...(f=g.preRedos)!=null?f:[],...c.redos,...g.redos,{id:G.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.toRange,primary:Z(t.toRange,u)}]}}],h=[...(R=g.preUndos)!=null?R:[],...c.undos,...g.undos,{id:G.id,params:{unitId:d,subUnitId:l,pluginName:Y,selections:[{range:t.fromRange,primary:Z(t.fromRange,u)}]}}];return r.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:d,undoMutations:h,redoMutations:v}),!0):!1}};function yt(o,t,n,e=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:l,subUnitId:c}=n,g=o.get(r.IUniverInstanceService).getUniverSheetInstance(d),v=g==null?void 0:g.getSheetBySheetId(c),h=g==null?void 0:g.getSheetBySheetId(u),C=v==null?void 0:v.getCellMatrix(),f=h==null?void 0:h.getCellMatrix();if(v&&h&&C&&f){const R=xe(l,v,!1);if(!r.Rectangle.equals(l,R)&&!e)return null;const w=new r.ObjectMatrix,I=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{w.setValue(U,T,f.getValue(U,T)),I.setValue(U,T,null)});const M=new r.ObjectMatrix;r.Range.foreach(l,(U,T)=>{M.setValue(U,T,C.getValue(U,T))});const p=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{const N=r.cellToRange(U,T),H=r.Rectangle.getRelativeRange(N,i),y=r.Rectangle.getPositionRange(H,l);p.setValue(y.startRow,y.startColumn,f.getValue(U,T))});const b={from:{value:I.getMatrix(),subUnitId:u},to:{value:p.getMatrix(),subUnitId:c},unitId:d},_={from:{value:w.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:c},unitId:d};s.push({id:Ve.id,params:b}),a.push({id:Ve.id,params:_})}return{redos:s,undos:a}}const Ue={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),{value:u,range:d,unitId:l=s.getCurrentUniverSheetInstance().getUnitId(),subUnitId:c=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}=t,m=d?[d]:a.getSelectionRanges();if(!m||!m.length)return!1;const g=new r.ObjectMatrix;let v;if(r.Tools.isArray(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:b,endRow:_,endColumn:U}=m[M];for(let T=0;T<=_-p;T++)for(let N=0;N<=U-b;N++)g.setValue(T+p,N+b,u[T][N])}else if(r.isICellData(u))for(let M=0;M<m.length;M++){const{startRow:p,startColumn:b,endRow:_,endColumn:U}=m[M];for(let T=p;T<=_;T++)for(let N=b;N<=U;N++)g.setValue(T,N,u)}else v=u;const h={subUnitId:c,unitId:l,cellValue:v!=null?v:g.getMatrix()},C=he(o,h);if(!i.fetchThroughInterceptors(ke.PERMISSION)(null,{id:Ue.id,params:h}))return!1;const f=n.syncExecuteCommand(x.id,h),{undos:R,redos:w}=i.onCommandExecute({id:Ue.id,params:{...h,range:m}}),I=r.sequenceExecute([...w],n);return f&&I.result?(e.pushUndoRedo({unitID:l,undoMutations:[{id:x.id,params:C},...R],redoMutations:[{id:x.id,params:h},...w]}),!0):!1}};function Ut(o,t){const n=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,l=o.get(r.IUniverInstanceService),c=o.get(S.SheetInterceptorService),m=l.getUniverSheetInstance(s),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const v=g.getCellMatrix(),h=v.getDataRange();if(i.startColumn<=h.endColumn||i.startRow<=h.endRow){let I,M;if(u===r.Dimension.COLUMNS){const b=Math.min(i.endRow,h.endRow);let _=0;for(let T=i.startRow;T<=b;T++){const N=v.getRow(T),H=N?r.getArrayLength(N)-1:0;_=Math.max(_,H)}I={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:_};const U=i.endColumn-i.startColumn+1;M={startRow:i.startRow,startColumn:I.startColumn+U,endRow:b,endColumn:I.endColumn+U}}else{const b=Math.min(i.endColumn,h.endColumn),_=h.endRow;I={startRow:i.startRow,startColumn:i.startColumn,endRow:_,endColumn:b};const U=i.endRow-i.startRow+1;M={startRow:I.startRow+U,startColumn:i.startColumn,endRow:I.endRow+U,endColumn:b}}const p=yt(o,{unitId:s,subUnitId:a,range:I},{unitId:s,subUnitId:a,range:M},!0);p&&(n.push(...p.redos),e.push(...p.undos))}if(Object.entries(d).length===0)for(let I=i.startRow;I<=i.endRow;I++){d[I]||(d[I]={});for(let M=i.startColumn;M<=i.endColumn;M++)d[I][M]=null}const C={subUnitId:a,unitId:s,cellValue:d},f=he(o,C),{undos:R,redos:w}=c.onCommandExecute({id:Ue.id,params:{...C,range:i}});n.push({id:x.id,params:C},...w),e.push({id:x.id,params:f},...R)}return{redo:n,undo:e}}function _t(o,t){const n=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=t,d=o.get(r.IUniverInstanceService),l=o.get(S.SheetInterceptorService),c=d.getUniverSheetInstance(s),m=c==null?void 0:c.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),v=g.getDataRange(),h={subUnitId:a,unitId:s,cellValue:ns([i])},C=he(o,h),f=l.onCommandExecute({id:Ue.id,params:h});if(n.push({id:x.id,params:h},...f.redos),e.push(...f.undos,{id:x.id,params:C}),i.startColumn<=v.endColumn||i.startRow<=v.endRow){let R=null,w=null;if(u===r.Dimension.COLUMNS&&i.endColumn<v.endColumn){const I=Math.min(i.endRow,v.endRow);let M=0;for(let b=i.startRow;b<=I;b++){const _=g.getRow(b),U=_?r.getArrayLength(_)-1:0;M=Math.max(M,U)}R={startRow:i.startRow,startColumn:i.endColumn+1,endRow:I,endColumn:M};const p=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:R.startColumn-p,endRow:I,endColumn:R.endColumn-p}}if(u===r.Dimension.ROWS&&i.endRow<v.endRow){const I=Math.min(i.endColumn,v.endColumn),M=v.endRow;R={startRow:i.endRow+1,startColumn:i.startColumn,endRow:M,endColumn:I};const p=i.endRow-i.startRow+1;w={startRow:R.startRow-p,startColumn:i.startColumn,endRow:R.endRow-p,endColumn:I}}if(R&&w){const I=yt(o,{unitId:s,subUnitId:a,range:R},{unitId:s,subUnitId:a,range:w},!0);I&&(n.push(...I.redos),e.push(...I.undos))}}}return{redo:n,undo:e}}function es(o,t,n,e,s,a){const{startRow:i,endRow:u,startColumn:d,endColumn:l}=t;if(s===r.Dimension.ROWS){const c=u-i+1;for(let m=n;m>=i;m--)for(let g=d;g<=l;g++){const v=o.getValue(m,g);v==null?o.realDeleteValue(m+c,g):o.setValue(m+c,g,v)}for(let m=u;m>=i;m--)for(let g=d;g<=l;g++)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const c=l-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const v=o.getValue(m,g);v==null?o.realDeleteValue(m,g+c):o.setValue(m,g+c,v)}for(let m=i;m<=u;m++)for(let g=l;g>=d;g--)a&&a[m]&&a[m][g]?o.setValue(m,g,a[m][g]):o.realDeleteValue(m,g)}}function ts(o,t,n,e,s){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,l=i-a+1,c=d-u+1;if(s===r.Dimension.ROWS)for(let m=a;m<=n;m++)for(let g=u;g<=d;g++){const v=o.getValue(m+l,g);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}else if(s===r.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const v=o.getValue(m,g+c);v==null?o.realDeleteValue(m,g):o.setValue(m,g,v)}}function ns(o){const t=new r.ObjectMatrix;return o.forEach(n=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const ln="sheet.command.delete-range-move-left",nt={type:r.CommandType.COMMAND,id:ln,handler:async(o,t)=>{var I,M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=a.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:nt.id,params:{range:l}}),{redo:h,undo:C}=_t(o,g),f=[...(M=v.preRedos)!=null?M:[],...h],R=[...v.undos,...C];return f.push(...v.redos),f.push(ve(l,c,m)),R.push(...(p=v.preUndos)!=null?p:[]),r.sequenceExecute(f,n).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},mn="sheet.command.delete-range-move-up",ot={type:r.CommandType.COMMAND,id:mn,handler:async(o,t)=>{var I,M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(S.SheetInterceptorService),u=s.getCurrentUniverSheetInstance().getUnitId(),d=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let l=t==null?void 0:t.range;if(l||(l=(I=a.getLast())==null?void 0:I.range),!l)return!1;const c=s.getUniverSheetInstance(u);if(!c)return!1;const m=c.getSheetBySheetId(d);if(!m)return!1;const g={range:l,subUnitId:d,unitId:u,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:ot.id,params:{range:l}}),{redo:h,undo:C}=_t(o,g),f=[...(M=v.preRedos)!=null?M:[],...h],R=[...v.undos,...C];return f.push(...v.redos),f.push(ve(l,c,m)),R.push(...(p=v.preUndos)!=null?p:[]),await r.sequenceExecute(f,n).result?(e.pushUndoRedo({unitID:u,undoMutations:R.reverse(),redoMutations:f}),!0):!1}},bt=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Se={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(o,t)=>{var h;const{unitId:n,subUnitId:e,range:s,rowInfo:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const l=d.getRowManager().getRowData(),c={h:d.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let C=m;C<m+g;C++)a?r.insertMatrixArray(C,(h=a[C-s.startRow])!=null?h:c,l):r.insertMatrixArray(C,c,l);return d.setRowCount(d.getRowCount()+s.endRow-s.startRow+1),d.getCellMatrix().insertRows(s.startRow,g),!0}},Tt=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(o,t)=>{var h;const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getColumnManager(),{range:i,colInfo:u}=t,l=a.getColumnData(),c=i.startColumn,m=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let C=c;C<c+m;C++){const f={w:g,hd:0};u?r.insertMatrixArray(C,(h=u[C-i.startColumn])!=null?h:f,l):r.insertMatrixArray(C,f,l)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,m),!0}},os=(o,t)=>{const s=t.getRowManager().getRowData(),a={},i=o.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),d=r.concatMatrixArray(a,u);return{unitId:o.unitId,subUnitId:o.subUnitId,range:o.range,rowInfo:d}},fe={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getRowManager().getRowData(),d=a.endRow-a.startRow+1;return r.spliceArray(a.startRow,d,u),s.getCellMatrix().removeRows(a.startRow,d),s.setRowCount(s.getRowCount()-d),!0}},ss=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),d={},l=t.range,c=r.sliceMatrixArray(l.startColumn,l.endColumn,u),m=r.concatMatrixArray(d,c);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return r.spliceArray(a.startColumn,d,u),s.setColumnCount(s.getColumnCount()-d),s.getCellMatrix().removeColumns(a.startColumn,d),!0}},rs="sheet.command.insert-range-move-down",st={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(o,t)=>{var N,H,y;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ILogService),i=o.get(S.SelectionManagerService),u=o.get(S.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=i.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(f.startRow,f.endRow,c.startColumn,c.endColumn).getDataRange().endRow,I=Math.max(w+(c.endRow-c.startRow+1)-f.endRow,0);if(I>0){const K=c.startRow-1,Q=g.getRowHeight(K),q={unitId:d,subUnitId:l,range:{startRow:f.endRow+1,endRow:f.endRow+I,startColumn:f.startColumn,endColumn:f.endColumn},rowInfo:new Array(I).fill(void 0).map(()=>({h:Q,hd:r.BooleanNumber.FALSE}))};v.push({id:Se.id,params:q});const ie=bt(o,q);h.push({id:fe.id,params:ie})}const M={};r.Range.foreach(c,(K,Q)=>{const q=g.getCell(K,Q);q&&(M[K]||(M[K]={}),M[K][Q]={s:q.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.ROWS,cellValue:M},{redo:b,undo:_}=Ut(o,p);v.push(...b),h.push(..._);const U=u.onCommandExecute({id:st.id,params:{range:c}});return v.push(...U.redos),v.push(ve(c,m,g)),h.push(...(H=U.preUndos)!=null?H:[]),v.unshift(...(y=U.preRedos)!=null?y:[]),h.unshift(...U.undos),r.sequenceExecute(v,n)?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},gn="sheet.command.insert-range-move-right",rt={type:r.CommandType.COMMAND,id:gn,handler:async(o,t)=>{var N,H,y;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ILogService),i=o.get(S.SelectionManagerService),u=o.get(S.SheetInterceptorService);if(i.isOverlapping())return a.error("Cannot use that command on overlapping selections."),!1;const d=s.getCurrentUniverSheetInstance().getUnitId(),l=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();let c=t==null?void 0:t.range;if(c||(c=(N=i.getLast())==null?void 0:N.range),!c)return!1;const m=s.getUniverSheetInstance(d);if(!m)return!1;const g=m.getSheetBySheetId(l);if(!g)return!1;const v=[],h=[],C=g.getCellMatrix(),f=C.getDataRange(),w=C.getSlice(c.startRow,c.endRow,f.startColumn,f.endColumn).getDataRange().endColumn,I=Math.max(w+(c.endColumn-c.startColumn+1)-f.endColumn,0);if(I>0){const K=c.startColumn-1,Q=g.getColumnWidth(K),q={unitId:d,subUnitId:l,range:{startRow:f.startRow+1,endRow:f.endRow,startColumn:f.endColumn+1,endColumn:f.endColumn+I},colInfo:new Array(I).fill(void 0).map(()=>({w:Q,hd:r.BooleanNumber.FALSE}))};v.push({id:Ce.id,params:q});const ie=Tt(o,q);h.push({id:Ie.id,params:ie})}const M={};r.Range.foreach(c,(K,Q)=>{const q=g.getCell(K,Q);!q||!q.s||(M[K]||(M[K]={}),M[K][Q]={s:q.s})});const p={range:c,subUnitId:l,unitId:d,shiftDimension:r.Dimension.COLUMNS,cellValue:M},{redo:b,undo:_}=Ut(o,p);v.push(...b),h.push(..._);const U=u.onCommandExecute({id:rt.id,params:{range:c}});return v.push(...U.redos),v.push(ve(c,m,g)),h.push(...(H=U.preUndos)!=null?H:[]),v.unshift(...(y=U.preRedos)!=null?y:[]),h.unshift(...U.undos),r.sequenceExecute(v,n).result?(e.pushUndoRedo({unitID:d,undoMutations:h.reverse(),redoMutations:v}),!0):!1}},hn="sheet.command.insert-row",Le={type:r.CommandType.COMMAND,id:hn,handler:async(o,t)=>{var M,p;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),i=s.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:l,unitId:c,subUnitId:m}=t,{startRow:g,endRow:v}=d,h=l===r.Direction.UP?g:g-1,C=u.getRowHeight(h),f={unitId:c,subUnitId:m,range:d,rowInfo:new Array(v-g+1).fill(void 0).map(()=>({h:C,hd:r.BooleanNumber.FALSE}))},R=bt(o,f),w=a.onCommandExecute({id:Le.id,params:t});return r.sequenceExecute([{id:Se.id,params:f},...w.redos,ve(d,i,u)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=w.preUndos)!=null?M:[],{id:fe.id,params:R},...w.undos],redoMutations:[...(p=w.preRedos)!=null?p:[],{id:Se.id,params:f},...w.redos]}),!0):!1}},vn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async o=>{var g;const n=(g=o.get(S.SelectionManagerService).getSelections())==null?void 0:g.map(v=>v.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endRow-e.startRow+1,c={};r.Range.foreach(e,(v,h)=>{const C=i.getCell(v,h);!C||!C.s||(c[v]||(c[v]={}),c[v][h]={s:C.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+l-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:c};return o.get(r.ICommandService).executeCommand(Le.id,m)}},Sn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async o=>{var m;const n=(m=o.get(S.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((n==null?void 0:n.length)===1)e=n[0];else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endRow-e.startRow+1,c={unitId:u,subUnitId:d,direction:r.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+l,startColumn:0,endColumn:i.getColumnCount()-1}};return o.get(r.ICommandService).executeCommand(Le.id,c)}},Cn="sheet.command.insert-col",je={type:r.CommandType.COMMAND,id:Cn,handler:async(o,t)=>{var p,b,_;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:l,cellValue:c}=t,{startColumn:m,endColumn:g}=t.range,v=s.getUniverSheetInstance(t.unitId),h=v.getSheetBySheetId(t.subUnitId),C=u===r.Direction.LEFT?m:m-1,f=h.getColumnWidth(C),R={unitId:l,subUnitId:d,range:i,colInfo:new Array(g-m+1).fill(void 0).map(()=>({w:f,hd:r.BooleanNumber.FALSE}))},w=Tt(o,R);t.unitId,t.subUnitId,t.range,r.Dimension.COLUMNS;const I=a.onCommandExecute({id:je.id,params:t});return r.sequenceExecute([...(p=I.preRedos)!=null?p:[],{id:Ce.id,params:R},...I.redos,ve(i,v,h)],n).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(b=I.preUndos)!=null?b:[],{id:Ie.id,params:w},...I.undos].filter(Boolean),redoMutations:[...(_=I.preRedos)!=null?_:[],{id:Ce.id,params:R},...I.redos].filter(Boolean)}),!0):!1}},fn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async o=>{const n=o.get(S.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endColumn-e.startColumn+1,c={};r.Range.foreach(e,(g,v)=>{const h=i.getCell(g,v);!h||!h.s||(c[g]||(c[g]={}),c[g][v]={s:h.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+l-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:c};return o.get(r.ICommandService).executeCommand(je.id,m)}},In={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async o=>{const n=o.get(S.SelectionManagerService).getSelections();let e;if((n==null?void 0:n.length)===1)e=n[0].range;else return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),l=e.endColumn-e.startColumn+1,c={unitId:u,subUnitId:d,direction:r.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+l,startRow:0,endRow:i.getLastRowWithContent()}};return o.get(r.ICommandService).executeCommand(je.id,c)}},Rn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(o,t)=>{var v,h;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.LocaleService),i=(v=t==null?void 0:t.unitId)!=null?v:s.getCurrentUniverSheetInstance().getUnitId(),u=s.getUniverSheetInstance(i);if(!u)return!1;let d=u.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});t?(d=(h=t.index)!=null?h:d,t.sheet?l=t.sheet:(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=u.generateNewSheetName(`${a.t("sheets.sheet")}`));const c={index:d,sheet:l,unitId:i},m=pt(o,c);return n.syncExecuteCommand(ye.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Be.id,params:m}],redoMutations:[{id:ye.id,params:c}]}),!0):!1}};function is(o,t){const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:n,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:n,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const _e={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const l=s.startRow,c=s.endRow-s.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveRows(l,c,m),!0}};function as(o,t){const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:n,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:n,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const be={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,sourceRange:s,targetRange:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const l=s.startColumn,c=s.endColumn-s.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return r.moveMatrixArray(l,c,m,g),d.getCellMatrix().moveColumns(l,c,m),!0}};function us(o,t){return t.getMergeData().some(n=>n.startRow<o&&o<=n.endRow)}function ds(o,t){return t.getMergeData().some(n=>n.startColumn<o&&o<=n.endColumn)}const Mn="sheet.command.move-rows",Dt={id:Mn,type:r.CommandType.COMMAND,handler:async(o,t)=>{var q,ie;const e=o.get(S.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.ROW&&ae.range.startRow<=s&&s<=ae.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=o.get(S.SheetInterceptorService),l=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=o.get(r.ErrorService),h=i[0].range,C=i[0].primary,f=xe(h,c,!1);if(!r.Rectangle.equals(h,f))return v.emit("Only part of a merged cell is selected."),!1;if(us(a,c))return v.emit("Across a merged cell."),!1;const R={...h,startRow:a,endRow:a+h.endRow-h.startRow},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=is(o,w),p=a-s<0,b=h.endRow-h.startRow+1,_=p?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},U={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:Z(_,c),style:null}]},T={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:C,style:null}]},N=o.get(r.ICommandService),H=u.onCommandExecute({id:Dt.id,params:t}),y=[...(q=H.preRedos)!=null?q:[],{id:_e.id,params:w},{id:G.id,params:U},...H.redos],K=[...(ie=H.preUndos)!=null?ie:[],{id:_e.id,params:I},{id:G.id,params:T},...H.undos];return r.sequenceExecute(y,N).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:K,redoMutations:y}),!0):!1}},wn="sheet.command.move-cols",Et={id:wn,type:r.CommandType.COMMAND,handler:async(o,t)=>{var q,ie;const e=o.get(S.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ae=>ae.range.rangeType===r.RANGE_TYPE.COLUMN&&ae.range.startColumn<=s&&s<=ae.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=o.get(S.SheetInterceptorService),l=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!l)return!1;const c=l.getActiveSheet();if(!c)return!1;const m=l.getUnitId(),g=c.getSheetId(),v=o.get(r.ErrorService),h=i[0].range,C=i[0].primary,f=xe(h,c,!1);if(!r.Rectangle.equals(h,f))return v.emit("Only part of a merged cell is selected."),!1;if(ds(a,c))return v.emit("Across a merged cell."),!1;const R={...h,startColumn:a,endColumn:a+h.endColumn-h.startColumn},w={unitId:m,subUnitId:g,sourceRange:h,targetRange:R},I=as(o,w),M=h.endColumn-h.startColumn+1,_=a-s<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},U={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:_,primary:Z(_,c),style:null}]},T={unitId:m,subUnitId:g,pluginName:Y,selections:[{range:h,primary:C,style:null}]},N=o.get(r.ICommandService),H=u.onCommandExecute({id:Et.id,params:t}),y=[...(q=H.preRedos)!=null?q:[],{id:be.id,params:w},{id:G.id,params:U},...H.redos],K=[...(ie=H.preUndos)!=null?ie:[],{id:be.id,params:I},{id:G.id,params:T},...H.undos];return r.sequenceExecute(y,N).result&&o.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:K,redoMutations:y}),!0}},pn="sheet.command.remove-row",it={type:r.CommandType.COMMAND,id:pn,handler:async(o,t)=>{var R,w,I,M;const n=o.get(S.SelectionManagerService),e=o.get(S.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=n.getLast())==null?void 0:R.range),!s)return!1;const i=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId();s={...s,startColumn:0,endColumn:Math.max(u.getMaxColumns()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=u.getCellMatrix().getSlice(s.startRow,s.endRow,0,u.getColumnCount()-1),g={unitId:d,subUnitId:l,cellValue:m.getMatrix()},v=os(c,u),h=e.onCommandExecute({id:it.id,params:{range:s}}),C=o.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:fe.id,params:c},...h.redos,ve(s,i,u)],C).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:Se.id,params:v},{id:x.id,params:g},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:fe.id,params:c},...h.redos]}),!0):!1}},yn="sheet.command.remove-col",at={type:r.CommandType.COMMAND,id:yn,handler:async(o,t)=>{var R,w,I,M;const n=o.get(S.SelectionManagerService),e=o.get(S.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=n.getLast())==null?void 0:R.range),!s)return!1;const i=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),u=i.getActiveSheet(),d=i.getUnitId(),l=u.getSheetId();s={...s,startRow:0,endRow:Math.max(u.getMaxRows()-1,0)};const c={unitId:d,subUnitId:l,range:s},m=ss(o,c),g=u.getCellMatrix().getSlice(0,u.getRowCount()-1,s.startColumn,s.endColumn),v={unitId:d,subUnitId:l,cellValue:g.getMatrix()},h=e.onCommandExecute({id:at.id,params:{range:s}}),C=o.get(r.ICommandService);return r.sequenceExecute([...(w=h.preRedos)!=null?w:[],{id:Ie.id,params:c},...h.redos,ve(s,i,u)],C).result?(o.get(r.IUndoRedoService).pushUndoRedo({unitID:d,undoMutations:[...(I=h.preUndos)!=null?I:[],{id:Ce.id,params:m},{id:x.id,params:v},...h.undos],redoMutations:[...(M=h.preRedos)!=null?M:[],{id:Ie.id,params:c},...h.redos]}),!0):!1}},Nt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(o,t)=>{var R,w,I,M;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService);let i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(R=t.unitId)!=null?R:i,u=(w=t.subUnitId)!=null?w:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||d.getSheets().length<=1)return!1;const c=d.getSheetIndex(l);d.getConfig().sheetOrder[c+1];const m={subUnitId:u,unitId:i,subUnitName:l.getName()},g=un(o,m),v=a.onCommandExecute({id:Nt.id,params:{unitId:i,subUnitId:u}}),h=[...(I=v.preRedos)!=null?I:[],{id:Be.id,params:m},...v.redos],C=[...(M=v.preUndos)!=null?M:[],{id:ye.id,params:g},...v.undos];return r.sequenceExecute(h,n)?(e.pushUndoRedo({unitID:i,undoMutations:C,redoMutations:h}),!0):!1}},ce=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},W={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},ne=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().mergeData,u=t.ranges,d=[];for(let l=0;l<u.length;l++)for(let c=i.length-1;c>=0;c--){const m=i[c],g=u[l];r.Rectangle.intersects(m,g)&&d.push(i[c])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let l=i.length-1;l>=0;l--){const c=i[l],m=u[d];r.Rectangle.intersects(c,m)&&i.splice(l,1)}return!0}},Un={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async o=>{const t=o.get(S.SelectionManagerService),n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:i,subUnitId:u,ranges:a};let m=!1;const g=l.getConfig().mergeData;if(a.forEach(p=>{g.forEach(b=>{r.Rectangle.intersects(p,b)&&(m=!0)})}),!m)return!1;const v=ne(o,c),h=t.getSelections();if(!(h!=null&&h.length))return!1;const C=r.Tools.deepClone(h),f=r.Tools.deepClone(h),R=f[f.length-1],{startRow:w,startColumn:I}=R.range;return R.primary={startRow:w,startColumn:I,endRow:w,endColumn:I,actualRow:w,actualColumn:I,isMerged:!1,isMergedMainCell:!1},r.sequenceExecute([{id:F.id,params:v},{id:G.id,params:{selections:f}}],n)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:W.id,params:v},{id:G.id,params:{selections:C}}],redoMutations:[{id:F.id,params:v},{id:G.id,params:{selections:f}}]}),!0):!1}};class Te{constructor(){L(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});L(this,"_borderInfo$",new Pe.BehaviorSubject(this._borderInfo));L(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function cs(o,t,n){const e=t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance();if(!e)throw new Error;const s=n?e.getSheetBySheetId(n):e.getActiveSheet();if(!s)throw new Error;return{workbook:e,worksheet:s,unitId:t!=null?t:e.getUnitId(),subUnitId:n!=null?n:s.getSheetId()}}function ut(o,t){const{startRow:n,startColumn:e,endRow:s,endColumn:a}=o;for(let i=n;i<=s;i++)for(let u=e;u<=a;u++)t(i,u)}const _n={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(o,t)=>{const{unitId:n,subUnitId:e,value:s}=t,{type:a,color:i,style:u}=s,d=o.get(r.ICommandService),l=o.get(Te);return l.setType(a),l.setColor(i),l.setStyle(u),d.executeCommand(We.id,{unitId:n,subUnitId:e})}},bn={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(o,t)=>{if(!t.value)return!1;const n=o.get(r.ICommandService);return o.get(Te).setType(t.value),n.executeCommand(We.id)}},Tn={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService);return o.get(Te).setStyle(t.value),n.executeCommand(We.id)}},Dn={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService);return o.get(Te).setColor(t.value),n.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SelectionManagerService),i=o.get(Te),{worksheet:u,unitId:d,subUnitId:l}=cs(s,t==null?void 0:t.unitId,t==null?void 0:t.subUnitId),c=a.getSelectionRanges(),m=u.getConfig().mergeData;if(!(c!=null&&c.length))return!1;const{style:g,color:v,type:h,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const f=h===r.BorderType.TOP||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,R=h===r.BorderType.LEFT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,w=h===r.BorderType.BOTTOM||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,I=h===r.BorderType.RIGHT||h===r.BorderType.ALL||h===r.BorderType.OUTSIDE,M=h===r.BorderType.VERTICAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,p=h===r.BorderType.HORIZONTAL||h===r.BorderType.ALL||h===r.BorderType.INSIDE,b=h.indexOf("tlbr")>-1,_=h.indexOf("tlbc")>-1,U=h.indexOf("tlmr")>-1,T=h.indexOf("bltr")>-1,N=h.indexOf("mltr")>-1,H=h.indexOf("bctr")>-1,y=c[0],K={startRow:y.startRow-1,startColumn:y.startColumn,endRow:y.startRow-1,endColumn:y.endColumn},Q={startRow:y.startRow,startColumn:y.startColumn-1,endRow:y.endRow,endColumn:y.startColumn-1},q={startRow:y.endRow+1,startColumn:y.startColumn,endRow:y.endRow+1,endColumn:y.endColumn},ie={startRow:y.startRow,startColumn:y.endColumn+1,endRow:y.endRow,endColumn:y.endColumn+1},ae={startRow:y.startRow,startColumn:y.startColumn,endRow:y.startRow,endColumn:y.endColumn},Uo={startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.startColumn},_o={startRow:y.endRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn},bo={startRow:y.startRow,startColumn:y.endColumn,endRow:y.endRow,endColumn:y.endColumn},B=new r.ObjectMatrix,z={s:g,cl:{rgb:v}},Mt=(O,D)=>{let V=null;return m.forEach(X=>{r.Rectangle.intersects(X,{startColumn:D,endColumn:D,startRow:O,endRow:O})&&(V=X)}),V};function $(O,D,V){O.startRow<0||O.startColumn<0||ut(O,(X,ue)=>{var E,Xe;const ee=Mt(X,ue);let se=D;if(ee&&(D.bc_tr||D.ml_tr||D.bl_tr||D.tl_mr||D.tl_bc||D.tl_br)){if(V){const de=r.Tools.deepClone((E=B.getValue(ee.startRow,ee.startColumn))==null?void 0:E.s);se=de!=null&&de.bd?Object.assign(de.bd,D):D}B.setValue(ee.startRow,ee.startColumn,{s:{bd:se}})}else{if(V){const de=r.Tools.deepClone((Xe=B.getValue(X,ue))==null?void 0:Xe.s);se=de!=null&&de.bd?Object.assign(de.bd,D):D}B.setValue(X,ue,{s:{bd:se}})}})}f&&($(K,{b:null}),$(ae,{t:r.Tools.deepClone(z)},!0)),w&&($(q,{t:null}),$(_o,{b:r.Tools.deepClone(z)},!0)),R&&($(Q,{r:null}),$(Uo,{l:r.Tools.deepClone(z)},!0)),I&&($(ie,{l:null}),$(bo,{r:r.Tools.deepClone(z)},!0)),b&&$(y,{tl_br:r.Tools.deepClone(z)},!0),_&&$(y,{tl_bc:r.Tools.deepClone(z)},!0),U&&$(y,{tl_mr:r.Tools.deepClone(z)},!0),T&&$(y,{bl_tr:r.Tools.deepClone(z)},!0),N&&$(y,{ml_tr:r.Tools.deepClone(z)},!0),H&&$(y,{bc_tr:r.Tools.deepClone(z)},!0),M&&ut(y,(O,D)=>{var X,ue,ee,se;const V=Mt(O,D);if(V){if(V.endColumn!==y.endColumn){const E=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:r.Tools.deepClone(z)}):{r:r.Tools.deepClone(z)}}})}if(V.startColumn!==y.startColumn){const E=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:r.Tools.deepClone(z)}):{l:r.Tools.deepClone(z)}}})}}else{if(D!==y.endColumn){const E=(ee=B.getValue(O,D))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:r.Tools.deepClone(z)}):{r:r.Tools.deepClone(z)}}})}if(D!==y.startColumn){const E=(se=B.getValue(O,D))==null?void 0:se.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:r.Tools.deepClone(z)}):{l:r.Tools.deepClone(z)}}})}}}),p&&ut(y,(O,D)=>{var X,ue,ee,se;const V=Mt(O,D);if(V){if(V.endRow!==y.endRow){const E=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:r.Tools.deepClone(z)}):{b:r.Tools.deepClone(z)}}})}if(V.startRow!==y.startRow){const E=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:r.Tools.deepClone(z)}):{t:r.Tools.deepClone(z)}}})}}else{if(O!==y.endRow){const E=(ee=B.getValue(O,D))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:r.Tools.deepClone(z)}):{b:r.Tools.deepClone(z)}}})}if(O!==y.startRow){const E=(se=B.getValue(O,D))==null?void 0:se.s;B.setValue(O,D,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:r.Tools.deepClone(z)}):{t:r.Tools.deepClone(z)}}})}}}),!f&&!w&&!R&&!I&&!M&&!p&&!b&&!_&&!U&&!T&&!N&&!H&&($(K,{b:null}),$(ae,{t:null},!0),$(q,{t:null}),$(_o,{b:null},!0),$(Q,{r:null}),$(Uo,{l:null},!0),$(ie,{l:null}),$(bo,{r:null},!0),$(y,{tl_br:null},!0),$(y,{tl_bc:null},!0),$(y,{tl_mr:null},!0),$(y,{bl_tr:null},!0),$(y,{ml_tr:null},!0),$(y,{bc_tr:null},!0),ut(y,(O,D)=>{var X,ue,ee,se,E,Xe,de,To;const V=Mt(O,D);if(V){if(V.endColumn!==y.endColumn){const A=(X=B.getValue(V.startRow,V.startColumn))==null?void 0:X.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(V.startColumn!==y.startColumn){const A=(ue=B.getValue(V.startRow,V.startColumn))==null?void 0:ue.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(V.endRow!==y.endRow){const A=(ee=B.getValue(V.startRow,V.startColumn))==null?void 0:ee.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(V.startRow!==y.startRow){const A=(se=B.getValue(V.startRow,V.startColumn))==null?void 0:se.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}else{if(D!==y.endColumn){const A=(E=B.getValue(O,D))==null?void 0:E.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{r:null}):{r:null}}})}if(D!==y.startColumn){const A=(Xe=B.getValue(O,D))==null?void 0:Xe.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{l:null}):{l:null}}})}if(O!==y.endRow){const A=(de=B.getValue(O,D))==null?void 0:de.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{b:null}):{b:null}}})}if(O!==y.startRow){const A=(To=B.getValue(O,D))==null?void 0:To.s;B.setValue(O,D,{s:{bd:A!=null&&A.bd?Object.assign(A.bd,{t:null}):{t:null}}})}}}));const tn={unitId:d,subUnitId:l,cellValue:B.getData()},Fr=he(o,tn);return n.syncExecuteCommand(x.id,tn)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:x.id,params:Fr}],redoMutations:[{id:x.id,params:tn}]}),!0):!1}},ls=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.TRUE)}}return!0}},ms=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.FALSE)}}return!0}},Ot={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,a=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),i={unitId:n,subUnitId:e,ranges:s},u=ms(o,i),d={unitId:n,subUnitId:e,pluginName:Y,selections:s.map(g=>({range:g,primary:Z(g,a),style:null}))},l={unitId:n,subUnitId:e,pluginName:Y,selections:On(s).map(g=>({range:g,primary:Z(g,a),style:null}))},c=o.get(r.ICommandService);return r.sequenceExecute([{id:He.id,params:i},{id:G.id,params:d}],c).result&&o.get(r.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:[{id:Fe.id,params:u},{id:G.id,params:l}],redoMutations:[{id:He.id,params:i},{id:G.id,params:d}]}),!0}},En={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async o=>{var l;const n=(l=o.get(S.SelectionManagerService).getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const s=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=n.map(c=>a.getHiddenCols(c.startColumn,c.endColumn)).flat();return o.get(r.ICommandService).executeCommand(Ot.id,{unitId:i,subUnitId:u,ranges:d})}},Nn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async o=>{var v;const n=(v=o.get(S.SelectionManagerService).getSelections())==null?void 0:v.map(h=>h.range).filter(h=>h.rangeType===r.RANGE_TYPE.COLUMN);if(!(n!=null&&n.length))return!1;const s=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:n},l={unitId:i,subUnitId:u,pluginName:Y,selections:On(n).map(h=>({range:h,primary:Z(h,a),style:null}))},c={unitId:i,subUnitId:u,pluginName:Y,selections:n.map(h=>({range:h,primary:Z(h,a),style:null}))},m=o.get(r.ICommandService);if(r.sequenceExecute([{id:Fe.id,params:d},{id:G.id,params:l}],m).result){const h=o.get(r.IUndoRedoService),C=ls(o,d);return h.pushUndoRedo({unitID:i,undoMutations:[{id:He.id,params:C},{id:G.id,params:c}],redoMutations:[{id:Fe.id,params:d},{id:G.id,params:l}]}),!0}return!1}};function On(o){return gs(o).map(n=>{const e=n.startColumn===0?n.endColumn+1:n.startColumn-1;return{...n,startColumn:e,endColumn:e}})}function gs(o){const t=[];let n;return o.sort((e,s)=>e.startColumn-s.startColumn).forEach(e=>{if(!n){n=e;return}n.endColumn===e.startColumn-1?n.endColumn=e.endColumn:(t.push(n),n=e)}),t.push(n),t}const At=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},we={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:l}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:l},!0}},An={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u)return!1;const d=u.getSheetBySheetId(i);if(!d)return!1;const{startColumn:l,startRow:c,xSplit:m,ySplit:g}=t;if(c>=d.getRowCount()||l>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const v={unitId:a,subUnitId:i,...t},h=At(o,v);return n.syncExecuteCommand(we.id,v)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:we.id,params:h}],redoMutations:[{id:we.id,params:v}]}),!0):!1}},hs={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async o=>{const t=o.get(r.ICommandService),n=o.get(r.IUndoRedoService),e=o.get(r.IUniverInstanceService),s=e.getCurrentUniverSheetInstance().getUnitId(),a=e.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),i=e.getUniverSheetInstance(s);if(!i||!i.getSheetBySheetId(a))return!1;const d={unitId:s,subUnitId:a,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},l=At(o,d);return t.syncExecuteCommand(we.id,d)?(n.pushUndoRedo({unitID:s,undoMutations:[{id:we.id,params:l}],redoMutations:[{id:we.id,params:d}]}),!0):!1}},vs=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Ss=(o,t)=>{if(o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Ge={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Pt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,a=o.get(r.ICommandService),i=o.get(r.IUndoRedoService),u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),d={unitId:n,subUnitId:e,ranges:s},l=vs(o,d),c={unitId:n,subUnitId:e,pluginName:Y,selections:s.map(v=>({range:v,primary:Z(v,u),style:null}))},m={unitId:n,subUnitId:e,pluginName:Y,selections:Bn(s).map(v=>({range:v,primary:Z(v,u),style:null}))};return r.sequenceExecute([{id:$e.id,params:d},{id:G.id,params:c}],a).result&&i.pushUndoRedo({unitID:n,undoMutations:[{id:Ge.id,params:l},{id:G.id,params:m}],redoMutations:[{id:$e.id,params:d},{id:G.id,params:c}]}),!0}},Pn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async o=>{var l;const t=o.get(S.SelectionManagerService),n=o.get(r.IUniverInstanceService),e=(l=t.getSelections())==null?void 0:l.map(c=>c.range).filter(c=>c.rangeType===r.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const s=n.getCurrentUniverSheetInstance();if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=e.map(c=>a.getHiddenRows(c.startRow,c.endRow)).flat();return o.get(r.ICommandService).executeCommand(Pt.id,{unitId:i,subUnitId:u,ranges:d})}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async o=>{var C;const t=o.get(S.SelectionManagerService),n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=(C=t.getSelections())==null?void 0:C.map(f=>f.range).filter(f=>f.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=s.getCurrentUniverSheetInstance().getUnitId(),u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l)return!1;const c={unitId:i,subUnitId:u,ranges:a},m={unitId:i,subUnitId:u,pluginName:Y,selections:Bn(a).map(f=>({range:f,primary:Z(f,l),style:null}))},g={unitId:i,subUnitId:u,pluginName:Y,selections:a.map(f=>({range:f,primary:Z(f,l),style:null}))},v=Ss(o,c);return r.sequenceExecute([{id:Ge.id,params:c},{id:G.id,params:m}],n).result&&e.pushUndoRedo({unitID:i,undoMutations:[{id:$e.id,params:v},{id:G.id,params:g}],redoMutations:[{id:Ge.id,params:c},{id:G.id,params:m}]}),!0}};function Bn(o){return Cs(o).map(n=>{const e=n.startRow===0?n.endRow+1:n.startRow-1;return{...n,startRow:e,endRow:e}})}function Cs(o){const t=[];let n;return o.sort((e,s)=>e.startRow-s.startRow).forEach(e=>{if(!n){n=e;return}e.startRow===n.endRow+1?n.endRow=e.endRow:(t.push(n),n=e)}),t.push(n),t}const J={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(o,t)=>{const n=o.get(r.IUniverInstanceService),{unitId:e=n.getCurrentUniverSheetInstance().getUnitId(),subUnitId:s=n.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),range:a,style:i}=t,u=o.get(r.ICommandService),d=o.get(r.IUndoRedoService),l=o.get(S.SelectionManagerService),c=a?[a]:l.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m=n.getUniverSheetInstance(e);if((m==null?void 0:m.getSheetBySheetId(s))==null)return!1;const v=new r.ObjectMatrix;if(r.Tools.isArray(i.value))for(let M=0;M<c.length;M++){const{startRow:p,endRow:b,startColumn:_,endColumn:U}=c[M];for(let T=0;T<=b-p;T++)for(let N=0;N<=U-_;N++)v.setValue(T+p,N+_,{s:{[i.type]:i.value[T][N]}})}else for(let M=0;M<c.length;M++){const{startRow:p,endRow:b,startColumn:_,endColumn:U}=c[M],T={s:{[i.type]:i.value}};for(let N=p;N<=b;N++)for(let H=_;H<=U;H++)v.setValue(N,H,T)}const h={subUnitId:s,unitId:e,cellValue:v.getMatrix()},C=he(o,h),f=u.syncExecuteCommand(x.id,h),{undos:R,redos:w}=o.get(S.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),I=r.sequenceExecute([...w],u);return f&&I.result?(d.pushUndoRedo({unitID:e,undoMutations:[{id:x.id,params:C},...R],redoMutations:[{id:x.id,params:h},...w]}),!0):!1}},fs={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet(),{actualRow:e,actualColumn:s}=t.primary,i={style:{type:"bl",value:n.getRange(e,s).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return o.get(r.ICommandService).executeCommand(J.id,i)}},Is={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;if(t.primary){const{startRow:a,startColumn:i}=t.primary;e=n.getRange(a,i).getFontStyle()===r.FontItalic.ITALIC}const s={style:{type:"it",value:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return o.get(r.ICommandService).executeCommand(J.id,s)}},Rs={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const s={style:{type:"ul",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return o.get(r.ICommandService).executeCommand(J.id,s)}},Ms={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async o=>{const t=o.get(S.SelectionManagerService).getLast();if(!t)return!1;const n=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getActiveSheet();let e=!0;t.primary&&(e=!!n.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const s={style:{type:"st",value:{s:e?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return o.get(r.ICommandService).executeCommand(J.id,s)}};r.CommandType.COMMAND;const ws={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={style:{type:"ff",value:t.value}};return n.executeCommand(J.id,e)}},ps={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={style:{type:"fs",value:t.value}};return n.executeCommand(J.id,e)}},Vn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(r.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return n.executeCommand(J.id,e)}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async o=>{const t=o.get(r.ICommandService),n={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,n)}},jn={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(o,t)=>{if(!t||!t.value)return!1;const n=o.get(r.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return n.executeCommand(J.id,e)}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async o=>{const t=o.get(r.ICommandService),n={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,n)}},Fn={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return n.executeCommand(J.id,e)}},Hn={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return n.executeCommand(J.id,e)}},$n={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(o,t)=>{if(!t)return!1;const n=o.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return n.executeCommand(J.id,e)}},Gn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(o,t)=>{if(!t)return!1;const n=typeof t.value=="number"?{a:t.value}:{a:0,v:r.BooleanNumber.TRUE},e=o.get(r.ICommandService),s={style:{type:"tr",value:n}};return e.executeCommand(J.id,s)}},ys=(o,t)=>{const a=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(t),color:a}},qe={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},zn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const l={color:t.value,unitId:a,subUnitId:i},c=ys(o,l);return n.syncExecuteCommand(qe.id,l)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:qe.id,params:c}],redoMutations:[{id:qe.id,params:l}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getWorksheets();for(const[,s]of e)if(s.getSheetId()===t.subUnitId)return n.setActiveSheet(s),!0;return!1}},Us=4,kt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(o,t,n)=>{var u,d;const e=o.get(r.ICommandService),s=o.get(r.IUniverInstanceService);let a=s.getCurrentUniverSheetInstance().getUnitId(),i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return t&&(a=(u=t.unitId)!=null?u:a,i=(d=t.subUnitId)!=null?d:i),new Promise(l=>{setTimeout(()=>{const c=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},n);l(c)},Us)})}},Bt=(o,t)=>{const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("universheet is null error!");const a={},i=s.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const l=u[d];for(let c=l.startColumn;c<l.endColumn+1;c++){const m=i.getColumnOrCreate(c);a[c]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Re={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(o,t)=>{var d;const e=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=t.ranges;for(let l=0;l<u.length;l++){const c=u[l];for(let m=c.startColumn;m<c.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-c.startColumn])!=null?d:a}}return!0}},Vt={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=o.get(r.ICommandService),a=o.get(r.IUndoRedoService),u=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),d=u.getActiveSheet(),l=u.getUnitId(),c=d.getSheetId(),{anchorCol:m,deltaX:g}=t,h=d.getColumnWidth(m)+g,C=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,f=e.filter(U=>U.range.rangeType===r.RANGE_TYPE.COLUMN),R=C?r.RANGE_TYPE.ALL:f.some(({range:U})=>{const{startColumn:T,endColumn:N}=U;return T<=m&&m<=N})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let w;if(R===r.RANGE_TYPE.ALL){const U=d.getRowCount(),T=new Array(d.getColumnCount()).fill(void 0).map((N,H)=>({startRow:0,endRow:U-1,startColumn:H,endColumn:H}));w={subUnitId:c,unitId:l,colWidth:h,ranges:T}}else R===r.RANGE_TYPE.COLUMN?w={subUnitId:c,unitId:l,ranges:f.map(U=>r.Rectangle.clone(U.range)),colWidth:h}:w={subUnitId:c,unitId:l,colWidth:h,ranges:[{startRow:0,endRow:d.getMaxRows()-1,startColumn:m,endColumn:m}]};const I=Bt(o,w),M=s.syncExecuteCommand(Re.id,w),{undos:p,redos:b}=o.get(S.SheetInterceptorService).onCommandExecute({id:Vt.id,params:w}),_=r.sequenceExecute([...b],s);return M&&_.result&&a.pushUndoRedo({unitID:l,undoMutations:[{id:Re.id,params:I},...p],redoMutations:[{id:Re.id,params:w},...b]}),!0}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(o,t)=>{const n=o.get(S.SelectionManagerService),e=o.get(r.ICommandService),s=o.get(r.IUndoRedoService),a=o.get(r.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance().getUnitId(),l={subUnitId:a.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),unitId:u,ranges:i,colWidth:t.value},c=Bt(o,l),m=e.syncExecuteCommand(Re.id,l),{undos:g,redos:v}=o.get(S.SheetInterceptorService).onCommandExecute({id:Lt.id,params:l}),h=r.sequenceExecute([...v],e);return m&&h.result?(s.pushUndoRedo({unitID:u,undoMutations:[{id:Re.id,params:c},...g],redoMutations:[{id:Re.id,params:l},...v]}),!0):!1}},xn=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},pe={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},qn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(o,t)=>{var f;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(r.ErrorService),i=s.getCurrentUniverSheetInstance().getUnitId();let u=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(u=(f=t.subUnitId)!=null?f:u);const d=s.getUniverSheetInstance(i);if(!d)return!1;const l=d.getSheetBySheetId(u);if(!l||l.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const m={unitId:i,subUnitId:u,hidden:r.BooleanNumber.TRUE},g=xn(o,m);return d.getSheets().filter(R=>R.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(a.emit("No visible sheet after you hide this."),!1):n.syncExecuteCommand(pe.id,m)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:pe.id,params:g}],redoMutations:[{id:pe.id,params:m}]}),!0):!1}},_s=(o,t)=>{const e=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance().getSheetBySheetId(t.subUnitId);if(e==null)throw new Error("worksheet is null error!");return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},dt={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(n==null)return!1;const e=n.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},jt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(o,t)=>{var h,C;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=o.get(S.SheetInterceptorService),i=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),d={subUnitId:t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),name:t.name,unitId:i},l=_s(o,d),c=a.onCommandExecute({id:jt.id,params:t}),m=[...(h=c.preRedos)!=null?h:[],{id:dt.id,params:d},...c.redos],g=[...(C=c.preUndos)!=null?C:[],{id:dt.id,params:l},...c.undos];return await r.sequenceExecute(m,n).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},bs=(o,t)=>({...r.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(o,t)=>{const n=o.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!n)return!1;const e=n.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Yn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=t.unitId||s.getCurrentUniverSheetInstance().getUnitId(),i=t.subUnitId||s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId(),u=s.getUniverSheetInstance(a);if(!u||!u.getSheetBySheetId(i))return!1;const c={fromOrder:u.getConfig().sheetOrder.indexOf(i),toOrder:t.order,unitId:a,subUnitId:i},m=bs(o,c);return n.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:Ke.id,params:m}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ts=2e3,Kn=(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<m+1;g++){const v=l.getRowOrCreate(g);d[g]=v.h}return{unitId:n,subUnitId:e,ranges:s,rowHeight:d}},Wt=(o,t)=>{const{unitId:n,subUnitId:e,ranges:s}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n).getSheetBySheetId(e),d={},l=u.getRowManager();for(const{startRow:c,endRow:m}of s)for(let g=c;g<=m;g++){const v=l.getRowOrCreate(g);d[g]=v.ia}return{unitId:n,subUnitId:e,ranges:s,autoHeightInfo:d}},Ds=(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e),d=[],l=u.getRowManager();for(const c of s){const{row:m}=c,{ah:g}=l.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:n,subUnitId:e,rowsAutoHeightInfo:d}},Me={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:s,rowHeight:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=d.getConfig().defaultRowHeight,c=d.getRowManager();for(const{startRow:g,endRow:v}of s)for(let h=g;h<=v;h++){const C=c.getRowOrCreate(h);typeof a=="number"?C.h=a:C.h=(m=a[h])!=null?m:l,C.h=Math.min(Ts,C.h)}return!0}},re={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(o,t)=>{var m;const{unitId:n,subUnitId:e,ranges:s,autoHeightInfo:a}=t,u=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const l=void 0,c=d.getRowManager();for(const{startRow:g,endRow:v}of s)for(let h=g;h<=v;h++){const C=c.getRowOrCreate(h);typeof a=="number"?C.ia=a:C.ia=(m=a[h-g])!=null?m:l}return!0}},Ft={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(o,t)=>{const{unitId:n,subUnitId:e,rowsAutoHeightInfo:s}=t,i=o.get(r.IUniverInstanceService).getUniverSheetInstance(n),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:l,autoHeight:c}of s){const m=d.getRowOrCreate(l);m.ah=c}return!0}},Jn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const a=o.get(r.IUniverInstanceService).getCurrentUniverSheetInstance(),i=a.getActiveSheet(),u=a.getUnitId(),d=i.getSheetId(),{anchorRow:l,deltaY:c}=t,g=i.getRowHeight(l)+c,v=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,h=e.filter(_=>_.range.rangeType===r.RANGE_TYPE.ROW),C=v?r.RANGE_TYPE.ALL:h.some(({range:_})=>{const{startRow:U,endRow:T}=_;return U<=l&&l<=T})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let f;if(C===r.RANGE_TYPE.ALL){const _=i.getRowCount(),U=new Array(i.getColumnCount()).fill(void 0).map((T,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:_-1}));f={subUnitId:d,unitId:u,rowHeight:g,ranges:U}}else C===r.RANGE_TYPE.ROW?f={subUnitId:d,unitId:u,ranges:h.map(_=>r.Rectangle.clone(_.range)),rowHeight:g}:f={subUnitId:d,unitId:u,rowHeight:g,ranges:[{startRow:l,endRow:l,startColumn:0,endColumn:i.getMaxColumns()-1}]};const R=Kn(o,f),w={unitId:u,subUnitId:d,ranges:f.ranges,autoHeightInfo:r.BooleanNumber.FALSE},I=Wt(o,w),M=o.get(r.ICommandService),p=o.get(r.IUndoRedoService);return r.sequenceExecute([{id:Me.id,params:f},{id:re.id,params:w}],M).result?(p.pushUndoRedo({unitID:u,undoMutations:[{id:Me.id,params:R},{id:re.id,params:I}],redoMutations:[{id:Me.id,params:f},{id:re.id,params:w}]}),!0):!1}},Xn={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(o,t)=>{const n=o.get(S.SelectionManagerService),e=o.get(r.ICommandService),s=o.get(r.IUndoRedoService),a=o.get(r.IUniverInstanceService),i=n.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=a.getCurrentUniverSheetInstance(),d=u.getUnitId(),l=u.getActiveSheet().getSheetId(),c={subUnitId:l,unitId:d,ranges:i,rowHeight:t.value},m=Kn(o,c),g={unitId:d,subUnitId:l,ranges:c.ranges,autoHeightInfo:r.BooleanNumber.FALSE},v=Wt(o,g);return r.sequenceExecute([{id:Me.id,params:c},{id:re.id,params:g}],e).result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:m},{id:re.id,params:v}],redoMutations:[{id:Me.id,params:c},{id:re.id,params:g}]}),!0):!1}},Ht={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(S.SelectionManagerService),a=o.get(r.IUniverInstanceService),i=a.getCurrentUniverSheetInstance().getUnitId(),u=a.getCurrentUniverSheetInstance().getActiveSheet(),d=u.getSheetId(),{anchorRow:l}=t!=null?t:{},c=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:u.getMaxColumns()-1}]:s.getSelectionRanges();if(!(c!=null&&c.length))return!1;const m={unitId:i,subUnitId:d,ranges:c,autoHeightInfo:r.BooleanNumber.TRUE},g=Wt(o,m),v=n.syncExecuteCommand(re.id,m),{undos:h,redos:C}=o.get(S.SheetInterceptorService).onCommandExecute({id:Ht.id,params:m}),f=r.sequenceExecute([...C],n);return v&&f.result?(e.pushUndoRedo({unitID:i,undoMutations:[{id:re.id,params:g},...h],redoMutations:[{id:re.id,params:m},...C]}),!0):!1}},Zn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(o,t)=>{var C;const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService),s=o.get(r.IUniverInstanceService),a=s.getCurrentUniverSheetInstance().getUnitId();let i=s.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();t&&(i=(C=t.value)!=null?C:i);const u=s.getUniverSheetInstance(a);if(!u)return!1;const d=u.getSheetBySheetId(i);if(!d||d.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const c={unitId:a,subUnitId:i,hidden:r.BooleanNumber.FALSE},m=xn(o,c),g=n.syncExecuteCommand(pe.id,c),v={unitId:a,subUnitId:i},h=n.syncExecuteCommand(Ye.id,v);return g&&h?(e.pushUndoRedo({unitID:a,undoMutations:[{id:pe.id,params:m}],redoMutations:[{id:pe.id,params:c}]}),!0):!1}},Qn=o=>{const t=new r.ObjectMatrix;return o.forEach(n=>{r.Range.foreach(n,(e,s)=>{t.setValue(e,s,1)})}),t.forValue((n,e)=>{const s=t.getValue(n-1,e);s&&t.setValue(n,e,s+1)}),t},eo=o=>{const t=o;return t.forValue((n,e)=>{const s=o.getValue(n-1,e);s&&t.setValue(n,e,s+1)}),t},to=o=>{const t={area:0},n=(e,s)=>t.area<e?(t.area=e,t.range=s,!0):!1;return o.forValue((e,s,a)=>{let i=1,u=a;n(i*u,{startRow:e-u+1,endRow:e,startColumn:s,endColumn:s});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:s};for(let l=s-1;l>=0&&o.getValue(e,l);l--){u=Math.min(o.getValue(e,l)||0,u),i++;const c=u*i;d.startColumn=l,d.startRow=e-u+1,n(c,d)}}),t},Es=(o,t)=>(r.Range.foreach(t,(n,e)=>{o.realDeleteValue(n,e);let s=n+1,a=o.getValue(s,e)||0;for(;a>1;)o.setValue(s,e,a-1),s+=1,a=o.getValue(s,e)||0}),o),$t=o=>{const t=[];let n=to(o);for(;n.area>0;)n.range&&(t.push(n.range),Es(o,n.range)),n=to(o);return t},Gt=o=>{const t=Qn(o);return $t(t)};class Ns{constructor(){L(this,"_matrix",new r.ObjectMatrix)}add(...t){return t.forEach(n=>{r.Range.foreach(n,(e,s)=>{this._matrix.setValue(e,s,1)})}),this}subtract(...t){return t.forEach(n=>{r.Range.foreach(n,(e,s)=>{this._matrix.realDeleteValue(e,s)})}),this}merge(){const t=eo(this._matrix);return $t(t)}}const Os=(o,t,n="")=>o.reduce((e,s)=>{const a=s&&s[t];return typeof a!="string"?(console.warn(s,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(s)):e[n].push(s),e)},{}),As=(o=0)=>{let t=o;return function(){return t++}},De=j.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,De);const Ps=(o,t)=>{const n=o.get(De),{values:e,unitId:s,subUnitId:a}=t,i=[],u=[],d=n.getModel(s,a)||void 0;Object.keys(e).forEach(c=>{e[c].ranges.forEach(g=>{r.Range.foreach(g,(v,h)=>{const C=n.getValue(s,a,v,h,d);C?i.push({pattern:C.pattern,type:C.type,row:v,col:h}):u.push({startColumn:h,endColumn:h,startRow:v,endRow:v})})})});const l=[];if(i.length){const c=lt(s,a,i);Object.keys(c.values).forEach(m=>{const g=c.values[m];g.ranges=Gt(g.ranges)}),l.push({id:ct.id,params:lt(s,a,i)})}return u.length&&l.push({id:zt.id,params:{unitId:s,subUnitId:a,ranges:u}}),l},ct={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{values:n,refMap:e}=t,s=o.get(De),a=t.unitId,i=t.subUnitId,u=Object.keys(n).reduce((d,l)=>{const c=e[l],m=n[l].ranges;return c&&d.push({...c,ranges:m}),d},[]);return s.setValues(a,i,u),!0}},zt={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(o,t)=>{if(!t)return!1;const{unitId:n,subUnitId:e,ranges:s}=t;return o.get(De).deleteValues(n,e,s),!0}},ks=(o,t)=>{const n=o.get(De),{ranges:e,unitId:s,subUnitId:a}=t,i=[],u=n.getModel(s,a)||void 0;if(e.forEach(l=>{r.Range.foreach(l,(c,m)=>{const g=n.getValue(s,a,c,m,u);g&&i.push({pattern:g.pattern,type:g.type,row:c,col:m})})}),!i.length)return[];const d=lt(s,a,i);return Object.keys(d.values).forEach(l=>{const c=d.values[l];c.ranges=Gt(c.ranges)}),[{id:ct.id,params:d}]},lt=(o,t,n)=>{const e=Os(n,"pattern"),s={},a={},i=As();return Object.keys(e).forEach(u=>{const d=e[u],l=d[0],c=i();s[c]={pattern:u,type:l.type},d.forEach(m=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(r.cellToRange(m.row,m.col))})}),{unitId:o,subUnitId:t,refMap:s,values:a}},no={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},oo={id:"sheet.command.insert-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return n.syncExecuteCommand(te.SetDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.RemoveDefinedNameMutation.id,params:s}],redoMutations:[{id:te.SetDefinedNameMutation.id,params:s}]}),!0):!1}},so={id:"sheet.command.remove-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return n.syncExecuteCommand(te.RemoveDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.SetDefinedNameMutation.id,params:s}],redoMutations:[{id:te.RemoveDefinedNameMutation.id,params:s}]}),!0):!1}},ro={id:"sheet.command.set-defined-name",type:r.CommandType.COMMAND,handler:(o,t)=>{const n=o.get(r.ICommandService),e=o.get(r.IUndoRedoService);return t&&n.syncExecuteCommand(te.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:te.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:te.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},io={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},ao="maxCellsPerSheet",Bs=3e6;var Vs=Object.defineProperty,Ls=Object.getOwnPropertyDescriptor,js=(o,t,n,e)=>{for(var s=e>1?void 0:e?Ls(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Vs(t,n,s),s},uo=(o,t)=>(n,e)=>t(n,e,o);let mt=class extends r.Disposable{constructor(o,t){super(),this._commandService=o,this._configService=t,[W,Qe,wt,et,dn,nt,ot,Vt,Jn,In,fn,je,Ce,st,rt,Sn,vn,Le,Se,Rn,ye,Et,be,tt,Ve,Dt,_e,at,Ie,it,fe,Nt,Be,Un,F,Wn,Ln,jn,_n,Dn,We,bn,Tn,Nn,Fe,He,Lt,hs,An,we,Hn,Ue,x,Xn,kn,Ge,$e,En,Pn,Ot,Pt,J,zn,qe,Vn,Gn,$n,Fn,kt,Ye,Re,qn,pe,jt,dt,Yn,Ke,Ft,Me,Ht,re,Zn,ct,G,zt,no,oo,so,ro,io].forEach(n=>this.disposeWithMe(this._commandService.registerCommand(n))),this._configService.setConfig(ao,Bs)}};mt=js([r.OnLifecycle(r.LifecycleStages.Starting,mt),uo(0,r.ICommandService),uo(1,r.IConfigService)],mt);var Ws=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(o,t,n,e)=>{for(var s=e>1?void 0:e?Fs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Ws(t,n,s),s},$s=(o,t)=>(n,e)=>t(n,e,o);let gt=class extends r.Disposable{constructor(o){super(),this._commandService=o,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(o.id!==te.SetFormulaCalculationResultMutation.id)return;const t=o.params,{unitData:n,unitOtherData:e}=t,s=Object.keys(n),a=[];return s.forEach(u=>{const d=n[u];if(d==null)return!0;Object.keys(d).forEach(c=>{const m=d[c];if(m==null)return!0;const g={subUnitId:c,unitId:u,cellValue:m};a.push({id:x.id,params:g})})}),a.every(u=>this._commandService.executeCommand(u.id,u.params,{onlyLocal:!0}))}))}};gt=Hs([r.OnLifecycle(r.LifecycleStages.Ready,gt),$s(0,r.ICommandService)],gt);var Gs=Object.defineProperty,zs=Object.getOwnPropertyDescriptor,xs=(o,t,n,e)=>{for(var s=e>1?void 0:e?zs(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Gs(t,n,s),s},ht=(o,t)=>(n,e)=>t(n,e,o);let vt=class extends r.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._featureCalculationManagerService=t,this._currentUniverService=n,this._formulaDataModel=e}_initialize(){const o="test",t="workbook-01",n="sheet-0011",e={[t]:{[n]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[t]:{[n]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(o,{unitId:t,subUnitId:n,dependencyRanges:[{unitId:t,sheetId:n,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:s})})}};vt=xs([r.OnLifecycle(r.LifecycleStages.Ready,vt),ht(0,r.ICommandService),ht(1,te.IFeatureCalculationManagerService),ht(2,r.IUniverInstanceService),ht(3,j.Inject(te.FormulaDataModel))],vt);const P={MoveRangeCommandId:cn,InsertRowCommandId:hn,InsertColCommandId:Cn,RemoveColCommandId:yn,RemoveRowCommandId:pn,DeleteRangeMoveLeftCommandId:ln,DeleteRangeMoveUpCommandId:mn,InsertRangeMoveDownCommandId:rs,InsertRangeMoveRightCommandId:gn,MoveColsCommandId:wn,MoveRowsCommandId:Mn};var k=(o=>(o[o.Set=0]="Set",o[o.Delete=1]="Delete",o[o.HorizontalMove=2]="HorizontalMove",o[o.VerticalMove=3]="VerticalMove",o[o.Unknown=4]="Unknown",o))(k||{});const St=Number.MAX_SAFE_INTEGER,ge=o=>{const t={...o};return t.rangeType===r.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=St),t.rangeType===r.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=St),t.rangeType===r.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=St,t.startRow=0,t.endRow=St),t},oe=o=>({startRow:o.startColumn,endRow:o.endColumn,startColumn:o.startRow,endColumn:o.endRow}),Je=(o,t,n)=>{const e={...n},s={...t},a=(C,f)=>{const R=Math.max(C.start,f.start),w=Math.min(C.end,f.end);return w<R?null:{start:R,end:w}},i=C=>C.end-C.start+1,u=(C,f)=>({start:C.start-f.start,end:C.start-f.start+C.end-C.start}),d=(C,f)=>({start:f.start+C.start,end:f.start+C.start+C.end-C.start}),l=t.start>o.start;if(l){const C=Math.min(o.end,t.start)-o.start+1;s.start-=C,s.end-=C}const c=i(o),m=c,g=a(o,e),v=g&&i(g)>=i(e);if(o.end<e.start)e.start-=c,e.end-=c;else if(g){const C=i(g);if(v){const f=u(e,o),R=d(f,s);e.start=R.start,e.end=R.end}else g.start>o.start?l?(e.end-=C+c,e.start-=c):e.end-=C:l?e.end-=C:e.start>o.start&&e.end>o.end?(e.start-=c,e.end-=c+C):e.end-=C}const h=a(s,e);return v||(s.start<=e.start?(e.start+=m,e.end+=m):h&&(l?s.end<=e.start||s.start<=e.start&&s.end>=e.start?(e.start+=m,e.end+=m):s.start>=e.start&&s.start<=e.end&&(e.end+=m):e.start<s.start&&e.end>s.start?e.end+=m:(e.start>=s.end||e.start>=s.start&&e.start<=s.end)&&(e.end+=m,e.start+=m))),{step:e.start-n.start,length:i(e)-i(n)}},xt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const s=ge(n),a=ge(e),i=ge(t),u=Je({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:k.Delete}]:[{type:k.VerticalMove,step:u.step||0,length:u.length||0}]},qs=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startRow:s}=n,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(l,c)=>{u.setValue(l,c,1)}),u.moveRows(s,i,a),r.queryObjectMatrix(u,l=>l===1)},qt=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!e||!n)return[];const s=ge(n),a=ge(e),i=ge(t),u=Je({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:k.Delete}]:[{type:k.HorizontalMove,step:u.step||0,length:u.length||0}]},Ys=(o,t)=>{const{fromRange:n,toRange:e}=o.params||{};if(!n||!e)return[t];const{startColumn:s}=n,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,l)=>{u.setValue(d,l,1)}),u.moveColumns(s,i,a),r.queryObjectMatrix(u,d=>d===1)},co=(o,t)=>{var a,i;const n=(a=o.params)==null?void 0:a.toRange,e=(i=o.params)==null?void 0:i.fromRange;if(!n||!e)return[];const s=[];if(r.Rectangle.contains(n,t)&&s.push({type:k.Delete}),r.Rectangle.contains(e,t)){s.push({type:k.Delete});const u=r.Rectangle.getRelativeRange(t,e),d=r.Rectangle.getPositionRange(u,n);return[{type:k.Set,range:d}]}return s},Ks=(o,t)=>{var m,g;const n=(m=o.params)==null?void 0:m.toRange,e=(g=o.params)==null?void 0:g.fromRange;if(!n||!e)return[t];if(!r.Rectangle.intersects(e,t)&&!r.Rectangle.intersects(n,t))return[t];if(r.Rectangle.contains(e,t)){const v=r.Rectangle.getRelativeRange(t,e);return[r.Rectangle.getPositionRange(v,n)]}const s=new r.ObjectMatrix;r.Range.foreach(t,(v,h)=>{s.setValue(v,h,1)});const a=new r.ObjectMatrix,i=r.Rectangle.getIntersects(e,t);i&&r.Range.foreach(i,(v,h)=>{s.getValue(v,h)&&(s.setValue(v,h,void 0),a.setValue(v,h,1))});const u=n.startColumn-e.startColumn,d=n.startRow-e.startRow,l={startColumn:n.startColumn-u,endColumn:n.endColumn-u,startRow:n.startRow-d,endRow:n.endRow-d};return l&&r.Range.foreach(l,(v,h)=>{var R;const C=v+d,f=h+u;s.setValue(C,f,(R=a.getValue(v,h))!=null?R:0)}),r.queryObjectMatrix(s,v=>v===1)},Ee=(o,t)=>{const n=ge(o),e=ge(t),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn){const i=r.Rectangle.getIntersects(e,n);if(i)return{step:0,length:-s(i)}}if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn&&a(n)>=a(e))return null;if(e.startColumn>=n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn){const i=r.Rectangle.getIntersects(e,n);if(i){const u=-s(i);return{step:-(s(n)-s(i)),length:u}}}if(e.startColumn>n.endColumn)return{step:-s(n),length:0}}return{step:0,length:0}},Yt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(n,t);if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.HorizontalMove,step:i,length:u})}return e},Kt=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(oe(n),oe(t));if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.VerticalMove,step:i,length:u})}return e},Ne=(o,t)=>{const n=ge(o),e=ge(t),s=a=>a.endColumn-a.startColumn+1;if(n.startRow<=e.startRow&&n.endRow>=e.endRow){if(e.startColumn<n.startColumn&&e.endColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn<n.startColumn&&e.endColumn>=n.endColumn)return{step:0,length:s(n)};if(e.startColumn>=n.startColumn&&e.endColumn<=n.endColumn||e.startColumn>n.startColumn&&e.startColumn<=n.endColumn&&e.endColumn>n.endColumn||e.startColumn>=n.endColumn)return{step:s(n),length:0}}return{step:0,length:0}};function Js(o,t,n){const e=[];if(r.Rectangle.contains(t,n)&&e.push({type:k.Delete}),r.Rectangle.contains(o,n)){e.push({type:k.Delete});const s=r.Rectangle.getRelativeRange(n,o),a=r.Rectangle.getPositionRange(s,t);return[{type:k.Set,range:a}]}return e}const Jt=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(oe(n),oe(t)),{step:a,length:i}=s;return e.push({type:k.VerticalMove,step:a,length:i}),e},Xt=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(n,t),{step:a,length:i}=s;return e.push({type:k.HorizontalMove,step:a,length:i}),e},lo=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(oe(n),oe(t)),{step:a,length:i}=s;return e.push({type:k.VerticalMove,step:a,length:i}),e},Xs=(o,t)=>{var d;const n=(d=o.params)==null?void 0:d.range;if(!n)return[t];const e=n.endRow-n.startRow+1,s={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(l=>{r.Range.foreach(l,(c,m)=>{u.setValue(c,m,1)})}),i&&r.Range.foreach(i,(l,c)=>{u.setValue(l+e,c,1)}),r.queryObjectMatrix(u,l=>l===1)},mo=(o,t)=>{var u;const n=(u=o.params)==null?void 0:u.range;if(!n)return[];const e=[],s=Ne(n,t),{step:a,length:i}=s;return e.push({type:k.HorizontalMove,step:a,length:i}),e},Zs=(o,t)=>{var d;const n=(d=o.params)==null?void 0:d.range;if(!n)return[t];const e=n.endColumn-n.startColumn+1,s={...n,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(l=>{r.Range.foreach(l,(c,m)=>{u.setValue(c,m,1)})}),i&&r.Range.foreach(i,(l,c)=>{u.setValue(l,c+e,1)}),r.queryObjectMatrix(u,l=>l===1)},go=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(n,t);if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.HorizontalMove,step:i,length:u})}return e},Qs=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={startRow:n.startRow,endRow:n.endRow,startColumn:n.startColumn,endColumn:Number.POSITIVE_INFINITY},s=n.endColumn-n.startColumn+1,a=r.Rectangle.getIntersects(n,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,m)=>{d.setValue(c,m-s,1)}),a&&r.Range.foreach(a,(c,m)=>{d.setValue(c,m-s,0)}),i.forEach(c=>{r.Range.foreach(c,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,c=>c===1)},ho=(o,t)=>{var a;const n=(a=o.params)==null?void 0:a.range;if(!n)return[];const e=[],s=Ee(oe(n),oe(t));if(!s)e.push({type:k.Delete});else{const{step:i,length:u}=s;e.push({type:k.VerticalMove,step:i,length:u})}return e},er=(o,t)=>{var l;const n=(l=o.params)==null?void 0:l.range;if(!n)return[t];const e={...n,startRow:n.startRow,endRow:Number.POSITIVE_INFINITY},s=n.endRow-n.startRow+1,a=r.Rectangle.getIntersects(n,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(c,m)=>{d.setValue(c-s,m,1)}),a&&r.Range.foreach(a,(c,m)=>{d.setValue(c-s,m,0)}),i.forEach(c=>{r.Range.foreach(c,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,c=>c===1)},Oe=(o,t)=>{let n={...t};return o.forEach(e=>{switch(e.type){case k.Delete:{n=null;break}case k.HorizontalMove:{if(!n)return;n.startColumn+=e.step,n.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!n)return;n.startRow+=e.step,n.endRow+=e.step+(e.length||0);break}case k.Set:{n=e.range;break}}}),n&&(n.endColumn<n.startColumn||n.endRow<n.startRow)?null:n},tr=(o,t)=>{let n=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{n=go(t,o);break}case P.DeleteRangeMoveUpCommandId:{n=ho(t,o);break}case P.InsertColCommandId:{n=Xt(t,o);break}case P.InsertRangeMoveDownCommandId:{n=lo(t,o);break}case P.InsertRangeMoveRightCommandId:{n=mo(t,o);break}case P.InsertRowCommandId:{n=Jt(t,o);break}case P.MoveColsCommandId:{n=qt(t,o);break}case P.MoveRangeCommandId:{n=co(t,o);break}case P.MoveRowsCommandId:{n=xt(t,o);break}case P.RemoveColCommandId:{n=Yt(t,o);break}case P.RemoveRowCommandId:{n=Kt(t,o);break}}return Oe(n,o)},nr=(o,t)=>{let n=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return Qs(t,o);case P.DeleteRangeMoveUpCommandId:return er(t,o);case P.InsertRangeMoveDownCommandId:return Xs(t,o);case P.InsertRangeMoveRightCommandId:return Zs(t,o);case P.InsertColCommandId:{n=Xt(t,o);break}case P.InsertRowCommandId:{n=Jt(t,o);break}case P.MoveColsCommandId:return Ys(t,o);case P.MoveRangeCommandId:return Ks(t,o);case P.MoveRowsCommandId:return qs(t,o);case P.RemoveColCommandId:{n=Yt(t,o);break}case P.RemoveRowCommandId:{n=Kt(t,o);break}}return Oe(n,o)};function or(o,t){const{id:n,params:e}=t;let s={length:0,step:0,type:k.Unknown};switch(n){case Be.id:s.type=k.Delete;break;case _e.id:s=Je({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:o.startRow,end:o.endRow}),s.type=k.VerticalMove;break;case be.id:s=Je({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:o.startColumn,end:o.endColumn});break;case Ie.id:s=Ee(e.range,o),s?s.type=k.HorizontalMove:s={step:0,length:0,type:k.Delete};break;case fe.id:s=Ee(oe(e.range),oe(o)),s?s.type=k.VerticalMove:s={step:0,length:0,type:k.Delete};break;case Se.id:s=Ne(oe(e.range),oe(o)),s.type=k.VerticalMove;break;case Ce.id:s=Ne(e.range,o),s.type=k.HorizontalMove;break;case Ve.id:s=Js(new r.ObjectMatrix(e.from).getRange(),new r.ObjectMatrix(e.to).getRange(),o);break}return s?Array.isArray(s)?Oe(s,o):Oe([s],o):o}var sr=Object.defineProperty,rr=Object.getOwnPropertyDescriptor,ir=(o,t,n,e)=>{for(var s=e>1?void 0:e?rr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&sr(t,n,s),s},Ct=(o,t)=>(n,e)=>t(n,e,o);const ar=r.createInterceptorKey("MERGE_REDO"),ur=r.createInterceptorKey("MERGE_UNDO");class dr extends r.Disposable{constructor(t,n,e,s){super(),this._unitId=t,this._subUnitId=n,this._range=e,this._callback=s}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const n=or(this._range,t);if(n&&r.Rectangle.equals(n,this._range))return!1;const e=this._range;this._range=n,this._callback(e,n)}}S.RefRangeService=class extends r.Disposable{constructor(n,e,s,a){super();L(this,"interceptor",new r.InterceptorManager({MERGE_REDO:ar,MERGE_UNDO:ur}));L(this,"_watchRanges",new Set);L(this,"_refRangeManagerMap",new Map);L(this,"_serializer",cr());L(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:n=>{const e=this._univerInstanceService.getCurrentUniverSheetInstance().getActiveSheet(),s=vo(this._univerInstanceService),a=So(this._univerInstanceService),d=((()=>{switch(n.id){case P.MoveColsCommandId:{const v=n.params,h=Math.min(v.fromRange.startColumn,v.toRange.startColumn);return this._checkRange([{...v.fromRange,startColumn:h,endColumn:e.getColumnCount()-1}],s,a)}case P.MoveRowsCommandId:{const v=n.params,h=Math.min(v.fromRange.startRow,v.toRange.startRow);return this._checkRange([{...v.fromRange,startRow:h,endRow:e.getRowCount()-1}],s,a)}case P.MoveRangeCommandId:{const v=n;return this._checkRange([v.params.fromRange,v.params.toRange],s,a)}case P.InsertRowCommandId:{const C={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.InsertColCommandId:{const h=n.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.RemoveRowCommandId:{const C={startRow:n.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.RemoveColCommandId:{const h=n.params.range.startColumn,C={startRow:0,endRow:e.getRowCount()-1,startColumn:h,endColumn:e.getColumnCount()-1};return this._checkRange([C],s,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const h=n.params.range||Co(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:h.endColumn,endRow:e.getRowCount()-1};return this._checkRange([C],s,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const h=n.params.range||Co(this._selectionManagerService)[0],C={startRow:h.startRow,startColumn:h.startColumn,endColumn:e.getColumnCount()-1,endRow:h.endRow};return this._checkRange([C],s,a)}}})()||[]).reduce((v,h)=>{const C=h(n);return v.push(C),v},[]).reduce((v,h)=>{var C,f;return v.redos.push(...h.redos),v.undos.push(...h.undos),v.preRedos.push(...(C=h.preRedos)!=null?C:[]),v.preUndos.push(...(f=h.preUndos)!=null?f:[]),v},{redos:[],undos:[],preUndos:[],preRedos:[]}),l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:c,undos:g,preRedos:l,preUndos:m}}})});L(this,"_checkRange",(n,e,s)=>{const a=fo(e,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(l=>{const c=i.get(l),m=this._serializer.deserialize(l);n.some(g=>r.Rectangle.intersects(g,m))&&c&&c.forEach(g=>{u.add(g)})}),[...u]}return[]});L(this,"registerRefRange",(n,e,s,a)=>{const i=s||vo(this._univerInstanceService),u=a||So(this._univerInstanceService),d=fo(i,u),l=this._serializer.serialize(n);let c=this._refRangeManagerMap.get(d);c||(c=new Map,this._refRangeManagerMap.set(d,c));const m=c.get(l);return m?m.add(e):c.set(l,new Set([e])),r.toDisposable(()=>{const g=c.get(l);g&&(g.delete(e),g.size||(c.delete(l),c.size||this._refRangeManagerMap.delete(d)))})});this._commandService=n,this._sheetInterceptorService=e,this._univerInstanceService=s,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(n,e,s,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(c=>{if(c.type!==r.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(c)}));const u=new dr(n,e,s,a);this._watchRanges.add(u);const d=r.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),l=this.disposeWithMe(d);return r.toDisposable(()=>{l.dispose(),d.dispose()})}},S.RefRangeService=ir([r.OnLifecycle(r.LifecycleStages.Ready,S.RefRangeService),Ct(0,r.ICommandService),Ct(1,j.Inject(S.SheetInterceptorService)),Ct(2,j.Inject(r.IUniverInstanceService)),Ct(3,j.Inject(S.SelectionManagerService))],S.RefRangeService);function vo(o){return o.getCurrentUniverSheetInstance().getUnitId()}function So(o){return o.getCurrentUniverSheetInstance().getActiveSheet().getSheetId()}function Co(o){return o.getSelectionRanges()||[]}function fo(o,t){return`${o}_${t}`}function cr(){const o=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:n=>{const e=o.reduce((a,i,u)=>(a[String(u)]=i,a),{});return n.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:n=>o.reduce((e,s,a)=>{const i=n[s];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var lr=Object.defineProperty,mr=Object.getOwnPropertyDescriptor,gr=(o,t,n,e)=>{for(var s=e>1?void 0:e?mr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&lr(t,n,s),s},ze=(o,t)=>(n,e)=>t(n,e,o);const hr=[Ce.id,Se.id,Ie.id,fe.id],vr=[_e.id,be.id];function Io(o,t){let n=o;if(t!==void 0){const e=[];for(let s=0;s<n.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=n[s];if(t===r.Dimension.ROWS)for(let l=a;l<=i;l++){const c={startRow:l,endRow:l,startColumn:u,endColumn:d};e.push(c)}else if(t===r.Dimension.COLUMNS)for(let l=u;l<=d;l++){const c={startRow:a,endRow:i,startColumn:l,endColumn:l};e.push(c)}}n=e}return n}S.MergeCellController=class extends r.Disposable{constructor(n,e,s,a,i,u){super();L(this,"disposableCollection",new r.DisposableCollection);this._commandService=n,this._refRangeService=e,this._univerInstanceService=s,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const n=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case Qe.id:case et.id:{const s=n._univerInstanceService.getCurrentUniverSheetInstance(),a=s.getUnitId(),i=s.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,l=n._selectionManagerService.getSelectionRanges();if(l&&l.length>0&&l.some(m=>d.some(g=>r.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:l},g=ne(n._injector,m),v=[{id:F.id,params:m}],h=[{id:W.id,params:g}];return{redos:v,undos:h}}}}return{redos:[],undos:[]}}})}refRangeHandle(n,e,s){switch(n.id){case P.MoveColsCommandId:{const a=n.params;return this._handleMoveColsCommand(a,e,s)}case P.MoveRowsCommandId:{const a=n.params;return this._handleMoveRowsCommand(a,e,s)}case Le.id:{const a=n.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertRowCommand(a,i,u)}case je.id:{const a=n.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertColCommand(a,i,u)}case at.id:{const a=n.params;return this._handleRemoveColCommand(a,e,s)}case it.id:{const a=n.params;return this._handleRemoveRowCommand(a,e,s)}case tt.id:{const a=n.params;return this._handleMoveRangeCommand(a,e,s)}case rt.id:{const a=n.params;return this._handleInsertRangeMoveRightCommand(a,e,s)}case st.id:{const a=n.params;return this._handleInsertRangeMoveDownCommand(a,e,s)}case ot.id:{const a=n.params;return this._handleDeleteRangeMoveUpCommand(a,e,s)}case nt.id:{const a=n.params;return this._handleDeleteRangeMoveLeftCommand(a,e,s)}}return{redos:[],undos:[]}}_onRefRangeChange(){const n=(a,i)=>{const u=this._univerInstanceService.getUniverSheetInstance(a);if(!u)return;const d=u==null?void 0:u.getSheetBySheetId(i);if(!d)return;this.disposableCollection.dispose();const l=d.getMergeData(),c=m=>this.refRangeHandle(m,a,i);l.forEach(m=>{this.disposableCollection.add(this._refRangeService.registerRefRange(m,c,a,i))})};this.disposeWithMe(this._commandService.onCommandExecuted(a=>{if(a.id===kt.id){const i=a.params,u=i.subUnitId,d=i.unitId;if(!u||!d)return;n(d,u)}if(a.id===W.id){const i=a.params,u=i.subUnitId,d=i.unitId;if(!u||!d)return;n(i.unitId,i.subUnitId)}}));const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=e.getActiveSheet();n(e.getUnitId(),s.getSheetId())}_handleMoveRowsCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=n,{startRow:m,endRow:g}=c;if(u.forEach(C=>{if(m<=C.startRow&&g>=C.endRow){d.ranges.push(C);const f=xt({id:P.MoveRowsCommandId,params:n},C),R=Oe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const v=ne(this._injector,d),h=ce(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:v}]}}_handleMoveColsCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},l={unitId:e,subUnitId:s,ranges:[]},{fromRange:c}=n,{startColumn:m,endColumn:g}=c;if(u.forEach(C=>{if(m<=C.startColumn&&g>=C.endColumn){d.ranges.push(C);const f=qt({id:P.MoveColsCommandId,params:n},C),R=Oe(f,C);R&&l.ranges.push(R)}}),d.ranges.length===0)return this._handleNull();const v=ne(this._injector,d),h=ce(this._injector,l);return{redos:[{id:F.id,params:d},{id:W.id,params:l}],undos:[{id:F.id,params:h},{id:W.id,params:v}]}}_handleMoveRangeCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(h=>r.Rectangle.intersects(h,n.fromRange)),l=u.filter(h=>r.Rectangle.intersects(h,n.toRange)),c=d.map(h=>r.Rectangle.getRelativeRange(h,n.fromRange)).map(h=>r.Rectangle.getPositionRange(h,n.toRange)),m=Io(c).filter(h=>!u.some(C=>r.Rectangle.equals(h,C))),g=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:m}}],v=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:m}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:l}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:d}}];return{redos:g,undos:v}}_handleInsertRowCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const{range:u}=n,{startRow:d,endRow:l}=u,c=r.Tools.deepClone(i.getMergeData()).reduce((w,I)=>(d>I.startRow&&d<=I.endRow&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((w,I)=>{if(d>I.startRow&&d<=I.endRow){const M=l-d+1;I.endRow+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:v}];return{redos:f,undos:R}}_handleInsertColCommand(n,e,s){const{range:a}=n,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const u=me(i,s);if(!u)return this._handleNull();const{startColumn:d,endColumn:l}=a,c=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>(d>I.startColumn&&d<=I.endColumn&&w.push(I),w),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((w,I)=>{if(d>I.startColumn&&d<=I.endColumn){const M=l-d+1;I.endColumn+=M,this._checkIsMergeCell(I)&&w.push(I)}return w},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:F.id,params:C},{id:W.id,params:v}];return{redos:f,undos:R}}_handleRemoveColCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const{range:u}=n,{startColumn:d,endColumn:l}=u,c=r.Tools.deepClone(i.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(u,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(u,p)){if(d<=p.startColumn&&l>=p.endColumn)return M;d>=p.startColumn&&l<=p.endColumn?p.endColumn-=l-d+1:d<p.startColumn?(p.startColumn=d,p.endColumn-=l-d+1):l>p.endColumn&&(p.endColumn=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:v}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleRemoveRowCommand(n,e,s){const{range:a}=n,i=le(this._univerInstanceService,e);if(!i)return this._handleNull();const u=me(i,s);if(!u)return this._handleNull();const{startRow:d,endRow:l}=a,c=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>(r.Rectangle.intersects(a,p)&&M.push(p),M),[]);if(c.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((M,p)=>{if(r.Rectangle.intersects(a,p)){if(d<=p.startRow&&l>=p.endRow)return M;d>=p.startRow&&l<=p.endRow?p.endRow-=l-d+1:d<p.startRow?(p.startRow=d,p.endRow-=l-d+1):l>p.endRow&&(p.endRow=d-1),this._checkIsMergeCell(p)&&M.push(p)}return M},[]),g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g}],R=[{id:W.id,params:h}],w=[{id:F.id,params:C}],I=[{id:W.id,params:v}];return{preUndos:w,undos:I,preRedos:f,redos:R}}_handleInsertRangeMoveRightCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxColumns()-1,l=i.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn+_,endRow:f.endRow,endColumn:f.endColumn+_})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:v},{id:F.id,params:C}]}}_handleInsertRangeMoveDownCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxRows()-1,l=i.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:b}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const T=b-I+1;m.push({startRow:w.startRow+T,startColumn:w.startColumn,endRow:w.endRow+T,endColumn:w.endColumn})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:v},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveUpCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxRows()-1,l=i.getMergeData(),c=[],m=[];l.forEach(w=>{const{startRow:I,startColumn:M,endColumn:p,endRow:b}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:d,endColumn:p},w)&&(c.push(w),r.Rectangle.contains({startRow:I,startColumn:M,endRow:d,endColumn:p},w))){const T=b-I+1,N=r.Rectangle.moveVertical(w,-T);m.push(N)}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h),f=[{id:F.id,params:g},{id:W.id,params:h}],R=[{id:W.id,params:v},{id:F.id,params:C}];return{redos:f,undos:R}}_handleDeleteRangeMoveLeftCommand(n,e,s){const a=le(this._univerInstanceService,e);if(!a)return this._handleNull();const i=me(a,s);if(!i)return this._handleNull();const u=n.range,d=i.getMaxColumns()-1,l=i.getMergeData(),c=[],m=[];l.forEach(f=>{const{startRow:R,endRow:w,startColumn:I,endColumn:M}=u;if(r.Rectangle.intersects({startRow:R,startColumn:I,endRow:w,endColumn:d},f)&&(c.push(f),r.Rectangle.contains({startRow:R,startColumn:I,endRow:w,endColumn:d},f))){const _=M-I+1;m.push({startRow:f.startRow,startColumn:f.startColumn-_,endRow:f.endRow,endColumn:f.endColumn-_})}});const g={unitId:e,subUnitId:s,ranges:c},v=ne(this._injector,g),h={unitId:e,subUnitId:s,ranges:m},C=ce(this._injector,h);return{redos:[{id:F.id,params:g},{id:W.id,params:h}],undos:[{id:W.id,params:v},{id:F.id,params:C}]}}_checkIsMergeCell(n){return!(n.startRow===n.endRow&&n.startColumn===n.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(vr.includes(n.id)){if(!n.params)return;const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const s=e.getSheetBySheetId(n.params.subUnitId);if(!s)return;const{sourceRange:a,targetRange:i}=n.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,l=u?a.startRow:a.startColumn,c=u?i.startRow:i.startColumn,m=s.getConfig().mergeData,g=[];m.forEach(f=>{let{startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p}=f;r.Rectangle.intersects(f,a)||(u?l<R&&c>w?(R-=d,w-=d):l>w&&c<=R&&(R+=d,w+=d):l<I&&c>M?(I-=d,M-=d):l>M&&c<=I&&(I+=d,M+=d)),f.startRow===f.endRow&&f.startColumn===f.endColumn||g.push({startRow:R,endRow:w,startColumn:I,endColumn:M,rangeType:p})}),s.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:v,subUnitId:h}=n.params,C=f=>this.refRangeHandle(f,v,h);g.forEach(f=>{this.disposableCollection.add(this._refRangeService.registerRefRange(f,C,v,h))})}if(hr.includes(n.id)){const e=this._univerInstanceService.getUniverSheetInstance(n.params.unitId);if(!e)return;const s=e.getSheetBySheetId(n.params.subUnitId);if(!s)return;const a=s.getConfig().mergeData,i=n.params;if(!i)return;const{range:u}=i,d=n.id.includes("row"),l=n.id.includes("insert"),c=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-c+1,v=[];a.forEach(R=>{let{startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:b}=R;l?d?c<=w&&(w+=g,I+=g):c<=M&&(M+=g,p+=g):d?m<w&&(w-=g,I-=g):m<M&&(M-=g,p-=g),R.startRow===R.endRow&&R.startColumn===R.endColumn||v.push({startRow:w,endRow:I,startColumn:M,endColumn:p,rangeType:b})}),s.getConfig().mergeData=v,this.disposableCollection.dispose();const{unitId:h,subUnitId:C}=n.params,f=R=>this.refRangeHandle(R,h,C);v.forEach(R=>{this.disposableCollection.add(this._refRangeService.registerRefRange(R,f,h,C))})}}))}},S.MergeCellController=gr([r.OnLifecycle(r.LifecycleStages.Steady,S.MergeCellController),ze(0,j.Inject(r.ICommandService)),ze(1,j.Inject(S.RefRangeService)),ze(2,j.Inject(r.IUniverInstanceService)),ze(3,j.Inject(j.Injector)),ze(4,j.Inject(S.SheetInterceptorService)),ze(5,j.Inject(S.SelectionManagerService))],S.MergeCellController);function le(o,t){return t?o.getUniverSheetInstance(t):o.getCurrentUniverSheetInstance()}function me(o,t){return t?o.getSheetBySheetId(t):o.getActiveSheet()}const Sr={sheets:{sheetCopy:"(Copy)",sheet:"Sheet"}},Ro={sheets:{sheetCopy:"(副本)",sheet:"工作表"}};var Cr=Object.defineProperty,fr=Object.getOwnPropertyDescriptor,Ir=(o,t,n,e)=>{for(var s=e>1?void 0:e?fr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Cr(t,n,s),s},ft=(o,t)=>(n,e)=>t(n,e,o);const Mo="SHEET_NUMFMT_PLUGIN",Rr=24*60*60*1e3;S.NumfmtService=class extends r.Disposable{constructor(n,e,s,a){super();L(this,"_numfmtModel",new Map);L(this,"_refAliasModel",new Map);L(this,"_modelReplace$",new Pe.Subject);L(this,"modelReplace$",this._modelReplace$.asObservable());this._commandService=n,this._resourceManagerService=e,this._univerInstanceService=s,this._logService=a,this._initModel(),this.disposeWithMe(r.toDisposable(()=>{this._numfmtModel.clear(),this._refAliasModel.clear()}))}_initModel(){const n=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,Mo,{toJson:i=>this._toJson(i),parseJson:i=>this._parseJson(i),onChange:(i,u)=>{const{model:d,refModel:l}=u;if(d){const c=Object.keys(d).reduce((m,g)=>(m.set(g,new r.ObjectMatrix(d[g])),m),new Map);this._numfmtModel.set(i,c)}l&&this._refAliasModel.set(i,new r.RefAlias(l,["pattern","i"])),this._modelReplace$.next(i)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._numfmtModel.get(a)&&this._numfmtModel.delete(a),this._refAliasModel.get(a)&&this._refAliasModel.delete(a),this._resourceManagerService.disposePluginResource(a,Mo)}))),this._univerInstanceService.getAllUniverSheetsInstance().forEach(s=>n(s))}_toJson(n){const e=this._numfmtModel.get(n),s=this._refAliasModel.get(n);if(!e||!s)return"";const a=[...e.keys()].reduce((d,l)=>{const c=e.get(l);return d[l]=c.toJSON(),d},{}),i=s.getValues().filter(d=>d.count>0);return JSON.stringify({model:a,refModel:i})}_parseJson(n){try{return JSON.parse(n)}catch{return{model:{},refModel:[]}}}_setValue(n,e,s,a,i){let u=this.getModel(n,e);if(!u){const d=this._numfmtModel.get(n)||new Map,l=d.get(e)||new r.ObjectMatrix;d.set(e,l),this._numfmtModel.set(n,d),u=l}if(i)u.setValue(s,a,i);else if(u.realDeleteValue(s,a),!u.getSizeOf()){const l=this._numfmtModel.get(n);l==null||l.delete(e)}}_getUniqueRefId(n){const e=this._refAliasModel.get(n);if(!e)return"0";const s=e.getKeyMap("i");return`${Math.max(...s.map(i=>Number(i||0)),0)+1}`}getValue(n,e,s,a,i){const u=i||this.getModel(n,e);if(!u)return null;const d=this._refAliasModel.get(n),l=u.getValue(s,a);if(l&&d){const c=d.getValue(l==null?void 0:l.i,["i"]);return c?{pattern:c.pattern,type:c.type}:(this._logService.error("[Numfmt Service]:","RefAliasModel is not match model"),null)}return null}deleteValues(n,e,s){let a=this._refAliasModel.get(n);const i=this.getModel(n,e);a||(a=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,a)),s.forEach(u=>{r.Range.foreach(u,(d,l)=>{const c=this.getValue(n,e,d,l,i);if(c&&c.pattern){const m=a.getValue(c.pattern,["pattern"]);m&&m.count--}this._setValue(n,e,d,l,null)})})}setValues(n,e,s){const a=this.getModel(n,e);let i=this._refAliasModel.get(n);i||(i=new r.RefAlias([],["pattern","i"]),this._refAliasModel.set(n,i)),s.forEach(u=>{let d=i.getValue(u.pattern,["pattern"]);d||(d={count:0,i:this._getUniqueRefId(n),pattern:u.pattern,type:s[0].type},i.addValue(d)),u.ranges.forEach(l=>{r.Range.foreach(l,(c,m)=>{if(a){const g=this.getValue(n,e,c,m,a);if(g&&g.pattern){const v=i.getValue(g.pattern,["pattern"]);v&&v.count--}}this._setValue(n,e,c,m,{i:d.i}),d.count++})})})}getModel(n,e){const s=this._numfmtModel.get(n);return s==null?void 0:s.get(e)}getRefModel(n){return this._refAliasModel.get(n)}serialTimeToTimestamp(n,e=!0){const s=new Date("1900-01-01").getTime();return(n-(e?25569:24107))*Rr+s}},S.NumfmtService=Ir([ft(0,j.Inject(r.ICommandService)),ft(1,j.Inject(r.IResourceManagerService)),ft(2,j.Inject(r.IUniverInstanceService)),ft(3,j.Inject(r.ILogService))],S.NumfmtService);const wo="univer.sheet.editable";class Ae extends r.PermissionPoint{constructor(n,e){super();L(this,"id",wo);L(this,"value",!0);L(this,"unitID");this._unitId=n,this._subUnitId=e,this.unitID=n,this.id=`${wo}_${n}_${e}`}}var Mr=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,pr=(o,t,n,e)=>{for(var s=e>1?void 0:e?wr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Mr(t,n,s),s},Zt=(o,t)=>(n,e)=>t(n,e,o);S.SheetPermissionService=class extends r.Disposable{constructor(t,n,e){super(),this._permissionService=t,this._univerInstanceService=n,this._sheetInterceptorService=e,this._init(),this._interceptCommandPermission()}_init(){const t=this._univerInstanceService.getCurrentUniverSheetInstance(),n=t.getUnitId();t.getSheets().forEach(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.addPermissionPoint(t.getUnitId(),a)}),this.disposeWithMe(r.toDisposable(t.sheetCreated$.subscribe(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.addPermissionPoint(t.getUnitId(),a)}))),this.disposeWithMe(r.toDisposable(t.sheetDisposed$.subscribe(e=>{const s=e.getSheetId(),a=new Ae(n,s);this._permissionService.deletePermissionPoint(t.getUnitId(),a.id)})))}_interceptCommandPermission(){this.disposeWithMe(this._sheetInterceptorService.intercept(ke.PERMISSION,{priority:99,handler:(t,n,e)=>{const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=s==null?void 0:s.getActiveSheet(),i=s==null?void 0:s.getUnitId(),u=a==null?void 0:a.getSheetId();if(!i||!u)return!1;switch(n.id){case Ue.id:return this.getSheetEditable(i,u)}return e()}}))}getEditable$(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),u=new Ae(s,i);return this._permissionService.composePermission$(s,[r.UniverEditablePermissionPoint,u.id]).pipe(Do.map(([d,l])=>{const c=d.value&&l.value,m=r.getTypeFromPermissionItemList([d,l]);return{value:c,status:m}}))}getSheetEditable(t,n){const e=this._univerInstanceService.getCurrentUniverSheetInstance(),s=t||e.getUnitId(),a=e.getActiveSheet(),i=n||a.getSheetId(),u=new Ae(s,i);return this._permissionService.composePermission(s,[r.UniverEditablePermissionPoint,u.id]).every(d=>d.value)}setSheetEditable(t,n,e){const s=this._univerInstanceService.getCurrentUniverSheetInstance(),a=n||s.getUnitId(),i=s.getActiveSheet(),u=e||i.getSheetId(),d=new Ae(a,u);this._permissionService.updatePermissionPoint(a,d.id,t)}},S.SheetPermissionService=pr([r.OnLifecycle(r.LifecycleStages.Ready,S.SheetPermissionService),Zt(0,j.Inject(r.IPermissionService)),Zt(1,j.Inject(r.IUniverInstanceService)),Zt(2,j.Inject(S.SheetInterceptorService))],S.SheetPermissionService);function yr(o){const t=o.get(r.IUniverInstanceService),n=o.get(S.SheetPermissionService),e=t.getCurrentUniverSheetInstance().getUnitId(),s=t.getCurrentUniverSheetInstance().getActiveSheet().getSheetId();return new Pe.Observable(a=>{var u;const i=(u=n.getEditable$(e,s))==null?void 0:u.subscribe(d=>{a.next(!d.value)});return()=>{i==null||i.unsubscribe()}})}var Ur=Object.defineProperty,_r=Object.getOwnPropertyDescriptor,br=(o,t,n,e)=>{for(var s=e>1?void 0:e?_r(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Ur(t,n,s),s},It=(o,t)=>(n,e)=>t(n,e,o);const po="SHEET_DEFINED_NAME_PLUGIN";let Rt=class extends r.Disposable{constructor(o,t,n,e){super(),this._commandService=o,this._univerInstanceService=t,this._definedNamesService=n,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const o=s=>{const a=this._definedNamesService.getDefinedNameMap(s);return a?JSON.stringify(a):""},t=s=>{if(!s)return{};try{return JSON.parse(s)}catch{return{}}},n=s=>{const a=s.getUnitId();this.disposeWithMe(this._resourceManagerService.registerPluginResource(a,po,{toJson:i=>o(i),parseJson:i=>t(i),onChange:(i,u)=>{this._definedNamesService.registerDefinedNames(i,u)}}))};this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetAdded$.subscribe(n))),this.disposeWithMe(r.toDisposable(this._univerInstanceService.sheetDisposed$.subscribe(s=>{const a=s.getUnitId();this._resourceManagerService.disposePluginResource(a,po)})));const e=this._univerInstanceService.getCurrentUniverSheetInstance();n(e)}};Rt=br([r.OnLifecycle(r.LifecycleStages.Ready,Rt),It(0,r.ICommandService),It(1,r.IUniverInstanceService),It(2,te.IDefinedNamesService),It(3,r.IResourceManagerService)],Rt);var Tr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Er=(o,t,n,e)=>{for(var s=e>1?void 0:e?Dr(t,n):t,a=o.length-1,i;a>=0;a--)(i=o[a])&&(s=(e?i(t,n,s):i(s))||s);return e&&s&&Tr(t,n,s),s},Qt=(o,t)=>(n,e)=>t(n,e,o);const Nr="sheet";S.UniverSheetsPlugin=(en=class extends r.Plugin{constructor(t,n,e,s){super(Nr),this._config=t,this._commandService=n,this._localeService=e,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:Ro})}_initializeDependencies(t){var e;const n=[[Te],[S.SelectionManagerService],[S.RefRangeService],[S.SheetPermissionService],[De,{useClass:S.NumfmtService}],[S.SheetInterceptorService],[mt],[S.MergeCellController],[Rt]];(e=this._config)!=null&&e.notExecuteFormula||n.push([gt],[vt]),n.forEach(s=>{t.add(s)})}},L(en,"type",r.PluginType.Sheet),en),S.UniverSheetsPlugin=Er([Qt(1,r.ICommandService),Qt(2,j.Inject(r.LocaleService)),Qt(3,j.Inject(j.Injector))],S.UniverSheetsPlugin);const Or=[Me.id,re.id,Ft.id,Re.id,Ye.id,_e.id,be.id,Fe.id,He.id,Ge.id,$e.id,Ce.id,Se.id,Ie.id,fe.id],Ar=[x.id,Ve.id,F.id,W.id],Pr=1.5,kr="rgba(255,255,255, 0.01)";function Br(o){const t=o.getCurrentTheme(),n=new r.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:n,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:n,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:n,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function Vr(o){const{rangeWithCoord:t,primaryWithCoord:n,style:e}=o,s={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return n!=null&&(s.primary=yo(n)),s}function yo(o){const{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:s}=o,{startRow:a,startColumn:i,endRow:u,endColumn:d}=o.mergeInfo;return{actualRow:t,actualColumn:n,isMerged:e,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Lr(o,t,n){const e=Eo.getCellInfoInMergeData(o,t,n),s=r.makeCellRangeToRangeData(e);if(s)return{range:s,primary:e,style:null}}const jr=(o,t,n)=>{const s=o.get(S.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(s){const c=s[(s==null?void 0:s.length)-1].primary;if(c){const{actualColumn:m,actualRow:g}=c;let{startRow:v,startColumn:h,endRow:C,endColumn:f}=i[i.length-1];if(a===r.Dimension.COLUMNS){const M=n.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);M&&(f=M.endColumn,v=M.startRow,C=M.endRow)}else if(a===r.Dimension.ROWS){const M=n.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);M&&(C=M.endRow,h=M.startColumn,f=M.endColumn)}const R={startRow:v,startColumn:h,endRow:C,endColumn:f,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:v===g&&h===m},w=s.map((M,p,b)=>({range:M.range,style:null,primary:p===b.length-1?R:null})),I={unitId:u,subUnitId:d,pluginName:Y,selections:w};return{id:G.id,params:I}}return null}return null},Wr=(o,t)=>{const e=o.get(S.SelectionManagerService).getSelections(),{unitId:s,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:s,subUnitId:a,pluginName:Y,selections:[...e]};return{id:G.id,params:d}}return null};S.AddMergeRedoSelectionsOperationFactory=jr,S.AddMergeUndoMutationFactory=ce,S.AddMergeUndoSelectionsOperationFactory=Wr,S.AddWorksheetMergeMutation=W,S.BorderStyleManagerService=Te,S.COMMAND_LISTENER_SKELETON_CHANGE=Or,S.COMMAND_LISTENER_VALUE_CHANGE=Ar,S.ClearSelectionAllCommand=Qe,S.ClearSelectionContentCommand=wt,S.ClearSelectionFormatCommand=et,S.CopySheetCommand=dn,S.DeleteRangeMoveLeftCommand=nt,S.DeleteRangeMoveUpCommand=ot,S.DeltaColumnWidthCommand=Vt,S.DeltaRowHeightCommand=Jn,S.EffectRefRangId=P,S.EmptyMutation=no,S.INTERCEPTOR_POINT=ke,S.INumfmtService=De,S.InsertColAfterCommand=In,S.InsertColBeforeCommand=fn,S.InsertColCommand=je,S.InsertColMutation=Ce,S.InsertColMutationUndoFactory=Tt,S.InsertDefinedNameCommand=oo,S.InsertRangeMoveDownCommand=st,S.InsertRangeMoveRightCommand=rt,S.InsertRowAfterCommand=Sn,S.InsertRowBeforeCommand=vn,S.InsertRowCommand=Le,S.InsertRowMutation=Se,S.InsertRowMutationUndoFactory=bt,S.InsertSheetCommand=Rn,S.InsertSheetMutation=ye,S.InsertSheetUndoMutationFactory=pt,S.MAX_CELL_PER_SHEET_KEY=ao,S.MoveColsCommand=Et,S.MoveColsMutation=be,S.MoveRangeCommand=tt,S.MoveRangeMutation=Ve,S.MoveRowsCommand=Dt,S.MoveRowsMutation=_e,S.NORMAL_SELECTION_PLUGIN_NAME=Y,S.OperatorType=k,S.RangeMergeUtil=Ns,S.RemoveColCommand=at,S.RemoveColMutation=Ie,S.RemoveDefinedNameCommand=so,S.RemoveMergeUndoMutationFactory=ne,S.RemoveNumfmtMutation=zt,S.RemoveRowCommand=it,S.RemoveRowMutation=fe,S.RemoveSheetCommand=Nt,S.RemoveSheetMutation=Be,S.RemoveSheetUndoMutationFactory=un,S.RemoveWorksheetMergeCommand=Un,S.RemoveWorksheetMergeMutation=F,S.ResetBackgroundColorCommand=Wn,S.ResetTextColorCommand=Ln,S.SELECTION_CONTROL_BORDER_BUFFER_COLOR=kr,S.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Pr,S.ScrollToCellOperation=io,S.SelectionMoveType=nn,S.SetBackgroundColorCommand=jn,S.SetBoldCommand=fs,S.SetBorderBasicCommand=_n,S.SetBorderColorCommand=Dn,S.SetBorderCommand=We,S.SetBorderPositionCommand=bn,S.SetBorderStyleCommand=Tn,S.SetColHiddenCommand=Nn,S.SetColHiddenMutation=Fe,S.SetColVisibleMutation=He,S.SetColWidthCommand=Lt,S.SetDefinedNameCommand=ro,S.SetFontFamilyCommand=ws,S.SetFontSizeCommand=ps,S.SetFrozenCommand=An,S.SetFrozenMutation=we,S.SetFrozenMutationFactory=At,S.SetHorizontalTextAlignCommand=Hn,S.SetItalicCommand=Is,S.SetNumfmtMutation=ct,S.SetRangeValuesCommand=Ue,S.SetRangeValuesMutation=x,S.SetRangeValuesUndoMutationFactory=he,S.SetRowHeightCommand=Xn,S.SetRowHiddenCommand=kn,S.SetRowHiddenMutation=Ge,S.SetRowVisibleMutation=$e,S.SetSelectedColsVisibleCommand=En,S.SetSelectedRowsVisibleCommand=Pn,S.SetSelectionsOperation=G,S.SetSpecificColsVisibleCommand=Ot,S.SetSpecificRowsVisibleCommand=Pt,S.SetStrikeThroughCommand=Ms,S.SetStyleCommand=J,S.SetTabColorCommand=zn,S.SetTabColorMutation=qe,S.SetTextColorCommand=Vn,S.SetTextRotationCommand=Gn,S.SetTextWrapCommand=$n,S.SetUnderlineCommand=Rs,S.SetVerticalTextAlignCommand=Fn,S.SetWorksheetActivateCommand=kt,S.SetWorksheetActiveOperation=Ye,S.SetWorksheetColWidthMutation=Re,S.SetWorksheetColWidthMutationFactory=Bt,S.SetWorksheetHideCommand=qn,S.SetWorksheetHideMutation=pe,S.SetWorksheetNameCommand=jt,S.SetWorksheetNameMutation=dt,S.SetWorksheetOrderCommand=Yn,S.SetWorksheetOrderMutation=Ke,S.SetWorksheetRowAutoHeightMutation=Ft,S.SetWorksheetRowAutoHeightMutationFactory=Ds,S.SetWorksheetRowHeightMutation=Me,S.SetWorksheetRowIsAutoHeightCommand=Ht,S.SetWorksheetRowIsAutoHeightMutation=re,S.SetWorksheetShowCommand=Zn,S.SheetEditablePermission=Ae,S.alignToMergedCellsBorders=xe,S.convertPrimaryWithCoordToPrimary=yo,S.convertSelectionDataToRange=Vr,S.createTopMatrixFromMatrix=eo,S.createTopMatrixFromRanges=Qn,S.enUS=Sr,S.factoryRemoveNumfmtUndoMutation=ks,S.factorySetNumfmtUndoMutation=Ps,S.findAllRectangle=$t,S.followSelectionOperation=ve,S.getAddMergeMutationRangeByType=Io,S.getCellAtRowCol=Zo,S.getCurrentSheetDisabled$=yr,S.getInsertRangeMutations=Ut,S.getNormalSelectionStyle=Br,S.getPrimaryForRange=Z,S.getRemoveRangeMutations=_t,S.handleBaseInsertRange=Ne,S.handleBaseMoveRowsCols=Je,S.handleBaseRemoveRange=Ee,S.handleCommonDefaultRangeChangeWithEffectRefCommands=nr,S.handleDefaultRangeChangeWithEffectRefCommands=tr,S.handleDeleteRangeMoveLeft=go,S.handleDeleteRangeMoveUp=ho,S.handleDeleteRangeMutation=ts,S.handleIRemoveCol=Yt,S.handleIRemoveRow=Kt,S.handleInsertCol=Xt,S.handleInsertRangeMoveDown=lo,S.handleInsertRangeMoveRight=mo,S.handleInsertRangeMutation=es,S.handleInsertRow=Jt,S.handleMoveCols=qt,S.handleMoveRange=co,S.handleMoveRows=xt,S.rangeMerge=Gt,S.rotateRange=oe,S.runRefRangeMutations=Oe,S.setEndForRange=Qo,S.transformCellDataToSelectionData=Lr,S.transformCellsToRange=lt,S.zhCN=Ro,Object.defineProperty(S,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("@univerjs/core"),require("@wendellhu/redi"),require("rxjs"),require("@univerjs/engine-formula"),require("@univerjs/engine-numfmt"),require("rxjs/operators"),require("@univerjs/engine-render")):typeof define=="function"&&define.amd?define(["exports","@univerjs/core","@wendellhu/redi","rxjs","@univerjs/engine-formula","@univerjs/engine-numfmt","rxjs/operators","@univerjs/engine-render"],r):(h=typeof globalThis<"u"?globalThis:h||self,r(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.UniverEngineNumfmt,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,r,z,ke,se,Po,sn,ko){"use strict";var Yr=Object.defineProperty;var Kr=(h,r,z)=>r in h?Yr(h,r,{enumerable:!0,configurable:!0,writable:!0,value:z}):h[r]=z;var j=(h,r,z)=>(Kr(h,typeof r!="symbol"?r+"":r,z),z);var yt;var Ao=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Lo=(n,t,o,e)=>{for(var s=e>1?void 0:e?Vo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Ao(t,o,s),s},Bo=(n,t)=>(o,e)=>t(o,e,n);const X="normalSelectionPluginName";var rn=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(rn||{});h.SelectionManagerService=class{constructor(t){j(this,"_selectionInfo",new Map);j(this,"_currentSelection",null);j(this,"_selectionMoveStart$",new ke.Subject);j(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());j(this,"_selectionMoving$",new ke.Subject);j(this,"selectionMoving$",this._selectionMoving$.asObservable());j(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));j(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());j(this,"_dirty",!0);this._themeService=t}getCurrent(){return this._currentSelection}getLastByPlugin(t){if(this._currentSelection!=null)return this._getLastByParam({...this._currentSelection,pluginName:t})}changePlugin(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId},this._refresh(this._currentSelection))}changePluginNoRefresh(t){var o,e;this._currentSelection!=null&&(this._currentSelection={pluginName:t,unitId:(o=this._currentSelection)==null?void 0:o.unitId,sheetId:(e=this._currentSelection)==null?void 0:e.sheetId})}reset(){var t,o;this._currentSelection!=null&&(this._currentSelection={pluginName:X,unitId:(t=this._currentSelection)==null?void 0:t.unitId,sheetId:(o=this._currentSelection)==null?void 0:o.sheetId},this._selectionInfo.clear(),this._refresh(this._currentSelection))}resetPlugin(){this._currentSelection!=null&&(this._currentSelection.pluginName=X,this._refresh(this._currentSelection))}dispose(){this._selectionMoveEnd$.complete(),this._selectionMoveStart$.complete(),this._selectionMoving$.complete()}makeDirty(t=!0){this._dirty=t}refreshSelection(){this._currentSelection!=null&&this._refresh(this._currentSelection)}setCurrentSelection(t){this._dirty!==!1&&(this._currentSelection=t,this._refresh(t))}setCurrentSelectionNotRefresh(t){this._currentSelection=t}getSelectionInfo(){return this._selectionInfo}getSelectionDatasByParam(t){return this._getSelectionDatas(t)}getSelections(){return this._getSelectionDatas(this._currentSelection)}getSelectionRanges(){const t=this.getSelections();if(t!=null)return t.map(o=>o.range)}getFirst(){return this._getFirstByParam(this._currentSelection)}getLast(){return this._getLastByParam(this._currentSelection)}addNoRefresh(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t},!1)}add(t){this._currentSelection!=null&&this._addByParam({...this._currentSelection,selectionDatas:t})}replace(t,o=2){this._currentSelection!=null&&(this._replaceByParam({...this._currentSelection,selectionDatas:t}),o===0?this._refreshStart(this._currentSelection):o===1?this._refreshMoving(this._currentSelection):this._refresh(this._currentSelection))}replaceWithNoRefresh(t){this._currentSelection!=null&&this._replaceByParam({...this._currentSelection,selectionDatas:t})}clear(){this._currentSelection!=null&&this._clearByParam(this._currentSelection)}remove(t){this._currentSelection!=null&&this._removeByParam(t,this._currentSelection)}createDefaultAutoFillSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{},hasAutoFill:!0}}createCopyPasteSelection(){return{strokeWidth:1.5,stroke:this._themeService.getCurrentTheme().primaryColor,fill:"rgba(178, 178, 178, 0.10)",widgets:{},hasAutoFill:!1,strokeDash:8}}createDefaultSelection(){return{strokeWidth:2,stroke:"#FFF000",fill:"rgba(0, 0, 0, 0.2)",widgets:{tr:!0,tl:!0,br:!0,bl:!0},hasAutoFill:!1}}isOverlapping(){const t=this.getSelections();return t==null?!1:t.some(({range:o},e)=>t.some(({range:s},a)=>e===a?!1:o.startRow<=s.endRow&&o.endRow>=s.startRow&&o.startColumn<=s.endColumn&&o.endColumn>=s.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:s}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(s)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:s,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(s)||u.set(s,new Map);const d=u.get(s);if(!d.has(a))d.set(a,[...i]);else{let c=d.get(a);c==null&&(c=[],d.set(a,c)),c.push(...i)}o&&this._refresh({pluginName:e,unitId:s,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:s,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(s))u.set(s,a);else{let d=u.get(s);d==null&&(d=[],u.set(s,d)),d.splice(0,d.length,...a)}}_clearByParam(t){const o=this._getSelectionDatas(t);o==null||o.splice(0),this._refresh(t)}_removeByParam(t,o){const e=this._getSelectionDatas(o);e==null||e.splice(t,1),this._refresh(o)}},h.SelectionManagerService=Lo([Bo(0,z.Inject(r.ThemeService))],h.SelectionManagerService);const jo=r.createInterceptorKey("CELL_CONTENT"),Wo=r.createInterceptorKey("ROW_FILTERED"),Qe={CELL_CONTENT:jo,ROW_FILTERED:Wo};var Fo=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$o=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ho(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Fo(t,o,s),s},Go=(n,t)=>(o,e)=>t(o,e,n);h.SheetInterceptorService=class extends r.Disposable{constructor(o){super();j(this,"_interceptorsByName",new Map);j(this,"_commandInterceptors",[]);j(this,"_workbookDisposables",new Map);j(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Qe.CELL_CONTENT,{priority:-1,handler(e,s){const a=s.worksheet.getCellRaw(s.row,s.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,s)=>{var a,i;return((a=s.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(r.toDisposable(()=>r.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(s=>s.getMutations(o));return{preUndos:e.map(s=>{var a;return(a=s.preUndos)!=null?a:[]}).flat(),undos:e.map(s=>s.undos).flat(),preRedos:e.map(s=>{var a;return(a=s.preRedos)!=null?a:[]}).flat(),redos:e.map(s=>s.redos).flat()}}intercept(o,e){const s=o;this._interceptorsByName.has(s)||this._interceptorsByName.set(s,[]);const a=this._interceptorsByName.get(s);return a.push(e),this._interceptorsByName.set(s,a.sort((i,u)=>{var d,c;return((d=u.priority)!=null?d:0)-((c=i.priority)!=null?c:0)})),this.disposeWithMe(r.toDisposable(()=>r.remove(this._interceptorsByName.get(s),e)))}fetchThroughInterceptors(o){const e=o,s=this._interceptorsByName.get(e);return r.composeInterceptors(s||[])}_interceptWorkbook(o){const e=new r.DisposableCollection,s=o.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(c=>{const l=new r.DisposableCollection;a._worksheetDisposables.set(an(s,u),l),l.add(c.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(Qe.CELL_CONTENT)(u.getCellRaw(m,g),{unitId:s,subUnitId:d,row:m,col:g,worksheet:u,workbook:o})}})),l.add(c.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(Qe.ROW_FILTERED)(!1,{unitId:s,subUnitId:d,row:m,workbook:o,worksheet:u})}}))})};o.getSheets().forEach(u=>i(u)),e.add(r.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),e.add(r.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(s,u)))),e.add(r.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(s,u)))),this._workbookDisposables.set(s,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),s=this._workbookDisposables.get(e);s&&(s.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const s=an(o,e),a=this._worksheetDisposables.get(s);a&&(a.dispose(),this._worksheetDisposables.delete(s))}},h.SheetInterceptorService=$o([r.OnLifecycle(r.LifecycleStages.Starting,h.SheetInterceptorService),Go(0,r.IUniverInstanceService)],h.SheetInterceptorService);function an(n,t){return`${n}|${t.getSheetId()}`}const fe=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),c=i.getStyles(),l=new r.ObjectMatrix;return new r.ObjectMatrix(s).forValue((g,f,v)=>{const S=r.Tools.deepClone(d==null?void 0:d.getValue(g,f))||{},C=c.getStyleByCell(S),I=xo(C,v&&v.s?v.s:null);S.s=I,l.setValue(g,f,zo(S))}),{...t,options:{},cellValue:l.getMatrix()}};function zo(n){return n==null?null:(n.f===void 0&&(n.f=null),n.si===void 0&&(n.si=null),n.p===void 0&&(n.p=null),n.v===void 0&&(n.v=null),n.t===void 0&&(n.t=null),n.s===void 0&&(n.s=null),n.custom===void 0&&(n.custom=null),n)}const q={id:"sheet.mutation.set-range-values",type:r.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(s);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),c=i.getStyles();return new r.ObjectMatrix(o).forValue((m,g,f)=>{if(!f)d==null||d.setValue(m,g,{});else{const v=d.getValue(m,g)||{},S=f.t===r.CellValueType.FORCE_STRING?f.t:f.v!==void 0?un(f.v,f.t):un(v.v,v.t);if(f.f!==void 0&&(v.f=f.f),f.si!==void 0&&(v.si=f.si),f.p!==void 0&&(v.p=f.p),f.v!==void 0&&(v.v=S===r.CellValueType.NUMBER?Number(f.v):S===r.CellValueType.BOOLEAN?qo(f.v)?1:0:f.v),v.v!==void 0&&(v.t=S),f.s!==void 0){const C=c.getStyleByCell(v);C==null&&delete v.s,typeof f.s=="string"&&(f.s=c.get(f.s));const I=et(C,f.s?f.s:null);I&&r.Tools.removeNull(I),r.Tools.isEmptyObject(I)?delete v.s:v.s=c.setValue(I),!f.p&&v.p&&Xo(v.p,f.s?f.s:null)}f.custom!==void 0&&(v.custom=f.custom),d.setValue(m,g,r.Tools.removeNull(v))}}),!0}};function un(n,t){return n===null?null:typeof n=="string"?r.isSafeNumeric(n)?(+n==0||+n==1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:r.isBooleanString(n)?r.CellValueType.BOOLEAN:r.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===r.CellValueType.BOOLEAN?r.CellValueType.BOOLEAN:r.CellValueType.NUMBER:typeof n=="boolean"?r.CellValueType.BOOLEAN:r.CellValueType.FORCE_STRING}function qo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(r.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function xo(n,t){return Yo(n,t)}function Yo(n,t){if(!t||!Object.keys(t).length)return n;const o=n||{};for(const e in t)e==="bd"?o[e]=Ko(o[e]||{},t[e]):e in o||(o[e]=null);return o}function Ko(n,t){if(!t||!Object.keys(t).length)return n;for(const o in t)o in n||(n[o]=null);return n}function et(n,t,o=!1){if(t===null)return t;if(t===void 0)return n;const e=r.Tools.deepClone(n)||{};if(e){for(const s in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(s)||(s in e&&s==="bd"?e[s]=Object.assign(e[s],t[s]):e[s]=t[s]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function dn(n,t){return n.some(o=>o.startIndex===t)?dn(n,t+1):t}function Xo(n,t){var i;if(n.body==null)return;Array.isArray(n.body.textRuns)||(n.body.textRuns=[]);let o=0;const e=[],s=((i=n.body)==null?void 0:i.paragraphs)||[];for(const u of n.body.textRuns){const{st:d,ed:c,ts:l={}}=u;if(o<d){const g={st:o,ed:d},f=et({},t,!0);f&&r.Tools.removeNull(f),r.Tools.isEmptyObject(f)||(g.ts=f),e.push(g)}const m=et(l,t,!0);m&&r.Tools.removeNull(m),r.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=dn(s,c)}const a=n.body.dataStream.endsWith(`\r
2
+ `)?n.body.dataStream.length-2:n.body.dataStream.length;if(o<a){const u={st:o,ed:a},d=et({},t,!0);d&&r.Tools.removeNull(d),r.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=r.normalizeTextRuns(e)}const tt={id:"sheet.command.clear-selection-all",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],f={subUnitId:c,unitId:u,cellValue:Jo(l)},v=fe(n,f);m.push({id:q.id,params:f}),g.push({id:q.id,params:v});const S=a.onCommandExecute({id:tt.id});return m.push(...S.redos),g.unshift(...S.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Ut={id:"sheet.command.clear-selection-content",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m={subUnitId:c,unitId:u,cellValue:Zo(l)},g=fe(n,m),f=a.onCommandExecute({id:Ut.id}),v=[{id:q.id,params:m},...f.redos],S=[...f.undos,{id:q.id,params:g}];return r.sequenceExecute(v,o).result?(s.pushUndoRedo({unitID:u,undoMutations:S,redoMutations:v}),!0):!1}};function Zo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null})}),t.getData()}const nt={id:"sheet.command.clear-selection-format",type:r.CommandType.COMMAND,handler:async n=>{const t=n.get(r.IUniverInstanceService),o=n.get(r.ICommandService),e=n.get(h.SelectionManagerService),s=n.get(r.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!i)return!1;const u=i.getUnitId(),c=i.getActiveSheet().getSheetId(),l=e.getSelectionRanges();if(!(l!=null&&l.length))return!1;const m=[],g=[],f={subUnitId:c,unitId:u,cellValue:Qo(l)},v=fe(n,f);m.push({id:q.id,params:f}),g.push({id:q.id,params:v});const S=a.onCommandExecute({id:nt.id});return m.push(...S.redos),g.unshift(...S.undos),r.sequenceExecute(m,o)?(s.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,{s:null})}),t.getData()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),Ue={id:"sheet.mutation.insert-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{sheet:e,index:s,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,s,e):!1}};function ln(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,s=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return null;const a=e?s.getSheetBySheetId(e):s.getActiveSheet();return a?{worksheet:a,workbook:s,unitId:s.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,s=n.getUniverSheetInstance(o);if(!s)return null;const a=s.getSheetBySheetId(e);return a?{worksheet:a,workbook:s}:null}const cn=(n,t)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=ot(o,t);if(!a)throw new Error("[RemoveSheetUndoMutationFactory]: Worksheet is null error!");const{workbook:i,worksheet:u}=a,d=u.getConfig();return{index:i.getConfig().sheetOrder.findIndex(m=>m===e),sheet:d,unitId:s}},Ae={id:"sheet.mutation.remove-sheet",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService),{subUnitId:e,unitId:s}=t,a=o.getUniverSheetInstance(s);return a?a.removeSheet(e):!1}},mn={type:r.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=B(s,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=r.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=r.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},f=bt(n,g);return o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:f}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:r.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new r.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new r.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:r.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:s}=t;return o.replace(e,s),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...r.selectionToArray(n)),s=[];if(e.forValue((i,u,d)=>{if(d.colSpan!==void 0&&d.rowSpan!==void 0){const c={startRow:i,startColumn:u,endRow:i+d.rowSpan-1,endColumn:u+d.colSpan-1};r.Rectangle.contains(n,c)||s.push(c)}}),s.length===0)return n;const a=r.Rectangle.union(n,...s);return o?ze(a,t,o):a}function es(n,t,o){let e=null;return o.getMatrixWithMergedCells(n,t,n,t).forValue((a,i,u)=>(e={actualRow:a,actualColumn:i,startRow:a,startColumn:i,isMerged:u.rowSpan!==void 0||u.colSpan!==void 0,isMergedMainCell:u.rowSpan!==void 0&&u.colSpan!==void 0,endRow:a+(u.rowSpan!==void 0?u.rowSpan-1:0),endColumn:i+(u.colSpan!==void 0?u.colSpan-1:0),rangeType:r.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:r.RANGE_TYPE.NORMAL}}function ts(n,t,o){const{startRow:e,startColumn:s,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(s)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function ne(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,s=t.getMergedCell(o,e);return s?{...s,actualRow:o,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:r.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const Se=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:ne(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return r.Rectangle.equals(t,o)}const gn="sheet.command.move-range",st={type:r.CommandType.COMMAND,id:gn,handler:(n,t)=>{var I,R;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.ErrorService),i=n.get(r.LocaleService),u=B(s);if(!u)return!1;const{worksheet:d,subUnitId:c,unitId:l}=u,m=rt(n,{unitId:l,subUnitId:c,range:t.fromRange},{unitId:l,subUnitId:c,range:t.toRange});if(m===null)return a.emit(i.t("sheets.info.acrossMergedCell")),!1;const f=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=f.preRedos)!=null?I:[],...m.redos,...f.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:ne(t.toRange,d)}]}}],S=[...(R=f.preUndos)!=null?R:[],...m.undos,...f.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:ne(t.fromRange,d)}]}}];return r.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:S,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const s=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(r.IUniverInstanceService).getUniverSheetInstance(d),f=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),S=f==null?void 0:f.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(f&&v&&S&&C){const I=ze(c,f,!1);if(!r.Rectangle.equals(c,I)&&!e)return null;const R=new r.ObjectMatrix,M=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{R.setValue(U,T,C.getValue(U,T)),M.setValue(U,T,null)});const w=new r.ObjectMatrix;r.Range.foreach(c,(U,T)=>{w.setValue(U,T,S.getValue(U,T))});const p=new r.ObjectMatrix;r.Range.foreach(i,(U,T)=>{const D=r.cellToRange(U,T),x=r.Rectangle.getRelativeRange(D,i),Y=r.Rectangle.getPositionRange(x,c);p.setValue(Y.startRow,Y.startColumn,C.getValue(U,T))});const y={from:{value:M.getMatrix(),subUnitId:u},to:{value:p.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};s.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:s,undos:a}}const qe={id:"sheet.command.set-range-values",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{subUnitId:d,unitId:c}=u,{value:l,range:m}=t,g=m?[m]:a.getSelectionRanges();if(!g||!g.length)return!1;const f=new r.ObjectMatrix;let v;if(r.Tools.isArray(l))for(let p=0;p<g.length;p++){const{startRow:y,startColumn:b,endRow:U,endColumn:T}=g[p];for(let D=0;D<=U-y;D++)for(let x=0;x<=T-b;x++)f.setValue(D+y,x+b,l[D][x])}else if(r.isICellData(l))for(let p=0;p<g.length;p++){const{startRow:y,startColumn:b,endRow:U,endColumn:T}=g[p];for(let D=y;D<=U;D++)for(let x=b;x<=T;x++)f.setValue(D,x,l)}else v=l;const S={subUnitId:d,unitId:c,cellValue:v!=null?v:f.getMatrix()},C=fe(n,S),I=o.syncExecuteCommand(q.id,S),{undos:R,redos:M}=i.onCommandExecute({id:qe.id,params:{...S,range:g}}),w=r.sequenceExecute([...M],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:S},...M]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(r.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(s),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const f=g.getCellMatrix(),v=f.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let M,w;if(u===r.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let T=i.startRow;T<=y;T++){const D=f.getRow(T),x=D?r.getArrayLength(D)-1:0;b=Math.max(b,x)}M={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const U=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:M.startColumn+U,endRow:y,endColumn:M.endColumn+U}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;M={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const U=i.endRow-i.startRow+1;w={startRow:M.startRow+U,startColumn:i.startColumn,endRow:M.endRow+U,endColumn:y}}const p=rt(n,{unitId:s,subUnitId:a,range:M},{unitId:s,subUnitId:a,range:w},!0);p&&(o.push(...p.redos),e.push(...p.undos))}if(Object.entries(d).length===0)for(let M=i.startRow;M<=i.endRow;M++){d[M]||(d[M]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[M][w]=null}const S={subUnitId:a,unitId:s,cellValue:d},C=fe(n,S),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...S,range:i}});o.push({id:q.id,params:S},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:s,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(r.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(s),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),f=g.getDataRange(),v={subUnitId:a,unitId:s,cellValue:rs([i])},S=fe(n,v),C=c.onCommandExecute({id:qe.id,params:v});if(o.push({id:q.id,params:v},...C.redos),e.push(...C.undos,{id:q.id,params:S}),i.startColumn<=f.endColumn||i.startRow<=f.endRow){let I=null,R=null;if(u===r.Dimension.COLUMNS&&i.endColumn<f.endColumn){const M=Math.min(i.endRow,f.endRow);let w=0;for(let y=i.startRow;y<=M;y++){const b=g.getRow(y),U=b?r.getArrayLength(b)-1:0;w=Math.max(w,U)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:M,endColumn:w};const p=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-p,endRow:M,endColumn:I.endColumn-p}}if(u===r.Dimension.ROWS&&i.endRow<f.endRow){const M=Math.min(i.endColumn,f.endColumn),w=f.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:M};const p=i.endRow-i.startRow+1;R={startRow:I.startRow-p,startColumn:i.startColumn,endRow:I.endRow-p,endColumn:M}}if(I&&R){const M=rt(n,{unitId:s,subUnitId:a,range:I},{unitId:s,subUnitId:a,range:R},!0);M&&(o.push(...M.redos),e.push(...M.undos))}}}return{redo:o,undo:e}}function os(n,t,o,e,s,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(s===r.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const f=n.getValue(m,g);f==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,f)}for(let m=u;m>=i;m--)for(let g=d;g<=c;g++)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}else if(s===r.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const f=n.getValue(m,g);f==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,f)}for(let m=i;m<=u;m++)for(let g=c;g>=d;g--)a&&a[m]&&a[m][g]?n.setValue(m,g,a[m][g]):n.realDeleteValue(m,g)}}function ss(n,t,o,e,s){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(s===r.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const f=n.getValue(m+c,g);f==null?n.realDeleteValue(m,g):n.setValue(m,g,f)}else if(s===r.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const f=n.getValue(m,g+l);f==null?n.realDeleteValue(m,g):n.setValue(m,g,f)}}function rs(n){const t=new r.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:s,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=s;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const hn="sheet.command.delete-range-move-left",at={type:r.CommandType.COMMAND,id:hn,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{worksheet:d,workbook:c,subUnitId:l,unitId:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const f={range:g,subUnitId:l,unitId:m,shiftDimension:r.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:S,undo:C}=Et(n,f),I=[...(p=v.preRedos)!=null?p:[],...S],R=[...v.undos,...C];return I.push(...v.redos),I.push(Se(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),r.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},vn="sheet.command.delete-range-move-up",it={type:r.CommandType.COMMAND,id:vn,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(s);if(!u)return!1;const{unitId:d,subUnitId:c,workbook:l,worksheet:m}=u;let g=t==null?void 0:t.range;if(g||(g=(w=a.getLast())==null?void 0:w.range),!g)return!1;const f={range:g,subUnitId:c,unitId:d,shiftDimension:r.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:S,undo:C}=Et(n,f),I=[...(p=v.preRedos)!=null?p:[],...S],R=[...v.undos,...C];return I.push(...v.redos),I.push(Se(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),r.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:r.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:s,rowInfo:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(u==null)throw new Error("universheet is null error!");const d=u.getSheetBySheetId(e);if(d==null)throw new Error("worksheet is null error!");const c=d.getRowManager().getRowData(),l={h:d.getConfig().defaultRowHeight,hd:0},m=s.startRow,g=s.endRow-s.startRow+1;for(let S=m;S<m+g;S++)a?r.insertMatrixArray(S,(v=a[S-s.startRow])!=null?v:l,c):r.insertMatrixArray(S,l,c);return d.setRowCount(d.getRowCount()+s.endRow-s.startRow+1),d.getCellMatrix().insertRows(s.startRow,g),!0}},Dt=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Re={id:"sheet.mutation.insert-col",type:r.CommandType.MUTATION,handler:(n,t)=>{var v;const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=s.getConfig().defaultColumnWidth;for(let S=l;S<l+m;S++){const C={w:g,hd:0};u?r.insertMatrixArray(S,(v=u[S-i.startColumn])!=null?v:C,c):r.insertMatrixArray(S,C,c)}return s.setColumnCount(s.getColumnCount()+i.endColumn-i.startColumn+1),s.getCellMatrix().insertColumns(i.startColumn,m),!0}},as=(n,t)=>{const s=t.getRowManager().getRowData(),a={},i=n.range,u=r.sliceMatrixArray(i.startRow,i.endRow,s),d=r.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={id:"sheet.mutation.remove-rows",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)s.getRowFiltered(l);const d=a.endRow-a.startRow+1;return r.spliceArray(a.startRow,d,u),s.getCellMatrix().removeRows(a.startRow,d),s.setRowCount(s.getRowCount()-d),!0}},is=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const u=s.getColumnManager().getColumnData(),d={},c=t.range,l=r.sliceMatrixArray(c.startColumn,c.endColumn,u),m=r.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=t.range,u=s.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return r.spliceArray(a.startColumn,d,u),s.setColumnCount(s.getColumnCount()-d),s.getCellMatrix().removeColumns(a.startColumn,d),!0}},us="sheet.command.insert-range-move-down",ut={type:r.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,_,de;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(r.ErrorService),d=n.get(r.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(s);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:f}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const S=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,p=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(p>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+p,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(p).fill(void 0).map(()=>({h:Q,hd:r.BooleanNumber.FALSE}))};S.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};r.Range.foreach(v,(Z,Q)=>{const K=g.getCell(Z,Q);K&&(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:m,unitId:l,shiftDimension:r.Dimension.ROWS,cellValue:y},{redo:U,undo:T}=Tt(n,b);S.push(...U),C.push(...T);const D=i.onCommandExecute({id:ut.id,params:{range:v}});return S.push(...D.redos),S.push(Se(v,f,g)),C.push(...(_=D.preUndos)!=null?_:[]),S.unshift(...(de=D.preRedos)!=null?de:[]),C.unshift(...D.undos),r.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:S}),!0):!1}},fn="sheet.command.insert-range-move-right",dt={type:r.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var Y,_,de;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(r.ErrorService),d=n.get(r.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(s);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:f}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const S=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,p=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(p>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:f,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+p},colInfo:new Array(p).fill(void 0).map(()=>({w:Q,hd:r.BooleanNumber.FALSE}))};S.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};r.Range.foreach(v,(Z,Q)=>{const K=m.getCell(Z,Q);!K||!K.s||(y[Z]||(y[Z]={}),y[Z][Q]={s:K.s})});const b={range:v,subUnitId:f,unitId:g,shiftDimension:r.Dimension.COLUMNS,cellValue:y},{redo:U,undo:T}=Tt(n,b);S.push(...U),C.push(...T);const D=i.onCommandExecute({id:dt.id,params:{range:v}});return S.push(...D.redos),S.push(Se(v,l,m)),C.push(...(_=D.preUndos)!=null?_:[]),S.unshift(...(de=D.preRedos)!=null?de:[]),C.unshift(...D.undos),r.sequenceExecute(S,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:S}),!0):!1}},Sn="sheet.command.insert-row",Le={type:r.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,p;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=s.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:f}=d,v=c===r.Direction.UP?g:g-1,S=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(f-g+1).fill(void 0).map(()=>({h:S,hd:r.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return r.sequenceExecute([{id:Ce.id,params:C},...R.redos,Se(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(p=R.preRedos)!=null?p:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},Cn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-before",handler:async n=>{var g;const o=(g=n.get(h.SelectionManagerService).getSelections())==null?void 0:g.map(f=>f.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};r.Range.foreach(e,(f,v)=>{const S=i.getCell(f,v);!S||!S.s||(l[f]||(l[f]={}),l[f][v]={s:S.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(r.ICommandService).executeCommand(Le.id,m)}},Rn={type:r.CommandType.COMMAND,id:"sheet.command.insert-row-after",handler:async n=>{var m;const o=(m=n.get(h.SelectionManagerService).getSelections())==null?void 0:m.map(g=>g.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={unitId:u,subUnitId:d,direction:r.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(r.ICommandService).executeCommand(Le.id,l)}},In="sheet.command.insert-col",Be={type:r.CommandType.COMMAND,id:In,handler:async(n,t)=>{var w,p,y;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=s.getUniverSheetInstance(t.unitId),f=g.getSheetBySheetId(t.subUnitId),v=u===r.Direction.LEFT?l:l-1,S=f.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:S,hd:r.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return r.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,Se(i,g,f)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(p=R.preUndos)!=null?p:[],{id:Ie.id,params:I},...R.undos].filter(Boolean),redoMutations:[...(y=R.preRedos)!=null?y:[],{id:Re.id,params:C},...R.redos].filter(Boolean)}),!0):!1}},Mn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-before",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={};r.Range.foreach(e,(g,f)=>{const v=i.getCell(g,f);!v||!v.s||(l[g]||(l[g]={}),l[g][f]={s:v.s})});const m={unitId:u,subUnitId:d,direction:r.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(r.ICommandService).executeCommand(Be.id,m)}},pn={type:r.CommandType.COMMAND,id:"sheet.command.insert-col-after",handler:async n=>{const o=n.get(h.SelectionManagerService).getSelections();let e;if((o==null?void 0:o.length)===1)e=o[0].range;else return!1;const a=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endColumn-e.startColumn+1,l={unitId:u,subUnitId:d,direction:r.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(r.ICommandService).executeCommand(Be.id,l)}},wn={id:"sheet.command.insert-sheet",type:r.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(r.LocaleService),i=ln(s,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=r.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=r.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=r.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`));const m={index:c,sheet:l,unitId:u},g=bt(n,m);return o.syncExecuteCommand(Ue.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}};function ds(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startRow>a.startRow,u=s.endRow-s.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endRow:s.endRow+u,startRow:s.startRow+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveRowMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveRowMutation] worksheet is null!");const c=s.startRow,l=s.endRow-s.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return r.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,i=s.startColumn>a.startColumn,u=s.endColumn-s.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:r.Rectangle.clone(a),targetRange:{...s,endColumn:s.endColumn+u,startColumn:s.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:r.Rectangle.clone(s),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:s,targetRange:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o);if(!u)throw new Error("[MoveColumnMutation] univerSheet is null!");const d=u.getSheetBySheetId(e);if(!d)throw new Error("[MoveColumnMutation] worksheet is null!");const c=s.startColumn,l=s.endColumn-s.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return r.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function cs(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function ms(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const yn="sheet.command.move-rows",Ot={id:yn,type:r.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:s},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===r.RANGE_TYPE.ROW&&ee.range.startRow<=s&&s<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),f=n.get(r.ErrorService),v=n.get(r.LocaleService),S=i[0].range,C=i[0].primary,I=ze(S,l,!1);if(!r.Rectangle.equals(S,I))return f.emit(v.t("sheets.info.partOfCell")),!1;if(cs(a,l))return f.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...S,startRow:a,endRow:a+S.endRow-S.startRow},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:R},w=ds(n,M),y=a-s<0,b=S.endRow-S.startRow+1,U=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},T={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ne(U,l),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:C,style:null}]},x=n.get(r.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),_=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:M},{id:$.id,params:T},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:D},...Y.undos];return r.sequenceExecute(_,x).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:_}),!0):!1}},_n="sheet.command.move-cols",Pt={id:_n,type:r.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:s},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===r.RANGE_TYPE.COLUMN&&ee.range.startColumn<=s&&s<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),f=n.get(r.ErrorService),v=n.get(r.LocaleService),S=i[0].range,C=i[0].primary,I=ze(S,l,!1);if(!r.Rectangle.equals(S,I))return f.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return f.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...S,startColumn:a,endColumn:a+S.endColumn-S.startColumn},M={unitId:m,subUnitId:g,sourceRange:S,targetRange:R},w=ls(n,M),p=S.endColumn-S.startColumn+1,U=a-s<0?R:{...R,startColumn:R.startColumn-p,endColumn:R.endColumn-p},T={unitId:m,subUnitId:g,pluginName:X,selections:[{range:U,primary:ne(U,l),style:null}]},D={unitId:m,subUnitId:g,pluginName:X,selections:[{range:S,primary:C,style:null}]},x=n.get(r.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),_=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:M},{id:$.id,params:T},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:D},...Y.undos];return r.sequenceExecute(_,x).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:_}),!0}},Un="sheet.command.remove-row",lt={type:r.CommandType.COMMAND,id:Un,handler:async(n,t)=>{var R,M,w,p;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=o.getLast())==null?void 0:R.range),!s)return!1;const a=n.get(r.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;s={...s,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=s.startRow;y<=s.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[s.startRow,...m.map(U=>U+1)],b=[...m.map(U=>U-1),s.endRow];for(let U=y.length-1;U>=0;U--)y[U]<=b[U]&&g.push({startRow:y[U],endRow:b[U],startColumn:s.startColumn,endColumn:s.endColumn})}else g.push(s);const f=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},U=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),T={unitId:l,subUnitId:c,cellValue:U.getMatrix()},D=as(b,d);f.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:D},{id:q.id,params:T})});const S=e.onCommandExecute({id:lt.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(M=S.preRedos)!=null?M:[],...f,...S.redos,Se(s,u,d)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=S.preUndos)!=null?w:[],...v,...S.undos],redoMutations:[...(p=S.preRedos)!=null?p:[],...f,...S.redos]}),!0):!1}},bn="sheet.command.remove-col",ct={type:r.CommandType.COMMAND,id:bn,handler:async(n,t)=>{var R,M,w,p;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let s=t==null?void 0:t.range;if(s||(s=(R=o.getLast())==null?void 0:R.range),!s)return!1;const a=n.get(r.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;s={...s,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:s},g=is(n,m),f=d.getCellMatrix().getSlice(0,d.getRowCount()-1,s.startColumn,s.endColumn),v={unitId:l,subUnitId:c,cellValue:f.getMatrix()},S=e.onCommandExecute({id:ct.id,params:{range:s}}),C=n.get(r.ICommandService);return r.sequenceExecute([...(M=S.preRedos)!=null?M:[],{id:Ie.id,params:m},...S.redos,Se(s,u,d)],C).result?(n.get(r.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=S.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...S.undos],redoMutations:[...(p=S.preRedos)!=null?p:[],{id:Ie.id,params:m},...S.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:r.CommandType.COMMAND,handler:async(n,t)=>{var R,M;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(s,t);if(!i)return!1;const{unitId:u,subUnitId:d,workbook:c,worksheet:l}=i;if(c.getSheets().length<=1)return!1;const m=c.getSheetIndex(l);c.getConfig().sheetOrder[m+1];const g={subUnitId:d,unitId:u,subUnitName:l.getName()},f=cn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),S=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(M=v.preUndos)!=null?M:[],{id:Ue.id,params:f},...v.undos];return r.sequenceExecute(S,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:S}),!0):!1}},me=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},W={id:"sheet.mutation.add-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().mergeData,u=t.ranges,d=[];for(let c=0;c<u.length;c++)for(let l=i.length-1;l>=0;l--){const m=i[l],g=u[c];r.Rectangle.intersects(m,g)&&d.push(i[l])}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:d}},F={id:"sheet.mutation.remove-worksheet-merge",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const i=s.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)for(let c=i.length-1;c>=0;c--){const l=i[c],m=u[d];r.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Tn={type:r.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(s);if(!i)return!1;const{subUnitId:u,unitId:d,worksheet:c}=i,l={unitId:d,subUnitId:u,ranges:a};let m=!1;const g=c.getConfig().mergeData;if(a.forEach(p=>{g.forEach(y=>{r.Rectangle.intersects(p,y)&&(m=!0)})}),!m)return!1;const f=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const S=r.Tools.deepClone(v),C=r.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:M}=I.range;return I.primary={startRow:R,startColumn:M,endRow:R,endColumn:M,actualRow:R,actualColumn:M,isMerged:!1,isMergedMainCell:!1},r.sequenceExecute([{id:F.id,params:f},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:W.id,params:f},{id:$.id,params:{selections:S}}],redoMutations:[{id:F.id,params:f},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){j(this,"_borderInfo",{type:r.BorderType.ALL,color:"#000000",style:r.BorderStyleTypes.THIN,activeBorderType:!1});j(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));j(this,"borderInfo$",this._borderInfo$.asObservable())}dispose(){this._borderInfo$.complete()}setType(t){this._borderInfo.type=t,this.setActiveBorderType(!0),this.refresh()}setColor(t){this._borderInfo.color=t,this.refresh()}setStyle(t){this._borderInfo.style=t,this.refresh()}setActiveBorderType(t){this._borderInfo.activeBorderType=t}getBorderInfo(){return this._borderInfo}refresh(){this._borderInfo$.next(this._borderInfo)}}function mt(n,t){const{startRow:o,startColumn:e,endRow:s,endColumn:a}=n;for(let i=o;i<=s;i++)for(let u=e;u<=a;u++)t(i,u)}const En={id:"sheet.command.set-border-basic",type:r.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:s}=t,{type:a,color:i,style:u}=s,d=n.get(r.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(je.id,{unitId:o,subUnitId:e})}},Nn={id:"sheet.command.set-border-position",type:r.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(r.ICommandService);return n.get(Ee).setType(t.value),o.executeCommand(je.id)}},Dn={id:"sheet.command.set-border-style",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService);return n.get(Ee).setStyle(t.value),o.executeCommand(je.id)}},On={id:"sheet.command.set-border-color",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(je.id)}},je={id:"sheet.command.set-border",type:r.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(s,t);if(!u)return!1;const{worksheet:d,unitId:c,subUnitId:l}=u,m=a.getSelectionRanges(),g=d.getConfig().mergeData;if(!(m!=null&&m.length))return!1;const{style:f,color:v,type:S,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=S===r.BorderType.TOP||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,R=S===r.BorderType.LEFT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,M=S===r.BorderType.BOTTOM||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,w=S===r.BorderType.RIGHT||S===r.BorderType.ALL||S===r.BorderType.OUTSIDE,p=S===r.BorderType.VERTICAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,y=S===r.BorderType.HORIZONTAL||S===r.BorderType.ALL||S===r.BorderType.INSIDE,b=S.indexOf("tlbr")>-1,U=S.indexOf("tlbc")>-1,T=S.indexOf("tlmr")>-1,D=S.indexOf("bltr")>-1,x=S.indexOf("mltr")>-1,Y=S.indexOf("bctr")>-1,_=m[0],de={startRow:_.startRow-1,startColumn:_.startColumn,endRow:_.startRow-1,endColumn:_.endColumn},Z={startRow:_.startRow,startColumn:_.startColumn-1,endRow:_.endRow,endColumn:_.startColumn-1},Q={startRow:_.endRow+1,startColumn:_.startColumn,endRow:_.endRow+1,endColumn:_.endColumn},K={startRow:_.startRow,startColumn:_.endColumn+1,endRow:_.endRow,endColumn:_.endColumn+1},ee={startRow:_.startRow,startColumn:_.startColumn,endRow:_.startRow,endColumn:_.endColumn},Eo={startRow:_.startRow,startColumn:_.startColumn,endRow:_.endRow,endColumn:_.startColumn},No={startRow:_.endRow,startColumn:_.startColumn,endRow:_.endRow,endColumn:_.endColumn},Do={startRow:_.startRow,startColumn:_.endColumn,endRow:_.endRow,endColumn:_.endColumn},V=new r.ObjectMatrix,G={s:f,cl:{rgb:v}},_t=(O,E)=>{let L=null;return g.forEach(te=>{r.Rectangle.intersects(te,{startColumn:E,endColumn:E,startRow:O,endRow:O})&&(L=te)}),L};function H(O,E,L){O.startRow<0||O.startColumn<0||mt(O,(te,le)=>{var N,Ze;const oe=_t(te,le);let ie=E;if(oe&&(E.bc_tr||E.ml_tr||E.bl_tr||E.tl_mr||E.tl_bc||E.tl_br)){if(L){const ce=r.Tools.deepClone((N=V.getValue(oe.startRow,oe.startColumn))==null?void 0:N.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,E):E}V.setValue(oe.startRow,oe.startColumn,{s:{bd:ie}})}else{if(L){const ce=r.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,E):E}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:r.Tools.deepClone(G)},!0)),M&&(H(Q,{t:null}),H(No,{b:r.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(Eo,{l:r.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Do,{r:r.Tools.deepClone(G)},!0)),b&&H(_,{tl_br:r.Tools.deepClone(G)},!0),U&&H(_,{tl_bc:r.Tools.deepClone(G)},!0),T&&H(_,{tl_mr:r.Tools.deepClone(G)},!0),D&&H(_,{bl_tr:r.Tools.deepClone(G)},!0),x&&H(_,{ml_tr:r.Tools.deepClone(G)},!0),Y&&H(_,{bc_tr:r.Tools.deepClone(G)},!0),p&&mt(_,(O,E)=>{var te,le,oe,ie;const L=_t(O,E);if(L){if(L.endColumn!==_.endColumn){const N=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:r.Tools.deepClone(G)}):{r:r.Tools.deepClone(G)}}})}if(L.startColumn!==_.startColumn){const N=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:r.Tools.deepClone(G)}):{l:r.Tools.deepClone(G)}}})}}else{if(E!==_.endColumn){const N=(oe=V.getValue(O,E))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{r:r.Tools.deepClone(G)}):{r:r.Tools.deepClone(G)}}})}if(E!==_.startColumn){const N=(ie=V.getValue(O,E))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{l:r.Tools.deepClone(G)}):{l:r.Tools.deepClone(G)}}})}}}),y&&mt(_,(O,E)=>{var te,le,oe,ie;const L=_t(O,E);if(L){if(L.endRow!==_.endRow){const N=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:r.Tools.deepClone(G)}):{b:r.Tools.deepClone(G)}}})}if(L.startRow!==_.startRow){const N=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:r.Tools.deepClone(G)}):{t:r.Tools.deepClone(G)}}})}}else{if(O!==_.endRow){const N=(oe=V.getValue(O,E))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{b:r.Tools.deepClone(G)}):{b:r.Tools.deepClone(G)}}})}if(O!==_.startRow){const N=(ie=V.getValue(O,E))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:N!=null&&N.bd?Object.assign(N.bd,{t:r.Tools.deepClone(G)}):{t:r.Tools.deepClone(G)}}})}}}),!I&&!M&&!R&&!w&&!p&&!y&&!b&&!U&&!T&&!D&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(No,{b:null},!0),H(Z,{r:null}),H(Eo,{l:null},!0),H(K,{l:null}),H(Do,{r:null},!0),H(_,{tl_br:null},!0),H(_,{tl_bc:null},!0),H(_,{tl_mr:null},!0),H(_,{bl_tr:null},!0),H(_,{ml_tr:null},!0),H(_,{bc_tr:null},!0),mt(_,(O,E)=>{var te,le,oe,ie,N,Ze,ce,Oo;const L=_t(O,E);if(L){if(L.endColumn!==_.endColumn){const P=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{r:null}):{r:null}}})}if(L.startColumn!==_.startColumn){const P=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{l:null}):{l:null}}})}if(L.endRow!==_.endRow){const P=(oe=V.getValue(L.startRow,L.startColumn))==null?void 0:oe.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{b:null}):{b:null}}})}if(L.startRow!==_.startRow){const P=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{t:null}):{t:null}}})}}else{if(E!==_.endColumn){const P=(N=V.getValue(O,E))==null?void 0:N.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{r:null}):{r:null}}})}if(E!==_.startColumn){const P=(Ze=V.getValue(O,E))==null?void 0:Ze.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{l:null}):{l:null}}})}if(O!==_.endRow){const P=(ce=V.getValue(O,E))==null?void 0:ce.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{b:null}):{b:null}}})}if(O!==_.startRow){const P=(Oo=V.getValue(O,E))==null?void 0:Oo.s;V.setValue(O,E,{s:{bd:P!=null&&P.bd?Object.assign(P.bd,{t:null}):{t:null}}})}}}));const on={unitId:c,subUnitId:l,cellValue:V.getData()},xr=fe(n,on);return o.syncExecuteCommand(q.id,on)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:xr}],redoMutations:[{id:q.id,params:on}]}),!0):!1}},gs=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},We={id:"sheet.mutation.set-col-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.TRUE)}}return!0}},hs=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-visible",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const s=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=s.getColumnOrCreate(u);d!=null&&(d.hd=r.BooleanNumber.FALSE)}}return!0}},At={type:r.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,a=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:s},u=hs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:s.map(g=>({range:g,primary:ne(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:An(s).map(g=>({range:g,primary:ne(g,a),style:null}))},l=n.get(r.ICommandService);return r.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(r.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:We.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},Pn={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-cols-visible",handler:async n=>{var c;const o=(c=n.get(h.SelectionManagerService).getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(r.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},kn={type:r.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var f;const o=(f=n.get(h.SelectionManagerService).getSelections())==null?void 0:f.map(v=>v.range).filter(v=>v.rangeType===r.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const s=n.get(r.IUniverInstanceService).getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:o},c={unitId:i,subUnitId:u,pluginName:X,selections:An(o).map(v=>({range:v,primary:ne(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:ne(v,a),style:null}))},m=n.get(r.ICommandService);if(r.sequenceExecute([{id:We.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(r.IUndoRedoService),S=gs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:S},{id:$.id,params:l}],redoMutations:[{id:We.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function An(n){return vs(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function vs(n){const t=[];let o;return n.sort((e,s)=>e.startColumn-s.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Vt=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("worksheet is null error!");const i=s.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={id:"sheet.mutation.set-frozen",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Vn={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=B(s);if(!a)return!1;const{unitId:i,subUnitId:u,worksheet:d}=a,{startColumn:c,startRow:l,xSplit:m,ySplit:g}=t;if(l>=d.getRowCount()||c>=d.getColumnCount()||m>=d.getColumnCount()||g>=d.getRowCount())return!1;const f={unitId:i,subUnitId:u,...t},v=Vt(n,f);return o.syncExecuteCommand(ye.id,f)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:f}]}),!0):!1}},fs={type:r.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(r.ICommandService),o=n.get(r.IUndoRedoService),e=n.get(r.IUniverInstanceService),s=B(e);if(!s)return!1;const{unitId:a,subUnitId:i}=s,u={unitId:a,subUnitId:i,startRow:-1,startColumn:-1,ySplit:0,xSplit:0},d=Vt(n,u);return t.syncExecuteCommand(ye.id,u)?(o.pushUndoRedo({unitID:a,undoMutations:[{id:ye.id,params:d}],redoMutations:[{id:ye.id,params:u}]}),!0):!1}},Ss=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-row-visible",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Cs=(n,t)=>{if(n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=s.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Lt={type:r.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,a=n.get(r.ICommandService),i=n.get(r.IUndoRedoService),u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:s},c=Ss(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:s.map(f=>({range:f,primary:ne(f,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:jn(s).map(f=>({range:f,primary:ne(f,u),style:null}))};return r.sequenceExecute([{id:He.id,params:d},{id:$.id,params:l}],a).result&&i.pushUndoRedo({unitID:o,undoMutations:[{id:$e.id,params:c},{id:$.id,params:m}],redoMutations:[{id:He.id,params:d},{id:$.id,params:l}]}),!0}},Ln={type:r.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(r.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===r.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const s=o.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!s)return!1;const a=s.getActiveSheet();if(!a)return!1;const i=s.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(r.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},Bn={type:r.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var S;const t=n.get(h.SelectionManagerService),o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=(S=t.getSelections())==null?void 0:S.map(C=>C.range).filter(C=>C.rangeType===r.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(s);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,l={unitId:u,subUnitId:d,ranges:a},m={unitId:u,subUnitId:d,pluginName:X,selections:jn(a).map(C=>({range:C,primary:ne(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:ne(C,c),style:null}))},f=Cs(n,l);return r.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:f},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function jn(n){return Rs(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Rs(n){const t=[];let o;return n.sort((e,s)=>e.startRow-s.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const J={type:r.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(r.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:s,subUnitId:a}=e,{range:i,style:u}=t,d=n.get(r.ICommandService),c=n.get(r.IUndoRedoService),l=n.get(h.SelectionManagerService),m=i?[i]:l.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g=new r.ObjectMatrix;if(r.Tools.isArray(u.value))for(let M=0;M<m.length;M++){const{startRow:w,endRow:p,startColumn:y,endColumn:b}=m[M];for(let U=0;U<=p-w;U++)for(let T=0;T<=b-y;T++)g.setValue(U+w,T+y,{s:{[u.type]:u.value[U][T]}})}else for(let M=0;M<m.length;M++){const{startRow:w,endRow:p,startColumn:y,endColumn:b}=m[M],U={s:{[u.type]:u.value}};for(let T=w;T<=p;T++)for(let D=y;D<=b;D++)g.setValue(T,D,U)}const f={subUnitId:a,unitId:s,cellValue:g.getMatrix()},v=fe(n,f),S=d.syncExecuteCommand(q.id,f),{undos:C,redos:I}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),R=r.sequenceExecute([...I],d);return S&&R.result?(c.pushUndoRedo({unitID:s,undoMutations:[{id:q.id,params:v},...C],redoMutations:[{id:q.id,params:f},...I]}),!0):!1}},Is={type:r.CommandType.COMMAND,id:"sheet.command.set-bold",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:s,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(s,a).getFontWeight()===r.FontWeight.BOLD?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(J.id,u)}},Ms={type:r.CommandType.COMMAND,id:"sheet.command.set-italic",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;s=e.getRange(i,u).getFontStyle()===r.FontItalic.ITALIC}const a={style:{type:"it",value:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}};return n.get(r.ICommandService).executeCommand(J.id,a)}},ps={type:r.CommandType.COMMAND,id:"sheet.command.set-underline",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;t.primary&&(s=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(J.id,a)}},ws={type:r.CommandType.COMMAND,id:"sheet.command.set-stroke",handler:async n=>{const t=n.get(h.SelectionManagerService).getLast();if(!t)return!1;const o=B(n.get(r.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let s=!0;t.primary&&(s=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:s?r.BooleanNumber.FALSE:r.BooleanNumber.TRUE}}};return n.get(r.ICommandService).executeCommand(J.id,a)}};r.CommandType.COMMAND;const ys={type:r.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(J.id,e)}},_s={type:r.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(J.id,e)}},Wn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(r.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},Fn={type:r.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(r.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Hn={type:r.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(r.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},$n={type:r.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(r.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Gn={type:r.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(J.id,e)}},zn={type:r.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(J.id,e)}},qn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(r.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(J.id,e)}},xn={type:r.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:r.BooleanNumber.TRUE},e=n.get(r.ICommandService),s={style:{type:"tr",value:o}};return e.executeCommand(J.id,s)}},Us=(n,t)=>{const a=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...r.Tools.deepClone(t),color:a}},xe={id:"sheet.mutation.set-tab-color",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},Yn={type:r.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=B(n.get(r.IUniverInstanceService));if(!s)return!1;const{unitId:a,subUnitId:i}=s,u={color:t.value,unitId:a,subUnitId:i},d=Us(n,u);return o.syncExecuteCommand(xe.id,u)?(e.pushUndoRedo({unitID:a,undoMutations:[{id:xe.id,params:d}],redoMutations:[{id:xe.id,params:u}]}),!0):!1}},Ye={id:"sheet.operation.set-worksheet-active",type:r.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,s]of e)if(s.getSheetId()===t.subUnitId)return o.setActiveSheet(s),!0;return!1}},bs=4,Bt={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(r.ICommandService),s=B(n.get(r.IUniverInstanceService),t);if(!s)return!1;const{unitId:a,subUnitId:i}=s;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},bs)})}},jt=(n,t)=>{const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(s==null)throw new Error("universheet is null error!");const a={},i=s.getColumnManager(),u=t.ranges;for(let d=0;d<u.length;d++){const c=u[d];for(let l=c.startColumn;l<c.endColumn+1;l++){const m=i.getColumnOrCreate(l);a[l]=m.w}}return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges,colWidth:a}},Me={id:"sheet.mutation.set-worksheet-col-width",type:r.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const s=e.getSheetBySheetId(t.subUnitId);if(!s)return!1;const a=s.getConfig().defaultColumnWidth,i=s.getColumnManager(),u=t.ranges;for(let c=0;c<u.length;c++){const l=u[c];for(let m=l.startColumn;m<l.endColumn+1;m++){const g=i.getColumnOrCreate(m);typeof t.colWidth=="number"?g.w=t.colWidth:g.w=(d=t.colWidth[m-l.startColumn])!=null?d:a}}return!0}},Wt={type:r.CommandType.COMMAND,id:"sheet.command.delta-column-width",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=n.get(r.ICommandService),a=n.get(r.IUndoRedoService),i=B(n.get(r.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,f=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,S=e.filter(b=>b.range.rangeType===r.RANGE_TYPE.COLUMN),C=v?r.RANGE_TYPE.ALL:S.some(({range:b})=>{const{startColumn:U,endColumn:T}=b;return U<=l&&l<=T})?r.RANGE_TYPE.COLUMN:r.RANGE_TYPE.NORMAL;let I;if(C===r.RANGE_TYPE.ALL){const b=u.getRowCount(),U=new Array(u.getColumnCount()).fill(void 0).map((T,D)=>({startRow:0,endRow:b-1,startColumn:D,endColumn:D}));I={subUnitId:c,unitId:d,colWidth:f,ranges:U}}else C===r.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:S.map(b=>r.Rectangle.clone(b.range)),colWidth:f}:I={subUnitId:c,unitId:d,colWidth:f,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=jt(n,I),M=s.syncExecuteCommand(Me.id,I),{undos:w,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:Wt.id,params:I}),y=r.sequenceExecute([...p],s);return M&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...p]}),!0}},Ft={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(r.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=jt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:f}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=r.sequenceExecute([...f],e);return m&&v.result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...f]}),!0):!1}},Kn=(n,t)=>{const o=ot(n.get(r.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},_e={id:"sheet.mutation.set-worksheet-hidden",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Xn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.ErrorService),a=n.get(r.LocaleService),i=B(n.get(r.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===r.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:r.BooleanNumber.TRUE},f=Kn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===r.BooleanNumber.FALSE).length===1?(s.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:_e.id,params:f}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ts=(n,t)=>{const o=ot(n.get(r.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ht={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,S;const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(h.SheetInterceptorService),a=B(n.get(r.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Ts(n,d),l=s.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(S=l.preUndos)!=null?S:[],{id:gt.id,params:c},...l.undos];return await r.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Es=(n,t)=>({...r.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:r.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(r.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Jn={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=B(n.get(r.IUniverInstanceService),t);if(!s)return!1;const{workbook:a,unitId:i,subUnitId:u}=s,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Es(n,c);return o.syncExecuteCommand(Ke.id,c)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:Ke.id,params:l}],redoMutations:[{id:Ke.id,params:c}]}),!0):!1}},Ns=2e3,Zn=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of s)for(let g=l;g<m+1;g++){const f=c.getRowOrCreate(g);d[g]=f.h}return{unitId:o,subUnitId:e,ranges:s,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:s}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of s)for(let g=l;g<=m;g++){const f=c.getRowOrCreate(g);d[g]=f.ia}return{unitId:o,subUnitId:e,ranges:s,autoHeightInfo:d}},Ds=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e),d=[],c=u.getRowManager();for(const l of s){const{row:m}=l,{ah:g}=c.getRowOrCreate(m);d.push({row:m,autoHeight:g})}return{unitId:o,subUnitId:e,rowsAutoHeightInfo:d}},pe={id:"sheet.mutation.set-worksheet-row-height",type:r.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:s,rowHeight:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=d.getConfig().defaultRowHeight,l=d.getRowManager();for(const{startRow:g,endRow:f}of s)for(let v=g;v<=f;v++){const S=l.getRowOrCreate(v);typeof a=="number"?S.h=a:S.h=(m=a[v])!=null?m:c,S.h=Math.min(Ns,S.h)}return!0}},ue={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:r.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:s,autoHeightInfo:a}=t,u=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),d=u==null?void 0:u.getSheetBySheetId(e);if(!d)return!1;const c=void 0,l=d.getRowManager();for(const{startRow:g,endRow:f}of s)for(let v=g;v<=f;v++){const S=l.getRowOrCreate(v);typeof a=="number"?S.ia=a:S.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:r.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:s}=t,i=n.get(r.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of s){const m=d.getRowOrCreate(c);m.ah=l}return!0}},Qn={type:r.CommandType.COMMAND,id:"sheet.command.delta-row-height",handler:async(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections();if(!(e!=null&&e.length))return!1;const s=B(n.get(r.IUniverInstanceService));if(!s)return!1;const{worksheet:a,subUnitId:i,unitId:u}=s,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===r.RANGE_TYPE.ALL,f=e.filter(y=>y.range.rangeType===r.RANGE_TYPE.ROW),v=g?r.RANGE_TYPE.ALL:f.some(({range:y})=>{const{startRow:b,endRow:U}=y;return b<=d&&d<=U})?r.RANGE_TYPE.ROW:r.RANGE_TYPE.NORMAL;let S;if(v===r.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((U,T)=>({startRow:T,endRow:T,startColumn:0,endColumn:y-1}));S={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===r.RANGE_TYPE.ROW?S={subUnitId:i,unitId:u,ranges:f.map(y=>r.Rectangle.clone(y.range)),rowHeight:m}:S={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=Zn(n,S),I={unitId:u,subUnitId:i,ranges:S.ranges,autoHeightInfo:r.BooleanNumber.FALSE},R=$t(n,I),M=n.get(r.ICommandService),w=n.get(r.IUndoRedoService);return r.sequenceExecute([{id:pe.id,params:S},{id:ue.id,params:I}],M).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:S},{id:ue.id,params:I}]}),!0):!1}},eo={type:r.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(r.ICommandService),s=n.get(r.IUndoRedoService),a=n.get(r.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=Zn(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:r.BooleanNumber.FALSE},f=$t(n,g);return r.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(s.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:f}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={type:r.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(h.SelectionManagerService),a=n.get(r.IUniverInstanceService),i=B(a);if(!i)return!1;const{unitId:u,subUnitId:d,worksheet:c}=i,{anchorRow:l}=t!=null?t:{},m=l!=null?[{startRow:l,endRow:l,startColumn:0,endColumn:c.getMaxColumns()-1}]:s.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:r.BooleanNumber.TRUE},f=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:S,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=r.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:f},...S],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},to={type:r.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService),s=n.get(r.IUniverInstanceService),a=B(n.get(r.IUniverInstanceService));if(!a)return!1;const{unitId:i,subUnitId:u}=a,d=s.getUniverSheetInstance(i);if(!d)return!1;const c=d.getSheetBySheetId(u);if(!c||c.getConfig().hidden===r.BooleanNumber.FALSE)return!1;const m={unitId:i,subUnitId:u,hidden:r.BooleanNumber.FALSE},g=Kn(n,m),f=o.syncExecuteCommand(_e.id,m),v={unitId:i,subUnitId:u},S=o.syncExecuteCommand(Ye.id,v);return f&&S?(e.pushUndoRedo({unitID:i,undoMutations:[{id:_e.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}},no=n=>{const t=new r.ObjectMatrix;return n.forEach(o=>{r.Range.foreach(o,(e,s)=>{t.setValue(e,s,1)})}),t.forValue((o,e)=>{const s=t.getValue(o-1,e);s&&t.setValue(o,e,s+1)}),t},oo=n=>{const t=n;return t.forValue((o,e)=>{const s=n.getValue(o-1,e);s&&t.setValue(o,e,s+1)}),t},so=n=>{const t={area:0},o=(e,s)=>t.area<e?(t.area=e,t.range=s,!0):!1;return n.forValue((e,s,a)=>{let i=1,u=a;o(i*u,{startRow:e-u+1,endRow:e,startColumn:s,endColumn:s});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:s};for(let c=s-1;c>=0&&n.getValue(e,c);c--){u=Math.min(n.getValue(e,c)||0,u),i++;const l=u*i;d.startColumn=c,d.startRow=e-u+1,o(l,d)}}),t},Os=(n,t)=>(r.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let s=o+1,a=n.getValue(s,e)||0;for(;a>1;)n.setValue(s,e,a-1),s+=1,a=n.getValue(s,e)||0}),n),qt=n=>{const t=[];let o=so(n);for(;o.area>0;)o.range&&(t.push(o.range),Os(n,o.range)),o=so(n);return t},xt=n=>{const t=no(n);return qt(t)};class Ps{constructor(){j(this,"_matrix",new r.ObjectMatrix)}add(...t){return t.forEach(o=>{r.Range.foreach(o,(e,s)=>{this._matrix.setValue(e,s,1)})}),this}subtract(...t){return t.forEach(o=>{r.Range.foreach(o,(e,s)=>{this._matrix.realDeleteValue(e,s)})}),this}merge(){const t=oo(this._matrix);return qt(t)}}const ks=(n,t,o="")=>n.reduce((e,s)=>{const a=s&&s[t];return typeof a!="string"?(console.warn(s,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(s)):e[o].push(s),e)},{}),As=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");r.runOnLifecycle(r.LifecycleStages.Ready,Ne);const Vs=(n,t)=>{const o=n.get(Ne),{values:e,unitId:s,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{r.Range.foreach(m,(g,f)=>{const v=o.getValue(s,a,g,f);v?i.push({pattern:v.pattern,row:g,col:f}):u.push({startColumn:f,endColumn:f,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(s,a,i);Object.keys(c.values).forEach(l=>{const m=c.values[l];m.ranges=xt(m.ranges)}),d.push({id:ht.id,params:vt(s,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:s,subUnitId:a,ranges:u}}),d},ht={id:"sheet.mutation.set.numfmt",type:r.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,s=n.get(Ne),a=t.unitId,i=t.subUnitId,u=Object.keys(o).reduce((d,c)=>{const l=e[c],m=o[c].ranges;return l&&d.push({...l,ranges:m}),d},[]);return s.setValues(a,i,u),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:r.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:s}=t;return n.get(Ne).deleteValues(o,e,s),!0}},Ls=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:s,subUnitId:a}=t,i=[];if(e.forEach(d=>{r.Range.foreach(d,(c,l)=>{const m=o.getValue(s,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(s,a,i);return Object.keys(u.values).forEach(d=>{const c=u.values[d];c.ranges=xt(c.ranges)}),[{id:ht.id,params:u}]},vt=(n,t,o)=>{const e=ks(o,"pattern"),s={},a={},i=As();return Object.keys(e).forEach(u=>{const d=e[u],c=i();s[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(r.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:s,values:a}},ro={id:"sheet.mutation.empty",type:r.CommandType.MUTATION,handler:()=>!0},ao={id:"sheet.command.insert-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return o.syncExecuteCommand(se.SetDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.RemoveDefinedNameMutation.id,params:s}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:s}]}),!0):!1}},io={id:"sheet.command.remove-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);if(!t)return!1;const s={...t};return o.syncExecuteCommand(se.RemoveDefinedNameMutation.id,s)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:s}],redoMutations:[{id:se.RemoveDefinedNameMutation.id,params:s}]}),!0):!1}},uo={id:"sheet.command.set-defined-name",type:r.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(r.ICommandService),e=n.get(r.IUndoRedoService);return t&&o.syncExecuteCommand(se.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:se.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:se.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},lo={id:"sheet.operation.scroll-to-cell",type:r.CommandType.OPERATION,handler:()=>!0},co="maxCellsPerSheet",Bs=3e6;var js=Object.defineProperty,Ws=Object.getOwnPropertyDescriptor,Fs=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ws(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&js(t,o,s),s},mo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends r.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[W,tt,Ut,nt,mn,at,it,Wt,Qn,pn,Mn,Be,Re,ut,dt,Rn,Cn,Le,Ce,wn,Ue,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Tn,F,$n,Fn,Hn,En,On,je,Nn,Dn,kn,We,Fe,Ft,fs,Vn,ye,zn,qe,q,eo,Bn,$e,He,Pn,Ln,At,Lt,J,Yn,xe,Wn,xn,qn,Gn,Bt,Ye,Me,Xn,_e,Ht,gt,Jn,Ke,Gt,pe,zt,ue,to,ht,$,Yt,ro,ao,io,uo,lo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(co,Bs)}};ft=Fs([r.OnLifecycle(r.LifecycleStages.Starting,ft),mo(0,r.ICommandService),mo(1,r.IConfigService)],ft);const Hs=["$","£","¥","¤","֏","؋","৳","฿","៛","₡","₦","₩","₪","₫","€","₭","₮","₱","₲","₴","₸","₹","₺","₼","₽","₾","₿"],$s={currency:2,date:4,datetime:5,error:11,fraction:7,general:0,grouped:11,number:1,percent:6,scientific:8,text:9,time:5,unknown:11};function Gs(n,t,o){var d,c;if(n==null||t==null)return t;const e=(o==null?void 0:o.getStyleByCell(n))||n.s,s=(o==null?void 0:o.getStyleByCell(t))||t.s;if(e==null||s==null||typeof e!="object"||typeof s!="object")return t;const a=(d=e==null?void 0:e.n)==null?void 0:d.pattern,i=(c=s==null?void 0:s.n)==null?void 0:c.pattern;if(a==null||i==null)return t;const u=zs(a,i);return s.n.pattern=u,t}function zs(n,t){const o=go(n),e=go(t);return o===0?t:[1,2,5,9,10].includes(o)?n:o===3?[4,5,6,7,8,9,11].includes(e)?t:n:[4,6,7,8].includes(o)?[2,3,4,5,6,7,8,9,11].includes(e)?t:n:o===11&&[2,3,4,6,7,8,9].includes(e)?t:n}function go(n){if(qs(n))return 3;const t=Po.getInfo(n).type||"unknown";return $s[t]}function qs(n){return!!Hs.find(t=>n.includes(t))&&n.startsWith("_(")}var xs=Object.defineProperty,Ys=Object.getOwnPropertyDescriptor,Ks=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ys(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&xs(t,o,s),s},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends r.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==se.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),s=[];return e.forEach(i=>{const u=o[i];if(u==null)return!0;Object.keys(u).forEach(c=>{const l=u[c];if(l==null)return!0;const m=this._getMergedCellData(i,c,l),g={subUnitId:c,unitId:i,cellValue:m};s.push({id:q.id,params:g})})}),s.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),s=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new r.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=Gs(m,l,s);u.setValue(d,c,g)}),u.clone()}};St=Ks([r.OnLifecycle(r.LifecycleStages.Ready,St),ho(0,z.Inject(r.IUniverInstanceService)),ho(1,r.ICommandService)],St);var Xs=Object.defineProperty,Js=Object.getOwnPropertyDescriptor,Zs=(n,t,o,e)=>{for(var s=e>1?void 0:e?Js(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Xs(t,o,s),s},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends r.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new r.ObjectMatrix({4:{0:{v:10,t:2}}})}},s={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:s})})}};Rt=Zs([r.OnLifecycle(r.LifecycleStages.Ready,Rt),Ct(0,r.ICommandService),Ct(1,se.IFeatureCalculationManagerService),Ct(2,r.IUniverInstanceService),Ct(3,z.Inject(se.FormulaDataModel))],Rt);const k={MoveRangeCommandId:gn,InsertRowCommandId:Sn,InsertColCommandId:In,RemoveColCommandId:bn,RemoveRowCommandId:Un,DeleteRangeMoveLeftCommandId:hn,DeleteRangeMoveUpCommandId:vn,InsertRangeMoveDownCommandId:us,InsertRangeMoveRightCommandId:fn,MoveColsCommandId:_n,MoveRowsCommandId:yn};var A=(n=>(n[n.Set=0]="Set",n[n.Delete=1]="Delete",n[n.HorizontalMove=2]="HorizontalMove",n[n.VerticalMove=3]="VerticalMove",n[n.Unknown=4]="Unknown",n))(A||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===r.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===r.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===r.RANGE_TYPE.ALL&&(t.startColumn=0,t.endColumn=It,t.startRow=0,t.endRow=It),t},ae=n=>({startRow:n.startColumn,endRow:n.endColumn,startColumn:n.startRow,endColumn:n.endRow}),Xe=(n,t,o)=>{const e={...o},s={...t},a=(S,C)=>{const I=Math.max(S.start,C.start),R=Math.min(S.end,C.end);return R<I?null:{start:I,end:R}},i=S=>S.end-S.start+1,u=(S,C)=>({start:S.start-C.start,end:S.start-C.start+S.end-S.start}),d=(S,C)=>({start:C.start+S.start,end:C.start+S.start+S.end-S.start}),c=t.start>n.start;if(c){const S=Math.min(n.end,t.start)-n.start+1;s.start-=S,s.end-=S}const l=i(n),m=l,g=a(n,e),f=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const S=i(g);if(f){const C=u(e,n),I=d(C,s);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=S+l,e.start-=l):e.end-=S:c?e.end-=S:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+S):e.end-=S}const v=a(s,e);return f||(s.start<=e.start?(e.start+=m,e.end+=m):v&&(c?s.end<=e.start||s.start<=e.start&&s.end>=e.start?(e.start+=m,e.end+=m):s.start>=e.start&&s.start<=e.end&&(e.end+=m):e.start<s.start&&e.end>s.start?e.end+=m:(e.start>=s.end||e.start>=s.start&&e.start<=s.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Kt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=ve(o),a=ve(e),i=ve(t),u=Xe({start:s.startRow,end:s.endRow},{start:a.startRow,end:a.endRow},{start:i.startRow,end:i.endRow});return u===null?[{type:A.Delete}]:[{type:A.VerticalMove,step:u.step||0,length:u.length||0}]},Qs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:s}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(s,i,a),r.queryObjectMatrix(u,c=>c===1)},Xt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const s=ve(o),a=ve(e),i=ve(t),u=Xe({start:s.startColumn,end:s.endColumn},{start:a.startColumn,end:a.endColumn},{start:i.startColumn,end:i.endColumn});return u===null?[{type:A.Delete}]:[{type:A.HorizontalMove,step:u.step||0,length:u.length||0}]},er=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:s}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new r.ObjectMatrix;return r.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(s,i,a),r.queryObjectMatrix(u,d=>d===1)},vo=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const s=[];if(r.Rectangle.contains(o,t)&&s.push({type:A.Delete}),r.Rectangle.contains(e,t)){s.push({type:A.Delete});const u=r.Rectangle.getRelativeRange(t,e),d=r.Rectangle.getPositionRange(u,o);return[{type:A.Set,range:d}]}return s},tr=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!r.Rectangle.intersects(e,t)&&!r.Rectangle.intersects(o,t))return[t];if(r.Rectangle.contains(e,t)){const f=r.Rectangle.getRelativeRange(t,e);return[r.Rectangle.getPositionRange(f,o)]}const s=new r.ObjectMatrix;r.Range.foreach(t,(f,v)=>{s.setValue(f,v,1)});const a=new r.ObjectMatrix,i=r.Rectangle.getIntersects(e,t);i&&r.Range.foreach(i,(f,v)=>{s.getValue(f,v)&&(s.setValue(f,v,void 0),a.setValue(f,v,1))});const u=o.startColumn-e.startColumn,d=o.startRow-e.startRow,c={startColumn:o.startColumn-u,endColumn:o.endColumn-u,startRow:o.startRow-d,endRow:o.endRow-d};return c&&r.Range.foreach(c,(f,v)=>{var I;const S=f+d,C=v+u;s.setValue(S,C,(I=a.getValue(f,v))!=null?I:0)}),r.queryObjectMatrix(s,f=>f===1)},De=(n,t)=>{const o=ve(n),e=ve(t),s=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=r.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-s(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=r.Rectangle.getIntersects(e,o);if(i){const u=-s(i);return{step:-(s(o)-s(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-s(o),length:0}}return{step:0,length:0}},Jt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(o,t);if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.HorizontalMove,step:i,length:u})}return e},Zt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(ae(o),ae(t));if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),s=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:s(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:s(o),length:0}}return{step:0,length:0}};function nr(n,t,o){const e=[];if(r.Rectangle.contains(t,o)&&e.push({type:A.Delete}),r.Rectangle.contains(n,o)){e.push({type:A.Delete});const s=r.Rectangle.getRelativeRange(o,n),a=r.Rectangle.getPositionRange(s,t);return[{type:A.Set,range:a}]}return e}const Qt=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(ae(o),ae(t)),{step:a,length:i}=s;return e.push({type:A.VerticalMove,step:a,length:i}),e},en=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(o,t),{step:a,length:i}=s;return e.push({type:A.HorizontalMove,step:a,length:i}),e},fo=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(ae(o),ae(t)),{step:a,length:i}=s;return e.push({type:A.VerticalMove,step:a,length:i}),e},or=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endRow-o.startRow+1,s={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(c=>{r.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&r.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),r.queryObjectMatrix(u,c=>c===1)},So=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],s=Oe(o,t),{step:a,length:i}=s;return e.push({type:A.HorizontalMove,step:a,length:i}),e},sr=(n,t)=>{var d;const o=(d=n.params)==null?void 0:d.range;if(!o)return[t];const e=o.endColumn-o.startColumn+1,s={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=r.Rectangle.subtract(t,s),i=r.Rectangle.getIntersects(s,t);if(!i)return[t];const u=new r.ObjectMatrix;return a.forEach(c=>{r.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&r.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),r.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(o,t);if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.HorizontalMove,step:i,length:u})}return e},rr=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={startRow:o.startRow,endRow:o.endRow,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},s=o.endColumn-o.startColumn+1,a=r.Rectangle.getIntersects(o,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(l,m)=>{d.setValue(l,m-s,1)}),a&&r.Range.foreach(a,(l,m)=>{d.setValue(l,m-s,0)}),i.forEach(l=>{r.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,l=>l===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],s=De(ae(o),ae(t));if(!s)e.push({type:A.Delete});else{const{step:i,length:u}=s;e.push({type:A.VerticalMove,step:i,length:u})}return e},ar=(n,t)=>{var c;const o=(c=n.params)==null?void 0:c.range;if(!o)return[t];const e={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},s=o.endRow-o.startRow+1,a=r.Rectangle.getIntersects(o,t),i=r.Rectangle.subtract(t,e),u=r.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new r.ObjectMatrix;return u&&r.Range.foreach(u,(l,m)=>{d.setValue(l-s,m,1)}),a&&r.Range.foreach(a,(l,m)=>{d.setValue(l-s,m,0)}),i.forEach(l=>{r.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),r.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case A.Delete:{o=null;break}case A.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case A.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case A.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},ir=(n,t)=>{let o=[];switch(t.id){case k.DeleteRangeMoveLeftCommandId:{o=Co(t,n);break}case k.DeleteRangeMoveUpCommandId:{o=Ro(t,n);break}case k.InsertColCommandId:{o=en(t,n);break}case k.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case k.InsertRangeMoveRightCommandId:{o=So(t,n);break}case k.InsertRowCommandId:{o=Qt(t,n);break}case k.MoveColsCommandId:{o=Xt(t,n);break}case k.MoveRangeCommandId:{o=vo(t,n);break}case k.MoveRowsCommandId:{o=Kt(t,n);break}case k.RemoveColCommandId:{o=Jt(t,n);break}case k.RemoveRowCommandId:{o=Zt(t,n);break}}return Pe(o,n)},ur=(n,t)=>{let o=[];switch(t.id){case k.DeleteRangeMoveLeftCommandId:return rr(t,n);case k.DeleteRangeMoveUpCommandId:return ar(t,n);case k.InsertRangeMoveDownCommandId:return or(t,n);case k.InsertRangeMoveRightCommandId:return sr(t,n);case k.InsertColCommandId:{o=en(t,n);break}case k.InsertRowCommandId:{o=Qt(t,n);break}case k.MoveColsCommandId:return er(t,n);case k.MoveRangeCommandId:return tr(t,n);case k.MoveRowsCommandId:return Qs(t,n);case k.RemoveColCommandId:{o=Jt(t,n);break}case k.RemoveRowCommandId:{o=Zt(t,n);break}}return Pe(o,n)};function dr(n,t){const{id:o,params:e}=t;let s={length:0,step:0,type:A.Unknown};switch(o){case Ae.id:s.type=A.Delete;break;case be.id:s=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),s.type=A.VerticalMove;break;case Te.id:s=Xe({start:e.sourceRange.startColumn,end:e.sourceRange.endColumn},{start:e.targetRange.startColumn,end:e.targetRange.endColumn},{start:n.startColumn,end:n.endColumn});break;case Ie.id:s=De(e.range,n),s?s.type=A.HorizontalMove:s={step:0,length:0,type:A.Delete};break;case we.id:s=De(ae(e.range),ae(n)),s?s.type=A.VerticalMove:s={step:0,length:0,type:A.Delete};break;case Ce.id:s=Oe(ae(e.range),ae(n)),s.type=A.VerticalMove;break;case Re.id:s=Oe(e.range,n),s.type=A.HorizontalMove;break;case Ve.id:s=nr(new r.ObjectMatrix(e.from).getRange(),new r.ObjectMatrix(e.to).getRange(),n);break}return s?Array.isArray(s)?Pe(s,n):Pe([s],n):n}var lr=Object.defineProperty,cr=Object.getOwnPropertyDescriptor,mr=(n,t,o,e)=>{for(var s=e>1?void 0:e?cr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&lr(t,o,s),s},Mt=(n,t)=>(o,e)=>t(o,e,n);const gr=r.createInterceptorKey("MERGE_REDO"),hr=r.createInterceptorKey("MERGE_UNDO");class vr extends r.Disposable{constructor(t,o,e,s){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=s}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=dr(this._range,t);if(o&&r.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends r.Disposable{constructor(o,e,s,a){super();j(this,"interceptor",new r.InterceptorManager({MERGE_REDO:gr,MERGE_UNDO:hr}));j(this,"_watchRanges",new Set);j(this,"_refRangeManagerMap",new Map);j(this,"_serializer",fr());j(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),s=Io(this._univerInstanceService),a=Mo(this._univerInstanceService),d=((()=>{switch(o.id){case k.MoveColsCommandId:{const f=o.params,v=Math.min(f.fromRange.startColumn,f.toRange.startColumn);return this._checkRange([{...f.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],s,a)}case k.MoveRowsCommandId:{const f=o.params,v=Math.min(f.fromRange.startRow,f.toRange.startRow);return this._checkRange([{...f.fromRange,startRow:v,endRow:e.getRowCount()-1}],s,a)}case k.MoveRangeCommandId:{const f=o;return this._checkRange([f.params.fromRange,f.params.toRange],s,a)}case k.InsertRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.InsertColCommandId:{const v=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.RemoveRowCommandId:{const S={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.RemoveColCommandId:{const v=o.params.range.startColumn,S={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([S],s,a)}case k.DeleteRangeMoveUpCommandId:case k.InsertRangeMoveDownCommandId:{const v=o.params.range||po(this._selectionManagerService)[0],S={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([S],s,a)}case k.DeleteRangeMoveLeftCommandId:case k.InsertRangeMoveRightCommandId:{const v=o.params.range||po(this._selectionManagerService)[0],S={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([S],s,a)}}})()||[]).reduce((f,v)=>{const S=v(o);return f.push(S),f},[]).reduce((f,v)=>{var S,C;return f.redos.push(...v.redos),f.undos.push(...v.undos),f.preRedos.push(...(S=v.preRedos)!=null?S:[]),f.preUndos.push(...(C=v.preUndos)!=null?C:[]),f},{redos:[],undos:[],preUndos:[],preRedos:[]}),c=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.preRedos,null)||[],l=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_REDO)(d.redos,null)||[],m=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.preUndos,null)||[],g=this.interceptor.fetchThroughInterceptors(this.interceptor.getInterceptPoints().MERGE_UNDO)(d.undos,null)||[];return{redos:l,undos:g,preRedos:c,preUndos:m}}})});j(this,"_checkRange",(o,e,s)=>{const a=wo(e,s),i=this._refRangeManagerMap.get(a);if(i){const u=new Set;return[...i.keys()].forEach(c=>{const l=i.get(c),m=this._serializer.deserialize(c);o.some(g=>r.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});j(this,"registerRefRange",(o,e,s,a)=>{const i=s||Io(this._univerInstanceService),u=a||Mo(this._univerInstanceService),d=wo(i,u),c=this._serializer.serialize(o);let l=this._refRangeManagerMap.get(d);l||(l=new Map,this._refRangeManagerMap.set(d,l));const m=l.get(c);return m?m.add(e):l.set(c,new Set([e])),r.toDisposable(()=>{const g=l.get(c);g&&(g.delete(e),g.size||(l.delete(c),l.size||this._refRangeManagerMap.delete(d)))})});this._commandService=o,this._sheetInterceptorService=e,this._univerInstanceService=s,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,s,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==r.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new vr(o,e,s,a);this._watchRanges.add(u);const d=r.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),c=this.disposeWithMe(d);return r.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=mr([r.OnLifecycle(r.LifecycleStages.Ready,h.RefRangeService),Mt(0,r.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(r.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Io(n){return n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getUnitId()}function Mo(n){return n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function po(n){return n.getSelectionRanges()||[]}function wo(n,t){return`${n}_${t}`}function fr(){const n=["startRow","startColumn","endRow","endColumn","rangeType"],t="_";return{deserialize:o=>{const e=n.reduce((a,i,u)=>(a[String(u)]=i,a),{});return o.split(t).reduce((a,i,u)=>{const d=String(u);return i&&e[d]&&(a[e[d]]=i),a},{})},serialize:o=>n.reduce((e,s,a)=>{const i=o[s];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var Sr=Object.defineProperty,Cr=Object.getOwnPropertyDescriptor,Rr=(n,t,o,e)=>{for(var s=e>1?void 0:e?Cr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Sr(t,o,s),s},Ge=(n,t)=>(o,e)=>t(o,e,n);const Ir=[Re.id,Ce.id,Ie.id,we.id],Mr=[be.id,Te.id];function yo(n,t){let o=n;if(t!==void 0){const e=[];for(let s=0;s<o.length;s++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[s];if(t===r.Dimension.ROWS)for(let c=a;c<=i;c++){const l={startRow:c,endRow:c,startColumn:u,endColumn:d};e.push(l)}else if(t===r.Dimension.COLUMNS)for(let c=u;c<=d;c++){const l={startRow:a,endRow:i,startColumn:c,endColumn:c};e.push(l)}}o=e}return o}h.MergeCellController=class extends r.Disposable{constructor(o,e,s,a,i,u){super();j(this,"disposableCollection",new r.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=s,this._injector=a,this._sheetInterceptorService=i,this._selectionManagerService=u,this._onRefRangeChange(),this._initCommandInterceptor(),this._commandExecutedListener()}_initCommandInterceptor(){const o=this;this._sheetInterceptorService.interceptCommand({getMutations(e){switch(e.id){case tt.id:case nt.id:{const s=o._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET),a=s.getUnitId(),i=s.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>r.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),f=[{id:F.id,params:m}],v=[{id:W.id,params:g}];return{redos:f,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,s){switch(o.id){case k.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,s)}case k.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,s)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||s;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,s)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,s)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,s)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,s)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,s)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,s)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,s)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(s,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(s);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,s,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,s,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(s=>{if(s.id===Bt.id){const a=s.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(s.id===W.id){const a=s.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(e){const s=e.getActiveSheet();o(e.getUnitId(),s.getSheetId())}}_handleMoveRowsCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},c={unitId:e,subUnitId:s,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(S=>{if(m<=S.startRow&&g>=S.endRow){d.ranges.push(S);const C=Kt({id:k.MoveRowsCommandId,params:o},S),I=Pe(C,S);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const f=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:W.id,params:c}],undos:[{id:F.id,params:v},{id:W.id,params:f}]}}_handleMoveColsCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:s,ranges:[]},c={unitId:e,subUnitId:s,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(S=>{if(m<=S.startColumn&&g>=S.endColumn){d.ranges.push(S);const C=Xt({id:k.MoveColsCommandId,params:o},S),I=Pe(C,S);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const f=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:W.id,params:c}],undos:[{id:F.id,params:v},{id:W.id,params:f}]}}_handleMoveRangeCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>r.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>r.Rectangle.intersects(v,o.toRange)),l=d.map(v=>r.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>r.Rectangle.getPositionRange(v,o.toRange)),m=yo(l).filter(v=>!u.some(S=>r.Rectangle.equals(v,S))),g=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:s,ranges:c}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:m}}],f=[{id:F.id,params:{unitId:e,subUnitId:s,ranges:m}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:c}},{id:W.id,params:{unitId:e,subUnitId:s,ranges:d}}];return{redos:g,undos:f}}_handleInsertRowCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=r.Tools.deepClone(i.getMergeData()).reduce((R,M)=>(d>M.startRow&&d<=M.endRow&&R.push(M),R),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((R,M)=>{if(d>M.startRow&&d<=M.endRow){const w=c-d+1;M.endRow+=w,this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:F.id,params:S},{id:W.id,params:f}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,s){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,s);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=r.Tools.deepClone(u.getMergeData()).reduce((R,M)=>(d>M.startColumn&&d<=M.endColumn&&R.push(M),R),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((R,M)=>{if(d>M.startColumn&&d<=M.endColumn){const w=c-d+1;M.endColumn+=w,this._checkIsMergeCell(M)&&R.push(M)}return R},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:F.id,params:S},{id:W.id,params:f}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=r.Tools.deepClone(i.getMergeData()).reduce((w,p)=>(r.Rectangle.intersects(u,p)&&w.push(p),w),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(i.getMergeData()).reduce((w,p)=>{if(r.Rectangle.intersects(u,p)){if(d<=p.startColumn&&c>=p.endColumn)return w;d>=p.startColumn&&c<=p.endColumn?p.endColumn-=c-d+1:d<p.startColumn?(p.startColumn=d,p.endColumn-=c-d+1):c>p.endColumn&&(p.endColumn=d-1),this._checkIsMergeCell(p)&&w.push(p)}return w},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:W.id,params:v}],R=[{id:F.id,params:S}],M=[{id:W.id,params:f}];return{preUndos:R,undos:M,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,s){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,s);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=r.Tools.deepClone(u.getMergeData()).reduce((w,p)=>(r.Rectangle.intersects(a,p)&&w.push(p),w),[]);if(l.length===0)return this._handleNull();const m=r.Tools.deepClone(u.getMergeData()).reduce((w,p)=>{if(r.Rectangle.intersects(a,p)){if(d<=p.startRow&&c>=p.endRow)return w;d>=p.startRow&&c<=p.endRow?p.endRow-=c-d+1:d<p.startRow?(p.startRow=d,p.endRow-=c-d+1):c>p.endRow&&(p.endRow=d-1),this._checkIsMergeCell(p)&&w.push(p)}return w},[]),g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:W.id,params:v}],R=[{id:F.id,params:S}],M=[{id:W.id,params:f}];return{preUndos:R,undos:M,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:M,endColumn:w}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:R,endColumn:d},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:R,endColumn:d},C))){const b=w-M+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:W.id,params:v}],undos:[{id:W.id,params:f},{id:F.id,params:S}]}}_handleInsertRangeMoveDownCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:M,startColumn:w,endColumn:p,endRow:y}=u;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:d,endColumn:p},R)&&(l.push(R),r.Rectangle.contains({startRow:M,startColumn:w,endRow:d,endColumn:p},R))){const T=y-M+1;m.push({startRow:R.startRow+T,startColumn:R.startColumn,endRow:R.endRow+T,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:W.id,params:f},{id:F.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:M,startColumn:w,endColumn:p,endRow:y}=u;if(r.Rectangle.intersects({startRow:M,startColumn:w,endRow:d,endColumn:p},R)&&(l.push(R),r.Rectangle.contains({startRow:M,startColumn:w,endRow:d,endColumn:p},R))){const T=y-M+1,D=r.Rectangle.moveVertical(R,-T);m.push(D)}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v),C=[{id:F.id,params:g},{id:W.id,params:v}],I=[{id:W.id,params:f},{id:F.id,params:S}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,s){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,s);if(!i)return this._handleNull();const u=o.range,d=i.getMaxColumns()-1,c=i.getMergeData(),l=[],m=[];c.forEach(C=>{const{startRow:I,endRow:R,startColumn:M,endColumn:w}=u;if(r.Rectangle.intersects({startRow:I,startColumn:M,endRow:R,endColumn:d},C)&&(l.push(C),r.Rectangle.contains({startRow:I,startColumn:M,endRow:R,endColumn:d},C))){const b=w-M+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:s,ranges:l},f=re(this._injector,g),v={unitId:e,subUnitId:s,ranges:m},S=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:W.id,params:v}],undos:[{id:W.id,params:f},{id:F.id,params:S}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(Mr.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const s=e.getSheetBySheetId(o.params.subUnitId);if(!s)return;const{sourceRange:a,targetRange:i}=o.params,u=a.startColumn===i.startColumn&&a.endColumn===i.endColumn,d=u?a.endRow-a.startRow+1:a.endColumn-a.startColumn+1,c=u?a.startRow:a.startColumn,l=u?i.startRow:i.startColumn,m=s.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:M,endColumn:w,rangeType:p}=C;r.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<M&&l>w?(M-=d,w-=d):c>w&&l<=M&&(M+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:M,endColumn:w,rangeType:p})}),s.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:f,subUnitId:v}=o.params,S=C=>this.refRangeHandle(C,f,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,S,f,v))})}if(Ir.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const s=e.getSheetBySheetId(o.params.subUnitId);if(!s)return;const a=s.getConfig().mergeData,i=o.params;if(!i)return;const{range:u}=i,d=o.id.includes("row"),c=o.id.includes("insert"),l=d?u.startRow:u.startColumn,m=d?u.endRow:u.endColumn,g=m-l+1,f=[];a.forEach(I=>{let{startRow:R,endRow:M,startColumn:w,endColumn:p,rangeType:y}=I;c?d?l<=R&&(R+=g,M+=g):l<=w&&(w+=g,p+=g):d?m<R&&(R-=g,M-=g):m<w&&(w-=g,p-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||f.push({startRow:R,endRow:M,startColumn:w,endColumn:p,rangeType:y})}),s.getConfig().mergeData=f,this.disposableCollection.dispose();const{unitId:v,subUnitId:S}=o.params,C=I=>this.refRangeHandle(I,v,S);f.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,S))})}}))}},h.MergeCellController=Rr([r.OnLifecycle(r.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(r.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(r.IUniverInstanceService)),Ge(3,z.Inject(z.Injector)),Ge(4,z.Inject(h.SheetInterceptorService)),Ge(5,z.Inject(h.SelectionManagerService))],h.MergeCellController);function ge(n,t){return t?n.getUniverSheetInstance(t):n.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const pr={sheets:{tabs:{sheetCopy:"(Copy)",sheet:"Sheet"},info:{overlappingSelections:"Cannot use that command on overlapping selections",acrossMergedCell:"Across a merged cell",partOfCell:"Only part of a merged cell is selected",hideSheet:"No visible sheet after you hide this"}}},_o={sheets:{tabs:{sheetCopy:"(副本)",sheet:"工作表"},info:{overlappingSelections:"无法对重叠选区使用该命令",acrossMergedCell:"无法跨越合并单元格",partOfCell:"仅选择了合并单元格的一部分",hideSheet:"隐藏后无可见工作表"}}};var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,_r=(n,t,o,e)=>{for(var s=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&wr(t,o,s),s},tn=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends r.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,s){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,s);if(d!=null&&d.s){const c=u.get(d.s);if(c!=null&&c.n)return c.n}return null}deleteValues(t,o,e){const s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const a=s==null?void 0:s.getSheetBySheetId(o);if(!a)return;const i=s.getStyles();e.forEach(u=>{r.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,f={...m&&i.get(m)||{}};delete f.n;const v=i.setValue(f);l.s=v})})}setValues(t,o,e){const s=this._univerInstanceService.getUniverSheetInstance(t);if(!s)return;const a=s==null?void 0:s.getSheetBySheetId(o);if(!a)return;const i=s.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{r.Range.foreach(c,(l,m)=>{const g=a.getCellRaw(l,m);if(g){const v={...g.s&&i.get(g.s)||{},n:{pattern:d.pattern}},S=i.setValue(v);g.s=S}else{const f={n:{pattern:d.pattern}},v=i.setValue(f);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=_r([tn(0,r.IResourceManagerService),tn(1,r.IUniverInstanceService),tn(2,r.ILogService)],h.NumfmtService);const Uo="univer.sheet.editable";class Je extends r.PermissionPoint{constructor(o,e){super();j(this,"id",Uo);j(this,"value",!0);j(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${Uo}_${o}_${e}`}}var Ur=Object.defineProperty,br=Object.getOwnPropertyDescriptor,Tr=(n,t,o,e)=>{for(var s=e>1?void 0:e?br(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Ur(t,o,s),s},bo=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends r.RxDisposable{constructor(o,e){super();j(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(r.UniverInstanceType.UNIVER_SHEET).pipe(sn.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(r.UniverInstanceType.UNIVER_SHEET).pipe(sn.takeUntil(this.dispose$)).subscribe(e=>{var s;return(s=this._disposableByUnit.get(e.getUnitId()))==null?void 0:s.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),s=new r.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),s.add(r.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),s.add(r.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),s.add(r.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,s)}getEditable$(o,e){return ke.of({value:!0,status:r.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,s){const a=this._univerInstanceService.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=s||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Tr([r.OnLifecycle(r.LifecycleStages.Ready,h.SheetPermissionService),bo(0,z.Inject(r.IPermissionService)),bo(1,z.Inject(r.IUniverInstanceService))],h.SheetPermissionService);function Er(n){var a,i,u;const t=n.get(r.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),s=(i=t.getCurrentUnitForType(r.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,s))==null?void 0:u.pipe(ke.map(d=>!d.value))}var Nr=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Or=(n,t,o,e)=>{for(var s=e>1?void 0:e?Dr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&Nr(t,o,s),s},pt=(n,t)=>(o,e)=>t(o,e,n);const Pr="SHEET_DEFINED_NAME_PLUGIN";let wt=class extends r.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Pr,businesses:[r.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Or([r.OnLifecycle(r.LifecycleStages.Ready,wt),pt(0,r.ICommandService),pt(1,r.IUniverInstanceService),pt(2,se.IDefinedNamesService),pt(3,r.IResourceManagerService)],wt);var kr=Object.defineProperty,Ar=Object.getOwnPropertyDescriptor,Vr=(n,t,o,e)=>{for(var s=e>1?void 0:e?Ar(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(s=(e?i(t,o,s):i(s))||s);return e&&s&&kr(t,o,s),s},nn=(n,t)=>(o,e)=>t(o,e,n);const Lr="sheets";h.UniverSheetsPlugin=(yt=class extends r.Plugin{constructor(t,o,e,s){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=s,this._initializeDependencies(s)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[ft],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([St],[Rt]),o.forEach(s=>{t.add(s)})}},j(yt,"pluginName",Lr),j(yt,"type",r.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Vr([nn(1,r.ICommandService),nn(2,z.Inject(r.LocaleService)),nn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Br=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,We.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],jr=[q.id,Ve.id,F.id,W.id],Wr=1.5,Fr="rgba(255, 255, 255, 0.01)";function Hr(n){const t=n.getCurrentTheme(),o=new r.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function $r(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,s={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(s.primary=To(o)),s}function To(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:s,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Gr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),s=r.makeCellRangeToRangeData(e);if(s)return{range:s,primary:e,style:null}}const zr=(n,t,o)=>{const s=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(s){const l=s[(s==null?void 0:s.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:f,startColumn:v,endRow:S,endColumn:C}=i[i.length-1];if(a===r.Dimension.COLUMNS){const w=o.find(p=>p.startColumn===m&&p.endColumn===m&&g===p.startRow);w&&(C=w.endColumn,f=w.startRow,S=w.endRow)}else if(a===r.Dimension.ROWS){const w=o.find(p=>p.startRow===g&&p.endRow===g&&m===p.startColumn);w&&(S=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:f,startColumn:v,endRow:S,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:f===g&&v===m},R=s.map((w,p,y)=>({range:w.range,style:null,primary:p===y.length-1?I:null})),M={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:M}}return null}return null},qr=(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections(),{unitId:s,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:s,subUnitId:a,pluginName:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=zr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=qr,h.AddWorksheetMergeMutation=W,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Br,h.COMMAND_LISTENER_VALUE_CHANGE=jr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=Ut,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=mn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=Wt,h.DeltaRowHeightCommand=Qn,h.EffectRefRangId=k,h.EmptyMutation=ro,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=pn,h.InsertColBeforeCommand=Mn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=ao,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Rn,h.InsertRowBeforeCommand=Cn,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=wn,h.InsertSheetMutation=Ue,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=co,h.MoveColsCommand=Pt,h.MoveColsMutation=Te,h.MoveRangeCommand=st,h.MoveRangeMutation=Ve,h.MoveRowsCommand=Ot,h.MoveRowsMutation=be,h.NORMAL_SELECTION_PLUGIN_NAME=X,h.OperatorType=A,h.RangeMergeUtil=Ps,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=io,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=cn,h.RemoveWorksheetMergeCommand=Tn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=$n,h.ResetTextColorCommand=Fn,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Fr,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Wr,h.ScrollToCellOperation=lo,h.SelectionMoveType=rn,h.SetBackgroundColorCommand=Hn,h.SetBoldCommand=Is,h.SetBorderBasicCommand=En,h.SetBorderColorCommand=On,h.SetBorderCommand=je,h.SetBorderPositionCommand=Nn,h.SetBorderStyleCommand=Dn,h.SetColHiddenCommand=kn,h.SetColHiddenMutation=We,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=uo,h.SetFontFamilyCommand=ys,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Vn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=zn,h.SetItalicCommand=Ms,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=fe,h.SetRowHeightCommand=eo,h.SetRowHiddenCommand=Bn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=Pn,h.SetSelectedRowsVisibleCommand=Ln,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ws,h.SetStyleCommand=J,h.SetTabColorCommand=Yn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Wn,h.SetTextRotationCommand=xn,h.SetTextWrapCommand=qn,h.SetUnderlineCommand=ps,h.SetVerticalTextAlignCommand=Gn,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=jt,h.SetWorksheetHideCommand=Xn,h.SetWorksheetHideMutation=_e,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Jn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Ds,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=to,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=To,h.convertSelectionDataToRange=$r,h.createTopMatrixFromMatrix=oo,h.createTopMatrixFromRanges=no,h.enUS=pr,h.factoryRemoveNumfmtUndoMutation=Ls,h.factorySetNumfmtUndoMutation=Vs,h.findAllRectangle=qt,h.followSelectionOperation=Se,h.getAddMergeMutationRangeByType=yo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=Er,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Hr,h.getPrimaryForRange=ne,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=ln,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=ur,h.handleDefaultRangeChangeWithEffectRefCommands=ir,h.handleDeleteRangeMoveLeft=Co,h.handleDeleteRangeMoveUp=Ro,h.handleDeleteRangeMutation=ss,h.handleIRemoveCol=Jt,h.handleIRemoveRow=Zt,h.handleInsertCol=en,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=So,h.handleInsertRangeMutation=os,h.handleInsertRow=Qt,h.handleMoveCols=Xt,h.handleMoveRange=vo,h.handleMoveRows=Kt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Gr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});