@univerjs/sheets 0.1.9 → 0.1.11

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 (59) hide show
  1. package/lib/cjs/index.js +2 -2
  2. package/lib/es/index.js +1371 -1416
  3. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +1 -1
  4. package/lib/types/commands/commands/move-range.command.d.ts +1 -1
  5. package/lib/types/commands/commands/set-border-command.d.ts +1 -1
  6. package/lib/types/commands/commands/set-defined-name.command.d.ts +1 -1
  7. package/lib/types/commands/commands/set-range-values.command.d.ts +1 -1
  8. package/lib/types/commands/commands/set-workbook-name.command.d.ts +10 -0
  9. package/lib/types/commands/commands/set-worksheet-show.command.d.ts +2 -0
  10. package/lib/types/commands/commands/utils/selection-utils.d.ts +11 -2
  11. package/lib/types/commands/mutations/__tests__/create-command-test-bed.d.ts +1 -1
  12. package/lib/types/commands/mutations/add-worksheet-merge.mutation.d.ts +2 -2
  13. package/lib/types/commands/mutations/insert-row-col.mutation.d.ts +2 -2
  14. package/lib/types/commands/mutations/insert-sheet.mutation.d.ts +2 -2
  15. package/lib/types/commands/mutations/move-rows-cols.mutation.d.ts +1 -1
  16. package/lib/types/commands/mutations/numfmt-mutation.d.ts +1 -1
  17. package/lib/types/commands/mutations/remove-row-col.mutation.d.ts +2 -2
  18. package/lib/types/commands/mutations/remove-sheet.mutation.d.ts +2 -2
  19. package/lib/types/commands/mutations/remove-worksheet-merge.mutation.d.ts +2 -2
  20. package/lib/types/commands/mutations/set-col-visible.mutation.d.ts +1 -1
  21. package/lib/types/commands/mutations/set-frozen.mutation.d.ts +1 -1
  22. package/lib/types/commands/mutations/set-hide-gridlines.mutatiom.d.ts +1 -1
  23. package/lib/types/commands/mutations/set-range-values.mutation.d.ts +1 -1
  24. package/lib/types/commands/mutations/set-row-visible.mutation.d.ts +1 -1
  25. package/lib/types/commands/mutations/set-tab-color.mutation.d.ts +1 -1
  26. package/lib/types/commands/mutations/set-workbook-name.mutation.d.ts +7 -0
  27. package/lib/types/commands/mutations/set-worksheet-col-width.mutation.d.ts +1 -1
  28. package/lib/types/commands/mutations/set-worksheet-hide.mutation.d.ts +1 -1
  29. package/lib/types/commands/mutations/set-worksheet-name.mutation.d.ts +1 -1
  30. package/lib/types/commands/mutations/set-worksheet-order.mutation.d.ts +1 -1
  31. package/lib/types/commands/mutations/set-worksheet-right-to-left.mutation.d.ts +1 -1
  32. package/lib/types/commands/mutations/set-worksheet-row-height.mutation.d.ts +2 -2
  33. package/lib/types/commands/operations/selection.operation.d.ts +2 -2
  34. package/lib/types/commands/utils/handle-merge-operation.d.ts +3 -3
  35. package/lib/types/commands/utils/handle-range-mutation.d.ts +2 -2
  36. package/lib/types/controllers/__tests__/util.d.ts +1 -1
  37. package/lib/types/controllers/basic-worksheet.controller.d.ts +1 -1
  38. package/lib/types/controllers/defined-name-data.controller.d.ts +1 -1
  39. package/lib/types/controllers/feature-calculation.controller.d.ts +1 -1
  40. package/lib/types/controllers/merge-cell.controller.d.ts +6 -6
  41. package/lib/types/index.d.ts +3 -1
  42. package/lib/types/locale/index.d.ts +1 -0
  43. package/lib/types/locale/ru-RU.d.ts +4 -0
  44. package/lib/types/services/__tests__/util.d.ts +1 -1
  45. package/lib/types/services/border-style-manager.service.d.ts +1 -1
  46. package/lib/types/services/numfmt/numfmt.service.d.ts +1 -1
  47. package/lib/types/services/ref-range/__tests__/__testing__.d.ts +1 -1
  48. package/lib/types/services/ref-range/ref-range.service.d.ts +4 -4
  49. package/lib/types/services/ref-range/type.d.ts +8 -8
  50. package/lib/types/services/ref-range/util.d.ts +5 -5
  51. package/lib/types/services/selection-manager.service.d.ts +2 -2
  52. package/lib/types/services/sheet-interceptor/__tests__/create-core-test-bed.d.ts +1 -1
  53. package/lib/types/services/sheet-interceptor/interceptor-const.d.ts +1 -1
  54. package/lib/types/services/sheet-interceptor/sheet-interceptor.service.d.ts +1 -1
  55. package/lib/types/sheets-plugin.d.ts +1 -1
  56. package/lib/umd/index.js +2 -2
  57. package/package.json +13 -14
  58. package/lib/types/basics/__tests__/numfmt-kit.spec.d.ts +0 -16
  59. package/lib/types/basics/numfmt-kit.d.ts +0 -41
package/lib/umd/index.js CHANGED
@@ -1,2 +1,2 @@
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"})});
1
+ (function(h,s){typeof exports=="object"&&typeof module<"u"?s(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"],s):(h=typeof globalThis<"u"?globalThis:h||self,s(h.UniverSheets={},h.UniverCore,h["@wendellhu/redi"],h.rxjs,h.UniverEngineFormula,h.rxjs.operators,h.UniverEngineRender))})(this,function(h,s,z,ke,ne,an,ko){"use strict";var zr=Object.defineProperty;var qr=(h,s,z)=>s in h?zr(h,s,{enumerable:!0,configurable:!0,writable:!0,value:z}):h[s]=z;var W=(h,s,z)=>(qr(h,typeof s!="symbol"?s+"":s,z),z);var yt;var Ao=Object.defineProperty,Vo=Object.getOwnPropertyDescriptor,Lo=(n,t,o,e)=>{for(var r=e>1?void 0:e?Vo(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ao(t,o,r),r},Bo=(n,t)=>(o,e)=>t(o,e,n);const X="normalSelectionPluginName";var un=(n=>(n[n.MOVE_START=0]="MOVE_START",n[n.MOVING=1]="MOVING",n[n.MOVE_END=2]="MOVE_END",n))(un||{});h.SelectionManagerService=class{constructor(t){W(this,"_selectionInfo",new Map);W(this,"_currentSelection",null);W(this,"_selectionMoveStart$",new ke.Subject);W(this,"selectionMoveStart$",this._selectionMoveStart$.asObservable());W(this,"_selectionMoving$",new ke.Subject);W(this,"selectionMoving$",this._selectionMoving$.asObservable());W(this,"_selectionMoveEnd$",new ke.BehaviorSubject(null));W(this,"selectionMoveEnd$",this._selectionMoveEnd$.asObservable());W(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:r},a)=>e===a?!1:o.startRow<=r.endRow&&o.endRow>=r.startRow&&o.startColumn<=r.endColumn&&o.endColumn>=r.startColumn))}_getSelectionDatas(t){var a,i;if(t==null)return;const{pluginName:o,unitId:e,sheetId:r}=t;return(i=(a=this._selectionInfo.get(o))==null?void 0:a.get(e))==null?void 0:i.get(r)}_refresh(t){this._selectionMoveEnd$.next(this._getSelectionDatas(t))}_refreshStart(t){this._selectionMoveStart$.next(this._getSelectionDatas(t))}_refreshMoving(t){this._selectionMoving$.next(this._getSelectionDatas(t))}_getFirstByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[0]}_getLastByParam(t){const o=this._getSelectionDatas(t);return o==null?void 0:o[o.length-1]}_addByParam(t,o=!0){const{pluginName:e,unitId:r,sheetId:a,selectionDatas:i}=t;this._selectionInfo.has(e)||this._selectionInfo.set(e,new Map);const u=this._selectionInfo.get(e);u.has(r)||u.set(r,new Map);const d=u.get(r);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:r,sheetId:a})}_replaceByParam(t){const{pluginName:o,unitId:e,sheetId:r,selectionDatas:a}=t;this._selectionInfo.has(o)||this._selectionInfo.set(o,new Map);const i=this._selectionInfo.get(o);i.has(e)||i.set(e,new Map);const u=i.get(e);if(!u.has(r))u.set(r,a);else{let d=u.get(r);d==null&&(d=[],u.set(r,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(s.ThemeService))],h.SelectionManagerService);const Wo=s.createInterceptorKey("CELL_CONTENT"),jo=s.createInterceptorKey("ROW_FILTERED"),Qe={CELL_CONTENT:Wo,ROW_FILTERED:jo};var Fo=Object.defineProperty,Ho=Object.getOwnPropertyDescriptor,$o=(n,t,o,e)=>{for(var r=e>1?void 0:e?Ho(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Fo(t,o,r),r},Go=(n,t)=>(o,e)=>t(o,e,n);h.SheetInterceptorService=class extends s.Disposable{constructor(o){super();W(this,"_interceptorsByName",new Map);W(this,"_commandInterceptors",[]);W(this,"_workbookDisposables",new Map);W(this,"_worksheetDisposables",new Map);this._univerInstanceService=o,this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>{this._interceptWorkbook(e)})),this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).subscribe(e=>this._disposeWorkbookInterceptor(e))),this.intercept(Qe.CELL_CONTENT,{priority:-1,handler(e,r){const a=r.worksheet.getCellRaw(r.row,r.col);return e?{...a,...e}:a}})}dispose(){super.dispose(),this._workbookDisposables.forEach(o=>o.dispose()),this._workbookDisposables.clear(),this._worksheetDisposables.clear()}interceptCommand(o){if(this._commandInterceptors.includes(o))throw new Error("[SheetInterceptorService]: Interceptor already exists!");return this._commandInterceptors.push(o),this._commandInterceptors.sort((e,r)=>{var a,i;return((a=r.priority)!=null?a:0)-((i=e.priority)!=null?i:0)}),this.disposeWithMe(s.toDisposable(()=>s.remove(this._commandInterceptors,o)))}onCommandExecute(o){const e=this._commandInterceptors.map(r=>r.getMutations(o));return{preUndos:e.map(r=>{var a;return(a=r.preUndos)!=null?a:[]}).flat(),undos:e.map(r=>r.undos).flat(),preRedos:e.map(r=>{var a;return(a=r.preRedos)!=null?a:[]}).flat(),redos:e.map(r=>r.redos).flat()}}intercept(o,e){const r=o;this._interceptorsByName.has(r)||this._interceptorsByName.set(r,[]);const a=this._interceptorsByName.get(r);return a.push(e),this._interceptorsByName.set(r,a.sort((i,u)=>{var d,c;return((d=u.priority)!=null?d:0)-((c=i.priority)!=null?c:0)})),this.disposeWithMe(s.toDisposable(()=>s.remove(this._interceptorsByName.get(r),e)))}fetchThroughInterceptors(o){const e=o,r=this._interceptorsByName.get(e);return s.composeInterceptors(r||[])}_interceptWorkbook(o){const e=new s.DisposableCollection,r=o.getUnitId(),a=this,i=u=>{const d=u.getSheetId();u.__interceptViewModel(c=>{const l=new s.DisposableCollection;a._worksheetDisposables.set(dn(r,u),l),l.add(c.registerCellContentInterceptor({getCell(m,g){return a.fetchThroughInterceptors(Qe.CELL_CONTENT)(u.getCellRaw(m,g),{unitId:r,subUnitId:d,row:m,col:g,worksheet:u,workbook:o})}})),l.add(c.registerRowFilteredInterceptor({getRowFiltered(m){return!!a.fetchThroughInterceptors(Qe.ROW_FILTERED)(!1,{unitId:r,subUnitId:d,row:m,workbook:o,worksheet:u})}}))})};o.getSheets().forEach(u=>i(u)),e.add(s.toDisposable(o.sheetCreated$.subscribe(u=>i(u)))),e.add(s.toDisposable(()=>o.getSheets().forEach(u=>this._disposeSheetInterceptor(r,u)))),e.add(s.toDisposable(o.sheetDisposed$.subscribe(u=>this._disposeSheetInterceptor(r,u)))),this._workbookDisposables.set(r,e)}_disposeWorkbookInterceptor(o){const e=o.getUnitId(),r=this._workbookDisposables.get(e);r&&(r.dispose(),this._workbookDisposables.delete(e))}_disposeSheetInterceptor(o,e){const r=dn(o,e),a=this._worksheetDisposables.get(r);a&&(a.dispose(),this._worksheetDisposables.delete(r))}},h.SheetInterceptorService=$o([s.OnLifecycle(s.LifecycleStages.Starting,h.SheetInterceptorService),Go(0,s.IUniverInstanceService)],h.SheetInterceptorService);function dn(n,t){return`${n}|${t.getSheetId()}`}const Se=(n,t)=>{const{unitId:o,subUnitId:e,cellValue:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o);if(i==null)throw new Error("workbook is null error!");const u=i.getSheetBySheetId(e);if(u==null)throw new Error("worksheet is null error!");const d=u.getCellMatrix(),c=i.getStyles(),l=new s.ObjectMatrix;return new s.ObjectMatrix(r).forValue((g,S,v)=>{const f=s.Tools.deepClone(d==null?void 0:d.getValue(g,S))||{},C=c.getStyleByCell(f),I=xo(C,v&&v.s?v.s:null);f.s=I,l.setValue(g,S,zo(f))}),{...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:s.CommandType.MUTATION,handler:(n,t)=>{const{cellValue:o,subUnitId:e,unitId:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(r);if(!i)return!1;const u=i.getSheetBySheetId(e);if(!u)return!1;const d=u.getCellMatrix(),c=i.getStyles();return new s.ObjectMatrix(o).forValue((m,g,S)=>{if(!S)d==null||d.setValue(m,g,{});else{const v=d.getValue(m,g)||{},f=S.t?S.t:S.v!==void 0?ln(S.v,S.t):ln(v.v,v.t);if(S.f!==void 0&&(v.f=S.f),S.si!==void 0&&(v.si=S.si),S.p!==void 0&&(v.p=S.p),S.v!==void 0&&(v.v=f===s.CellValueType.NUMBER?Number(S.v):f===s.CellValueType.BOOLEAN?qo(S.v)?1:0:S.v),v.v!==void 0&&(v.t=f),S.s!==void 0){const C=c.getStyleByCell(v);C==null&&delete v.s,typeof S.s=="string"&&(S.s=c.get(S.s));const I=et(C,S.s?S.s:null);I&&s.Tools.removeNull(I),s.Tools.isEmptyObject(I)?delete v.s:v.s=c.setValue(I),!S.p&&v.p&&Xo(v.p,S.s?S.s:null)}S.custom!==void 0&&(v.custom=S.custom),d.setValue(m,g,s.Tools.removeNull(v))}}),!0}};function ln(n,t){return n===null?null:typeof n=="string"?s.isSafeNumeric(n)?(+n==0||+n==1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:s.isBooleanString(n)?s.CellValueType.BOOLEAN:s.CellValueType.STRING:typeof n=="number"?(n===0||n===1)&&t===s.CellValueType.BOOLEAN?s.CellValueType.BOOLEAN:s.CellValueType.NUMBER:typeof n=="boolean"?s.CellValueType.BOOLEAN:s.CellValueType.FORCE_STRING}function qo(n){if(typeof n=="string"){if(n.toUpperCase()==="TRUE")return!0;if(n.toUpperCase()==="FALSE")return!1;if(s.isSafeNumeric(n)){if(Number(n)===0)return!1;if(Number(n)===1)return!0}}if(typeof n=="number"){if(n===0)return!1;if(n===1)return!0}return typeof n=="boolean"?n:null}function 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=s.Tools.deepClone(n)||{};if(e){for(const r in t)o&&["bd","tr","td","ht","vt","tb","pd"].includes(r)||(r in e&&r==="bd"?e[r]=Object.assign(e[r],t[r]):e[r]=t[r]);return"cl"in e&&("ul"in e&&e.ul&&(e.ul.cl=e.cl),"ol"in e&&e.ol&&(e.ol.cl=e.cl),"st"in e&&e.st&&(e.st.cl=e.cl)),e}}function cn(n,t){return n.some(o=>o.startIndex===t)?cn(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=[],r=((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},S=et({},t,!0);S&&s.Tools.removeNull(S),s.Tools.isEmptyObject(S)||(g.ts=S),e.push(g)}const m=et(l,t,!0);m&&s.Tools.removeNull(m),s.Tools.isEmptyObject(m)?delete u.ts:u.ts=m,e.push(u),o=cn(r,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&&s.Tools.removeNull(d),s.Tools.isEmptyObject(d)||(u.ts=d),e.push(u)}n.body.textRuns=s.normalizeTextRuns(e)}const tt={id:"sheet.command.clear-selection-all",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.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=[],S={subUnitId:c,unitId:u,cellValue:Jo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:tt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Jo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.clone()}const _t={id:"sheet.command.clear-selection-content",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.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=Se(n,m),S=a.onCommandExecute({id:_t.id}),v=[{id:q.id,params:m},...S.redos],f=[...S.undos,{id:q.id,params:g}];return s.sequenceExecute(v,o).result?(r.pushUndoRedo({unitID:u,undoMutations:f,redoMutations:v}),!0):!1}};function Zo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{v:null,p:null,f:null,si:null,custom:null})}),t.clone()}const nt={id:"sheet.command.clear-selection-format",type:s.CommandType.COMMAND,handler:async n=>{const t=n.get(s.IUniverInstanceService),o=n.get(s.ICommandService),e=n.get(h.SelectionManagerService),r=n.get(s.IUndoRedoService),a=n.get(h.SheetInterceptorService),i=t.getCurrentUnitForType(s.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=[],S={subUnitId:c,unitId:u,cellValue:Qo(l)},v=Se(n,S);m.push({id:q.id,params:S}),g.push({id:q.id,params:v});const f=a.onCommandExecute({id:nt.id});return m.push(...f.redos),g.unshift(...f.undos),s.sequenceExecute(m,o)?(r.pushUndoRedo({unitID:u,undoMutations:g,redoMutations:m}),!0):!1}};function Qo(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,{s:null})}),t.clone()}const bt=(n,t)=>({subUnitId:t.sheet.id,unitId:t.unitId,subUnitName:t.sheet.name}),_e={id:"sheet.mutation.insert-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{sheet:e,index:r,unitId:a}=t,i=o.getUniverSheetInstance(a);return i?i.addWorksheet(e.id,r,e):!1}};function mn(n,t){const{unitId:o}=t,e=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);return e?{workbook:e,unitId:e.getUnitId()}:null}function B(n,t={}){const{unitId:o,subUnitId:e}=t,r=o?n.getUniverSheetInstance(o):n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return null;const a=e?r.getSheetBySheetId(e):r.getActiveSheet();return a?{worksheet:a,workbook:r,unitId:r.getUnitId(),subUnitId:a.getSheetId()}:null}function ot(n,t){const{unitId:o,subUnitId:e}=t,r=n.getUniverSheetInstance(o);if(!r)return null;const a=r.getSheetBySheetId(e);return a?{worksheet:a,workbook:r}:null}const gn=(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=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:r}},Ae={id:"sheet.mutation.remove-sheet",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService),{subUnitId:e,unitId:r}=t,a=o.getUniverSheetInstance(r);return a?a.removeSheet(e):!1}},hn={type:s.CommandType.COMMAND,id:"sheet.command.copy-sheet",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=B(r,t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c}=i,l=s.Tools.deepClone(d.getConfig());l.name+=a.t("sheets.tabs.sheetCopy"),l.id=s.Tools.generateRandomId();const g={index:u.getSheetIndex(d)+1,sheet:l,unitId:c},S=bt(n,g);return o.syncExecuteCommand(_e.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ae.id,params:S}],redoMutations:[{id:_e.id,params:g}]}),!0):!1}},Ve={id:"sheet.mutation.move-range",type:s.CommandType.MUTATION,handler:(n,t)=>{const{from:o,to:e}=t;if(!o||!e)return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getSheetBySheetId(t.from.subUnitId),u=a.getSheetBySheetId(t.to.subUnitId);if(!i||!u)return!1;const d=i.getCellMatrix(),c=u.getCellMatrix();return new s.ObjectMatrix(o.value).forValue((l,m,g)=>{d.setValue(l,m,g)}),new s.ObjectMatrix(e.value).forValue((l,m,g)=>{c.setValue(l,m,g)}),!0}},$={id:"sheet.operation.set-selections",type:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(h.SelectionManagerService);if(!t)return!1;const{selections:e,type:r}=t;return o.replace(e,r),!0}};function ze(n,t,o=!0){const e=t.getMatrixWithMergedCells(...s.selectionToArray(n)),r=[];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};s.Rectangle.contains(n,c)||r.push(c)}}),r.length===0)return n;const a=s.Rectangle.union(n,...r);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:s.RANGE_TYPE.NORMAL},!1)),e||{actualColumn:t,actualRow:n,startRow:n,startColumn:t,endRow:n,endColumn:t,isMerged:!1,isMergedMainCell:!1,rangeType:s.RANGE_TYPE.NORMAL}}function ts(n,t,o){const{startRow:e,startColumn:r,endRow:a,endColumn:i}=n;return Number.isNaN(e)&&(n.startRow=0),Number.isNaN(a)&&(n.endRow=t-1),Number.isNaN(r)&&(n.startColumn=0),Number.isNaN(i)&&(n.endColumn=o-1),n}function oe(n,t){const o=Number.isNaN(n.startRow)?0:n.startRow,e=Number.isNaN(n.startColumn)?0:n.startColumn,r=t.getMergedCell(o,e);return r?{...r,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!0,isMergedMainCell:!0}:{startRow:o,startColumn:e,endRow:n.startRow,endColumn:n.startColumn,actualRow:o,actualColumn:e,rangeType:s.RANGE_TYPE.NORMAL,isMerged:!1,isMergedMainCell:!1}}const fe=(n,t,o)=>({id:$.id,params:{unitId:t.getUnitId(),subUnitId:o.getSheetId(),pluginName:X,selections:[{range:n,primary:oe(n,o)}]}});function ns(n){if(!n)return!1;const{range:t,primary:o}=n;return s.Rectangle.equals(t,o)}function os(n){function t(o,e){function r(a){for(let i=a.startRow;i<=a.endRow;i++)if(!n.getRowFiltered(i))for(let u=a.startColumn;u<=a.endColumn;u++)e(i,u,a)}r(o)}return{forOperableEach:t}}const vn="sheet.command.move-range",st={type:s.CommandType.COMMAND,id:vn,handler:(n,t)=>{var I,R;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.ErrorService),i=n.get(s.LocaleService),u=B(r);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 S=n.get(h.SheetInterceptorService).onCommandExecute({id:st.id,params:{...t}}),v=[...(I=S.preRedos)!=null?I:[],...m.redos,...S.redos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.toRange,primary:oe(t.toRange,d)}]}}],f=[...(R=S.preUndos)!=null?R:[],...m.undos,...S.undos,{id:$.id,params:{unitId:l,subUnitId:c,pluginName:X,selections:[{range:t.fromRange,primary:oe(t.fromRange,d)}]}}];return s.sequenceExecute(v,o).result?(e.pushUndoRedo({unitID:l,undoMutations:f,redoMutations:v}),!0):!1}};function rt(n,t,o,e=!1){const r=[],a=[],{range:i,subUnitId:u,unitId:d}=t,{range:c,subUnitId:l}=o,g=n.get(s.IUniverInstanceService).getUniverSheetInstance(d),S=g==null?void 0:g.getSheetBySheetId(l),v=g==null?void 0:g.getSheetBySheetId(u),f=S==null?void 0:S.getCellMatrix(),C=v==null?void 0:v.getCellMatrix();if(S&&v&&f&&C){const I=ze(c,S,!1);if(!s.Rectangle.equals(c,I)&&!e)return null;const R=new s.ObjectMatrix,p=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{R.setValue(_,N,C.getValue(_,N)),p.setValue(_,N,null)});const w=new s.ObjectMatrix;s.Range.foreach(c,(_,N)=>{w.setValue(_,N,f.getValue(_,N))});const M=new s.ObjectMatrix;s.Range.foreach(i,(_,N)=>{const A=s.cellToRange(_,N),x=s.Rectangle.getRelativeRange(A,i),Y=s.Rectangle.getPositionRange(x,c);M.setValue(Y.startRow,Y.startColumn,C.getValue(_,N))});const y={from:{value:p.getMatrix(),subUnitId:u},to:{value:M.getMatrix(),subUnitId:l},unitId:d},b={from:{value:R.getMatrix(),subUnitId:u},to:{value:w.getMatrix(),subUnitId:l},unitId:d};r.push({id:Ve.id,params:y}),a.push({id:Ve.id,params:b})}return{redos:r,undos:a}}const qe={id:"sheet.command.set-range-values",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r,{subUnitId:t.subUnitId,unitId:t.unitId});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 S=new s.ObjectMatrix;let v;if(s.Tools.isArray(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=0;A<=_-y;A++)for(let x=0;x<=N-b;x++)S.setValue(A+y,x+b,l[A][x])}else if(s.isICellData(l))for(let M=0;M<g.length;M++){const{startRow:y,startColumn:b,endRow:_,endColumn:N}=g[M];for(let A=y;A<=_;A++)for(let x=b;x<=N;x++)S.setValue(A,x,l)}else v=l;const f={subUnitId:d,unitId:c,cellValue:v!=null?v:S.getMatrix()},C=Se(n,f),I=o.syncExecuteCommand(q.id,f),{undos:R,redos:p}=i.onCommandExecute({id:qe.id,params:{...f,range:g}}),w=s.sequenceExecute([...p],o);return I&&w.result?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}};function Tt(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u,cellValue:d={}}=t,c=n.get(s.IUniverInstanceService),l=n.get(h.SheetInterceptorService),m=c.getUniverSheetInstance(r),g=m==null?void 0:m.getSheetBySheetId(a);if(g){const S=g.getCellMatrix(),v=S.getDataRange();if(i.startColumn<=v.endColumn||i.startRow<=v.endRow){let p,w;if(u===s.Dimension.COLUMNS){const y=Math.min(i.endRow,v.endRow);let b=0;for(let N=i.startRow;N<=y;N++){const A=S.getRow(N),x=A?s.getArrayLength(A)-1:0;b=Math.max(b,x)}p={startRow:i.startRow,startColumn:i.startColumn,endRow:y,endColumn:b};const _=i.endColumn-i.startColumn+1;w={startRow:i.startRow,startColumn:p.startColumn+_,endRow:y,endColumn:p.endColumn+_}}else{const y=Math.min(i.endColumn,v.endColumn),b=v.endRow;p={startRow:i.startRow,startColumn:i.startColumn,endRow:b,endColumn:y};const _=i.endRow-i.startRow+1;w={startRow:p.startRow+_,startColumn:i.startColumn,endRow:p.endRow+_,endColumn:y}}const M=rt(n,{unitId:r,subUnitId:a,range:p},{unitId:r,subUnitId:a,range:w},!0);M&&(o.push(...M.redos),e.push(...M.undos))}if(Object.entries(d).length===0)for(let p=i.startRow;p<=i.endRow;p++){d[p]||(d[p]={});for(let w=i.startColumn;w<=i.endColumn;w++)d[p][w]=null}const f={subUnitId:a,unitId:r,cellValue:d},C=Se(n,f),{undos:I,redos:R}=l.onCommandExecute({id:qe.id,params:{...f,range:i}});o.push({id:q.id,params:f},...R),e.push({id:q.id,params:C},...I)}return{redo:o,undo:e}}function Et(n,t){const o=[],e=[],{unitId:r,subUnitId:a,range:i,shiftDimension:u}=t,d=n.get(s.IUniverInstanceService),c=n.get(h.SheetInterceptorService),l=d.getUniverSheetInstance(r),m=l==null?void 0:l.getSheetBySheetId(a);if(m){const g=m.getCellMatrix(),S=g.getDataRange(),v={subUnitId:a,unitId:r,cellValue:as([i])},f=Se(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:f}),i.startColumn<=S.endColumn||i.startRow<=S.endRow){let I=null,R=null;if(u===s.Dimension.COLUMNS&&i.endColumn<S.endColumn){const p=Math.min(i.endRow,S.endRow);let w=0;for(let y=i.startRow;y<=p;y++){const b=g.getRow(y),_=b?s.getArrayLength(b)-1:0;w=Math.max(w,_)}I={startRow:i.startRow,startColumn:i.endColumn+1,endRow:p,endColumn:w};const M=i.endColumn-i.startColumn+1;R={startRow:i.startRow,startColumn:I.startColumn-M,endRow:p,endColumn:I.endColumn-M}}if(u===s.Dimension.ROWS&&i.endRow<S.endRow){const p=Math.min(i.endColumn,S.endColumn),w=S.endRow;I={startRow:i.endRow+1,startColumn:i.startColumn,endRow:w,endColumn:p};const M=i.endRow-i.startRow+1;R={startRow:I.startRow-M,startColumn:i.startColumn,endRow:I.endRow-M,endColumn:p}}if(I&&R){const p=rt(n,{unitId:r,subUnitId:a,range:I},{unitId:r,subUnitId:a,range:R},!0);p&&(o.push(...p.redos),e.push(...p.undos))}}}return{redo:o,undo:e}}function ss(n,t,o,e,r,a){const{startRow:i,endRow:u,startColumn:d,endColumn:c}=t;if(r===s.Dimension.ROWS){const l=u-i+1;for(let m=o;m>=i;m--)for(let g=d;g<=c;g++){const S=n.getValue(m,g);S==null?n.realDeleteValue(m+l,g):n.setValue(m+l,g,S)}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(r===s.Dimension.COLUMNS){const l=c-d+1;for(let m=i;m<=u;m++)for(let g=e;g>=d;g--){const S=n.getValue(m,g);S==null?n.realDeleteValue(m,g+l):n.setValue(m,g+l,S)}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 rs(n,t,o,e,r){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=t,c=i-a+1,l=d-u+1;if(r===s.Dimension.ROWS)for(let m=a;m<=o;m++)for(let g=u;g<=d;g++){const S=n.getValue(m+c,g);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}else if(r===s.Dimension.COLUMNS)for(let m=a;m<=i;m++)for(let g=u;g<=e;g++){const S=n.getValue(m,g+l);S==null?n.realDeleteValue(m,g):n.setValue(m,g,S)}}function as(n){const t=new s.ObjectMatrix;return n.forEach(o=>{const{startRow:e,startColumn:r,endRow:a,endColumn:i}=o;for(let u=e;u<=a;u++)for(let d=r;d<=i;d++)t.setValue(u,d,null)}),t.getData()}const Sn="sheet.command.delete-range-move-left",at={type:s.CommandType.COMMAND,id:Sn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);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 S={range:g,subUnitId:l,unitId:m,shiftDimension:s.Dimension.COLUMNS},v=i.onCommandExecute({id:at.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,c,d)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:m,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},fn="sheet.command.delete-range-move-up",it={type:s.CommandType.COMMAND,id:fn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=B(r);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 S={range:g,subUnitId:c,unitId:d,shiftDimension:s.Dimension.ROWS},v=i.onCommandExecute({id:it.id,params:{range:g}}),{redo:f,undo:C}=Et(n,S),I=[...(M=v.preRedos)!=null?M:[],...f],R=[...v.undos,...C];return I.push(...v.redos),I.push(fe(g,l,m)),R.push(...(y=v.preUndos)!=null?y:[]),s.sequenceExecute(I,o).result?(e.pushUndoRedo({unitID:d,undoMutations:R.reverse(),redoMutations:I}),!0):!1}},Nt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Ce={id:"sheet.mutation.insert-row",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const{unitId:o,subUnitId:e,range:r,rowInfo:a}=t,u=n.get(s.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=r.startRow,g=r.endRow-r.startRow+1;for(let f=m;f<m+g;f++)a?s.insertMatrixArray(f,(v=a[f-r.startRow])!=null?v:l,c):s.insertMatrixArray(f,l,c);return d.setRowCount(d.getRowCount()+r.endRow-r.startRow+1),d.getCellMatrix().insertRows(r.startRow,g),!0}},Dt=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range}},Re={id:"sheet.mutation.insert-col",type:s.CommandType.MUTATION,handler:(n,t)=>{var v;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getColumnManager(),{range:i,colInfo:u}=t,c=a.getColumnData(),l=i.startColumn,m=i.endColumn-i.startColumn+1,g=r.getConfig().defaultColumnWidth;for(let f=l;f<l+m;f++){const C={w:g,hd:0};u?s.insertMatrixArray(f,(v=u[f-i.startColumn])!=null?v:C,c):s.insertMatrixArray(f,C,c)}return r.setColumnCount(r.getColumnCount()+i.endColumn-i.startColumn+1),r.getCellMatrix().insertColumns(i.startColumn,m),!0}},is=(n,t)=>{const r=t.getRowManager().getRowData(),a={},i=n.range,u=s.sliceMatrixArray(i.startRow,i.endRow,r),d=s.concatMatrixArray(a,u);return{unitId:n.unitId,subUnitId:n.subUnitId,range:n.range,rowInfo:d}},we={id:"sheet.mutation.remove-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getRowManager().getRowData();for(let l=a.startRow;l<=a.endRow;l++)r.getRowFiltered(l);const d=a.endRow-a.startRow+1;return s.spliceArray(a.startRow,d,u),r.getCellMatrix().removeRows(a.startRow,d),r.setRowCount(r.getRowCount()-d),!0}},us=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const u=r.getColumnManager().getColumnData(),d={},c=t.range,l=s.sliceMatrixArray(c.startColumn,c.endColumn,u),m=s.concatMatrixArray(d,l);return{unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,colInfo:m}},Ie={id:"sheet.mutation.remove-col",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=t.range,u=r.getColumnManager().getColumnData(),d=a.endColumn-a.startColumn+1;return s.spliceArray(a.startColumn,d,u),r.setColumnCount(r.getColumnCount()-d),r.getCellMatrix().removeColumns(a.startColumn,d),!0}},ds="sheet.command.insert-range-move-down",ut={type:s.CommandType.COMMAND,id:"sheet.command.insert-range-move-down",handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{unitId:l,subUnitId:m,worksheet:g,workbook:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=g.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(R.startRow,R.endRow,v.startColumn,v.endColumn).getDataRange().endRow,M=Math.max(w+(v.endRow-v.startRow+1)-R.endRow,0);if(M>0){const Z=v.startRow-1,Q=g.getRowHeight(Z),K={unitId:l,subUnitId:m,range:{startRow:R.endRow+1,endRow:R.endRow+M,startColumn:R.startColumn,endColumn:R.endColumn},rowInfo:new Array(M).fill(void 0).map(()=>({h:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Ce.id,params:K});const ee=Nt(n,K);C.push({id:we.id,params:ee})}const y={};s.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:s.Dimension.ROWS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:ut.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,S,g)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:l,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Cn="sheet.command.insert-range-move-right",dt={type:s.CommandType.COMMAND,id:Cn,handler:async(n,t)=>{var Y,U,de;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(h.SheetInterceptorService),u=n.get(s.ErrorService),d=n.get(s.LocaleService);if(a.isOverlapping())return u.emit(d.t("sheets.info.overlappingSelections")),!1;const c=B(r);if(!c)return!1;const{workbook:l,worksheet:m,unitId:g,subUnitId:S}=c;let v=t==null?void 0:t.range;if(v||(v=(Y=a.getLast())==null?void 0:Y.range),!v)return!1;const f=[],C=[],I=m.getCellMatrix(),R=I.getDataRange(),w=I.getSlice(v.startRow,v.endRow,R.startColumn,R.endColumn).getDataRange().endColumn,M=Math.max(w+(v.endColumn-v.startColumn+1)-R.endColumn,0);if(M>0){const Z=v.startColumn-1,Q=m.getColumnWidth(Z),K={unitId:g,subUnitId:S,range:{startRow:R.startRow+1,endRow:R.endRow,startColumn:R.endColumn+1,endColumn:R.endColumn+M},colInfo:new Array(M).fill(void 0).map(()=>({w:Q,hd:s.BooleanNumber.FALSE}))};f.push({id:Re.id,params:K});const ee=Dt(n,K);C.push({id:Ie.id,params:ee})}const y={};s.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:S,unitId:g,shiftDimension:s.Dimension.COLUMNS,cellValue:y},{redo:_,undo:N}=Tt(n,b);f.push(..._),C.push(...N);const A=i.onCommandExecute({id:dt.id,params:{range:v}});return f.push(...A.redos),f.push(fe(v,l,m)),C.push(...(U=A.preUndos)!=null?U:[]),f.unshift(...(de=A.preRedos)!=null?de:[]),C.unshift(...A.undos),s.sequenceExecute(f,o).result?(e.pushUndoRedo({unitID:g,undoMutations:C.reverse(),redoMutations:f}),!0):!1}},Rn="sheet.command.insert-row",Le={type:s.CommandType.COMMAND,id:Rn,handler:async(n,t)=>{var w,M;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=r.getUniverSheetInstance(t.unitId),u=i.getSheetBySheetId(t.subUnitId),{range:d,direction:c,unitId:l,subUnitId:m}=t,{startRow:g,endRow:S}=d,v=c===s.Direction.UP?g:g-1,f=u.getRowHeight(v),C={unitId:l,subUnitId:m,range:d,rowInfo:new Array(S-g+1).fill(void 0).map(()=>({h:f,hd:s.BooleanNumber.FALSE}))},I=Nt(n,C),R=a.onCommandExecute({id:Le.id,params:t});return s.sequenceExecute([{id:Ce.id,params:C},...R.redos,fe(d,i,u)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(w=R.preUndos)!=null?w:[],{id:we.id,params:I},...R.undos],redoMutations:[...(M=R.preRedos)!=null?M:[],{id:Ce.id,params:C},...R.redos]}),!0):!1}},In={type:s.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(S=>S.range);let e;if((o==null?void 0:o.length)===1)e=o[0];else return!1;const a=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return!1;const i=a.getActiveSheet();if(!i)return!1;const u=a.getUnitId(),d=i.getSheetId(),c=e.endRow-e.startRow+1,l={};s.Range.foreach(e,(S,v)=>{const f=i.getCell(S,v);!f||!f.s||(l[S]||(l[S]={}),l[S][v]={s:f.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.UP,range:{startRow:e.startRow,endRow:e.startRow+c-1,startColumn:0,endColumn:i.getColumnCount()-1},cellValue:l};return n.get(s.ICommandService).executeCommand(Le.id,m)}},Mn={type:s.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(s.IUniverInstanceService).getCurrentUnitForType(s.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:s.Direction.DOWN,range:{startRow:e.endRow+1,endRow:e.endRow+c,startColumn:0,endColumn:i.getColumnCount()-1}};return n.get(s.ICommandService).executeCommand(Le.id,l)}},pn="sheet.command.insert-col",Be={type:s.CommandType.COMMAND,id:pn,handler:async(n,t)=>{var w,M,y;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),{range:i,direction:u,subUnitId:d,unitId:c}=t,{startColumn:l,endColumn:m}=t.range,g=r.getUniverSheetInstance(t.unitId),S=g.getSheetBySheetId(t.subUnitId),v=u===s.Direction.LEFT?l:l-1,f=S.getColumnWidth(v),C={unitId:c,subUnitId:d,range:i,colInfo:new Array(m-l+1).fill(void 0).map(()=>({w:f,hd:s.BooleanNumber.FALSE}))},I=Dt(n,C),R=a.onCommandExecute({id:Be.id,params:t});return s.sequenceExecute([...(w=R.preRedos)!=null?w:[],{id:Re.id,params:C},...R.redos,fe(i,g,S)],o).result?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[...(M=R.preUndos)!=null?M:[],{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}},wn={type:s.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(s.IUniverInstanceService).getCurrentUnitForType(s.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={};s.Range.foreach(e,(g,S)=>{const v=i.getCell(g,S);!v||!v.s||(l[g]||(l[g]={}),l[g][S]={s:v.s})});const m={unitId:u,subUnitId:d,direction:s.Direction.LEFT,range:{startColumn:e.startColumn,endColumn:e.startColumn+c-1,startRow:0,endRow:i.getLastRowWithContent()},cellValue:l};return n.get(s.ICommandService).executeCommand(Be.id,m)}},yn={type:s.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(s.IUniverInstanceService).getCurrentUnitForType(s.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:s.Direction.RIGHT,range:{startColumn:e.endColumn+1,endColumn:e.endColumn+c,startRow:0,endRow:i.getLastRowWithContent()}};return n.get(s.ICommandService).executeCommand(Be.id,l)}},Un={id:"sheet.command.insert-sheet",type:s.CommandType.COMMAND,handler:(n,t)=>{var v;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(s.LocaleService),i=mn(r,{unitId:t==null?void 0:t.unitId});if(!i)return!1;const{unitId:u,workbook:d}=i;let c=d.getSheets().length,l=s.mergeWorksheetSnapshotWithDefault({});t?(c=(v=t.index)!=null?v:c,t.sheet?l=t.sheet:(l.id=s.Tools.generateRandomId(),l.name=d.generateNewSheetName(`${a.t("sheets.tabs.sheet")}`))):(l.id=s.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(_e.id,m)?(e.pushUndoRedo({unitID:u,undoMutations:[{id:Ae.id,params:g}],redoMutations:[{id:_e.id,params:m}]}),!0):!1}};function ls(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startRow>a.startRow,u=r.endRow-r.startRow+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endRow:r.endRow+u,startRow:r.startRow+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,endRow:a.endRow-u,startRow:a.startRow-u}}}const be={id:"sheet.mutation.move-rows",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.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=r.startRow,l=r.endRow-r.startRow+1,m=a.startRow,g=d.getRowManager().getRowData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveRows(c,l,m),!0}};function cs(n,t){const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,i=r.startColumn>a.startColumn,u=r.endColumn-r.startColumn+1;return i?{unitId:o,subUnitId:e,sourceRange:s.Rectangle.clone(a),targetRange:{...r,endColumn:r.endColumn+u,startColumn:r.startColumn+u}}:{unitId:o,subUnitId:e,targetRange:s.Rectangle.clone(r),sourceRange:{...a,startColumn:a.startColumn-u,endColumn:a.endColumn-u}}}const Te={id:"sheet.mutation.move-columns",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,sourceRange:r,targetRange:a}=t,u=n.get(s.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=r.startColumn,l=r.endColumn-r.startColumn+1,m=a.startColumn,g=d.getColumnManager().getColumnData();return s.moveMatrixArray(c,l,m,g),d.getCellMatrix().moveColumns(c,l,m),!0}};function ms(n,t){return t.getMergeData().some(o=>o.startRow<n&&n<=o.endRow)}function gs(n,t){return t.getMergeData().some(o=>o.startColumn<n&&n<=o.endColumn)}const _n="sheet.command.move-rows",Ot={id:_n,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startRow:r},toRange:{startRow:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.ROW&&ee.range.startRow<=r&&r<=ee.range.endRow);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(ms(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startRow:a,endRow:a+f.endRow-f.startRow},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=ls(n,p),y=a-r<0,b=f.endRow-f.startRow+1,_=y?R:{...R,startRow:R.startRow-b,endRow:R.endRow-b},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Ot.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:be.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:be.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0):!1}},bn="sheet.command.move-cols",Pt={id:bn,type:s.CommandType.COMMAND,handler:async(n,t)=>{var Q,K;const e=n.get(h.SelectionManagerService).getSelections(),{fromRange:{startColumn:r},toRange:{startColumn:a}}=t,i=e==null?void 0:e.filter(ee=>ee.range.rangeType===s.RANGE_TYPE.COLUMN&&ee.range.startColumn<=r&&r<=ee.range.endColumn);if((i==null?void 0:i.length)!==1)return!1;const u=n.get(h.SheetInterceptorService),c=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!c)return!1;const l=c.getActiveSheet();if(!l)return!1;const m=c.getUnitId(),g=l.getSheetId(),S=n.get(s.ErrorService),v=n.get(s.LocaleService),f=i[0].range,C=i[0].primary,I=ze(f,l,!1);if(!s.Rectangle.equals(f,I))return S.emit(v.t("sheets.info.partOfCell")),!1;if(gs(a,l))return S.emit(v.t("sheets.info.acrossMergedCell")),!1;const R={...f,startColumn:a,endColumn:a+f.endColumn-f.startColumn},p={unitId:m,subUnitId:g,sourceRange:f,targetRange:R},w=cs(n,p),M=f.endColumn-f.startColumn+1,_=a-r<0?R:{...R,startColumn:R.startColumn-M,endColumn:R.endColumn-M},N={unitId:m,subUnitId:g,pluginName:X,selections:[{range:_,primary:oe(_,l),style:null}]},A={unitId:m,subUnitId:g,pluginName:X,selections:[{range:f,primary:C,style:null}]},x=n.get(s.ICommandService),Y=u.onCommandExecute({id:Pt.id,params:t}),U=[...(Q=Y.preRedos)!=null?Q:[],{id:Te.id,params:p},{id:$.id,params:N},...Y.redos],de=[...(K=Y.preUndos)!=null?K:[],{id:Te.id,params:w},{id:$.id,params:A},...Y.undos];return s.sequenceExecute(U,x).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:m,undoMutations:de,redoMutations:U}),!0}},Tn="sheet.command.remove-row",lt={type:s.CommandType.COMMAND,id:Tn,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startColumn:0,endColumn:Math.max(d.getMaxColumns()-1,0)};const m=[];for(let y=r.startRow;y<=r.endRow;y++)d.getRowFiltered(y)&&m.push(y);const g=[];if(m.length){const y=[r.startRow,...m.map(_=>_+1)],b=[...m.map(_=>_-1),r.endRow];for(let _=y.length-1;_>=0;_--)y[_]<=b[_]&&g.push({startRow:y[_],endRow:b[_],startColumn:r.startColumn,endColumn:r.endColumn})}else g.push(r);const S=[],v=[];g.forEach(y=>{const b={unitId:l,subUnitId:c,range:y},_=d.getCellMatrix().getSlice(y.startRow,y.endRow,0,d.getColumnCount()-1),N={unitId:l,subUnitId:c,cellValue:_.getMatrix()},A=is(b,d);S.push({id:we.id,params:b}),v.unshift({id:Ce.id,params:A},{id:q.id,params:N})});const f=e.onCommandExecute({id:lt.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],...S,...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],...v,...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],...S,...f.redos]}),!0):!1}},En="sheet.command.remove-col",ct={type:s.CommandType.COMMAND,id:En,handler:async(n,t)=>{var R,p,w,M;const o=n.get(h.SelectionManagerService),e=n.get(h.SheetInterceptorService);let r=t==null?void 0:t.range;if(r||(r=(R=o.getLast())==null?void 0:R.range),!r)return!1;const a=n.get(s.IUniverInstanceService),i=B(a);if(!i)return!1;const{workbook:u,worksheet:d,subUnitId:c,unitId:l}=i;r={...r,startRow:0,endRow:Math.max(d.getMaxRows()-1,0)};const m={unitId:l,subUnitId:c,range:r},g=us(n,m),S=d.getCellMatrix().getSlice(0,d.getRowCount()-1,r.startColumn,r.endColumn),v={unitId:l,subUnitId:c,cellValue:S.getMatrix()},f=e.onCommandExecute({id:ct.id,params:{range:r}}),C=n.get(s.ICommandService);return s.sequenceExecute([...(p=f.preRedos)!=null?p:[],{id:Ie.id,params:m},...f.redos,fe(r,u,d)],C).result?(n.get(s.IUndoRedoService).pushUndoRedo({unitID:l,undoMutations:[...(w=f.preUndos)!=null?w:[],{id:Re.id,params:g},{id:q.id,params:v},...f.undos],redoMutations:[...(M=f.preRedos)!=null?M:[],{id:Ie.id,params:m},...f.redos]}),!0):!1}},kt={id:"sheet.command.remove-sheet",type:s.CommandType.COMMAND,handler:async(n,t)=>{var R,p;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SheetInterceptorService),i=B(r,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()},S=gn(n,g),v=a.onCommandExecute({id:kt.id,params:{unitId:u,subUnitId:d}}),f=[...(R=v.preRedos)!=null?R:[],{id:Ae.id,params:g},...v.redos],C=[...(p=v.preUndos)!=null?p:[],{id:_e.id,params:S},...v.undos];return s.sequenceExecute(f,o)?(e.pushUndoRedo({unitID:u,undoMutations:C,redoMutations:f}),!0):!1}},me=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},j={id:"sheet.mutation.add-worksheet-merge",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,u=t.ranges;for(let d=0;d<u.length;d++)i.push(u[d]);return!0}},re=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().mergeData,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];s.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:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const i=r.getConfig().mergeData,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];s.Rectangle.intersects(l,m)&&i.splice(c,1)}return!0}},Nn={type:s.CommandType.COMMAND,id:"sheet.command.remove-worksheet-merge",handler:async n=>{const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=t.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(r);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(M=>{g.forEach(y=>{s.Rectangle.intersects(M,y)&&(m=!0)})}),!m)return!1;const S=re(n,l),v=t.getSelections();if(!(v!=null&&v.length))return!1;const f=s.Tools.deepClone(v),C=s.Tools.deepClone(v),I=C[C.length-1],{startRow:R,startColumn:p}=I.range;return I.primary={startRow:R,startColumn:p,endRow:R,endColumn:p,actualRow:R,actualColumn:p,isMerged:!1,isMergedMainCell:!1},s.sequenceExecute([{id:F.id,params:S},{id:$.id,params:{selections:C}}],o)?(e.pushUndoRedo({unitID:d,undoMutations:[{id:j.id,params:S},{id:$.id,params:{selections:f}}],redoMutations:[{id:F.id,params:S},{id:$.id,params:{selections:C}}]}),!0):!1}};class Ee{constructor(){W(this,"_borderInfo",{type:s.BorderType.ALL,color:"#000000",style:s.BorderStyleTypes.THIN,activeBorderType:!1});W(this,"_borderInfo$",new ke.BehaviorSubject(this._borderInfo));W(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:r,endColumn:a}=n;for(let i=o;i<=r;i++)for(let u=e;u<=a;u++)t(i,u)}const Dn={id:"sheet.command.set-border-basic",type:s.CommandType.COMMAND,handler:async(n,t)=>{const{unitId:o,subUnitId:e,value:r}=t,{type:a,color:i,style:u}=r,d=n.get(s.ICommandService),c=n.get(Ee);return c.setType(a),c.setColor(i),c.setStyle(u),d.executeCommand(We.id,{unitId:o,subUnitId:e})}},On={id:"sheet.command.set-border-position",type:s.CommandType.COMMAND,handler:async(n,t)=>{if(!t.value)return!1;const o=n.get(s.ICommandService);return n.get(Ee).setType(t.value),o.executeCommand(We.id)}},Pn={id:"sheet.command.set-border-style",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setStyle(t.value),o.executeCommand(We.id)}},kn={id:"sheet.command.set-border-color",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService);return n.get(Ee).setColor(t.value),o.executeCommand(We.id)}},We={id:"sheet.command.set-border",type:s.CommandType.COMMAND,handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=n.get(h.SelectionManagerService),i=n.get(Ee),u=B(r,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:S,color:v,type:f,activeBorderType:C}=i.getBorderInfo();if(!C)return!1;const I=f===s.BorderType.TOP||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,R=f===s.BorderType.LEFT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,p=f===s.BorderType.BOTTOM||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,w=f===s.BorderType.RIGHT||f===s.BorderType.ALL||f===s.BorderType.OUTSIDE,M=f===s.BorderType.VERTICAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,y=f===s.BorderType.HORIZONTAL||f===s.BorderType.ALL||f===s.BorderType.INSIDE,b=f.indexOf("tlbr")>-1,_=f.indexOf("tlbc")>-1,N=f.indexOf("tlmr")>-1,A=f.indexOf("bltr")>-1,x=f.indexOf("mltr")>-1,Y=f.indexOf("bctr")>-1,U=m[0],de={startRow:U.startRow-1,startColumn:U.startColumn,endRow:U.startRow-1,endColumn:U.endColumn},Z={startRow:U.startRow,startColumn:U.startColumn-1,endRow:U.endRow,endColumn:U.startColumn-1},Q={startRow:U.endRow+1,startColumn:U.startColumn,endRow:U.endRow+1,endColumn:U.endColumn},K={startRow:U.startRow,startColumn:U.endColumn+1,endRow:U.endRow,endColumn:U.endColumn+1},ee={startRow:U.startRow,startColumn:U.startColumn,endRow:U.startRow,endColumn:U.endColumn},No={startRow:U.startRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.startColumn},Do={startRow:U.endRow,startColumn:U.startColumn,endRow:U.endRow,endColumn:U.endColumn},Oo={startRow:U.startRow,startColumn:U.endColumn,endRow:U.endRow,endColumn:U.endColumn},V=new s.ObjectMatrix,G={s:S,cl:{rgb:v}},Ut=(D,T)=>{let L=null;return g.forEach(te=>{s.Rectangle.intersects(te,{startColumn:T,endColumn:T,startRow:D,endRow:D})&&(L=te)}),L};function H(D,T,L){D.startRow<0||D.startColumn<0||mt(D,(te,le)=>{var E,Ze;const se=Ut(te,le);let ie=T;if(se&&(T.bc_tr||T.ml_tr||T.bl_tr||T.tl_mr||T.tl_bc||T.tl_br)){if(L){const ce=s.Tools.deepClone((E=V.getValue(se.startRow,se.startColumn))==null?void 0:E.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(se.startRow,se.startColumn,{s:{bd:ie}})}else{if(L){const ce=s.Tools.deepClone((Ze=V.getValue(te,le))==null?void 0:Ze.s);ie=ce!=null&&ce.bd?Object.assign(ce.bd,T):T}V.setValue(te,le,{s:{bd:ie}})}})}I&&(H(de,{b:null}),H(ee,{t:s.Tools.deepClone(G)},!0)),p&&(H(Q,{t:null}),H(Do,{b:s.Tools.deepClone(G)},!0)),R&&(H(Z,{r:null}),H(No,{l:s.Tools.deepClone(G)},!0)),w&&(H(K,{l:null}),H(Oo,{r:s.Tools.deepClone(G)},!0)),b&&H(U,{tl_br:s.Tools.deepClone(G)},!0),_&&H(U,{tl_bc:s.Tools.deepClone(G)},!0),N&&H(U,{tl_mr:s.Tools.deepClone(G)},!0),A&&H(U,{bl_tr:s.Tools.deepClone(G)},!0),x&&H(U,{ml_tr:s.Tools.deepClone(G)},!0),Y&&H(U,{bc_tr:s.Tools.deepClone(G)},!0),M&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(L.startColumn!==U.startColumn){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}else{if(T!==U.endColumn){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{r:s.Tools.deepClone(G)}):{r:s.Tools.deepClone(G)}}})}if(T!==U.startColumn){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{l:s.Tools.deepClone(G)}):{l:s.Tools.deepClone(G)}}})}}}),y&&mt(U,(D,T)=>{var te,le,se,ie;const L=Ut(D,T);if(L){if(L.endRow!==U.endRow){const E=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(L.startRow!==U.startRow){const E=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}else{if(D!==U.endRow){const E=(se=V.getValue(D,T))==null?void 0:se.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{b:s.Tools.deepClone(G)}):{b:s.Tools.deepClone(G)}}})}if(D!==U.startRow){const E=(ie=V.getValue(D,T))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:E!=null&&E.bd?Object.assign(E.bd,{t:s.Tools.deepClone(G)}):{t:s.Tools.deepClone(G)}}})}}}),!I&&!p&&!R&&!w&&!M&&!y&&!b&&!_&&!N&&!A&&!x&&!Y&&(H(de,{b:null}),H(ee,{t:null},!0),H(Q,{t:null}),H(Do,{b:null},!0),H(Z,{r:null}),H(No,{l:null},!0),H(K,{l:null}),H(Oo,{r:null},!0),H(U,{tl_br:null},!0),H(U,{tl_bc:null},!0),H(U,{tl_mr:null},!0),H(U,{bl_tr:null},!0),H(U,{ml_tr:null},!0),H(U,{bc_tr:null},!0),mt(U,(D,T)=>{var te,le,se,ie,E,Ze,ce,Po;const L=Ut(D,T);if(L){if(L.endColumn!==U.endColumn){const O=(te=V.getValue(L.startRow,L.startColumn))==null?void 0:te.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(L.startColumn!==U.startColumn){const O=(le=V.getValue(L.startRow,L.startColumn))==null?void 0:le.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(L.endRow!==U.endRow){const O=(se=V.getValue(L.startRow,L.startColumn))==null?void 0:se.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(L.startRow!==U.startRow){const O=(ie=V.getValue(L.startRow,L.startColumn))==null?void 0:ie.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}else{if(T!==U.endColumn){const O=(E=V.getValue(D,T))==null?void 0:E.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{r:null}):{r:null}}})}if(T!==U.startColumn){const O=(Ze=V.getValue(D,T))==null?void 0:Ze.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{l:null}):{l:null}}})}if(D!==U.endRow){const O=(ce=V.getValue(D,T))==null?void 0:ce.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{b:null}):{b:null}}})}if(D!==U.startRow){const O=(Po=V.getValue(D,T))==null?void 0:Po.s;V.setValue(D,T,{s:{bd:O!=null&&O.bd?Object.assign(O.bd,{t:null}):{t:null}}})}}}));const rn={unitId:c,subUnitId:l,cellValue:V.getData()},Gr=Se(n,rn);return o.syncExecuteCommand(q.id,rn)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:q.id,params:Gr}],redoMutations:[{id:q.id,params:rn}]}),!0):!1}},hs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},je={id:"sheet.mutation.set-col-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.TRUE)}}return!0}},vs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},Fe={id:"sheet.mutation.set-col-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!e)return!1;const r=e.getSheetBySheetId(t.subUnitId).getColumnManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startColumn;u<i.endColumn+1;u++){const d=r.getColumnOrCreate(u);d!=null&&(d.hd=s.BooleanNumber.FALSE)}}return!0}},At={type:s.CommandType.COMMAND,id:"sheet.command.set-col-visible-on-cols",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),i={unitId:o,subUnitId:e,ranges:r},u=vs(n,i),d={unitId:o,subUnitId:e,pluginName:X,selections:r.map(g=>({range:g,primary:oe(g,a),style:null}))},c={unitId:o,subUnitId:e,pluginName:X,selections:Ln(r).map(g=>({range:g,primary:oe(g,a),style:null}))},l=n.get(s.ICommandService);return s.sequenceExecute([{id:Fe.id,params:i},{id:$.id,params:d}],l).result&&n.get(s.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:[{id:je.id,params:u},{id:$.id,params:c}],redoMutations:[{id:Fe.id,params:i},{id:$.id,params:d}]}),!0}},An={type:s.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===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=o.map(l=>a.getHiddenCols(l.startColumn,l.endColumn)).flat();return n.get(s.ICommandService).executeCommand(At.id,{unitId:i,subUnitId:u,ranges:d})}},Vn={type:s.CommandType.COMMAND,id:"sheet.command.set-col-hidden",handler:async n=>{var S;const o=(S=n.get(h.SelectionManagerService).getSelections())==null?void 0:S.map(v=>v.range).filter(v=>v.rangeType===s.RANGE_TYPE.COLUMN);if(!(o!=null&&o.length))return!1;const r=n.get(s.IUniverInstanceService).getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d={unitId:i,subUnitId:u,ranges:o},c={unitId:i,subUnitId:u,pluginName:X,selections:Ln(o).map(v=>({range:v,primary:oe(v,a),style:null}))},l={unitId:i,subUnitId:u,pluginName:X,selections:o.map(v=>({range:v,primary:oe(v,a),style:null}))},m=n.get(s.ICommandService);if(s.sequenceExecute([{id:je.id,params:d},{id:$.id,params:c}],m).result){const v=n.get(s.IUndoRedoService),f=hs(n,d);return v.pushUndoRedo({unitID:i,undoMutations:[{id:Fe.id,params:f},{id:$.id,params:l}],redoMutations:[{id:je.id,params:d},{id:$.id,params:c}]}),!0}return!1}};function Ln(n){return Ss(n).map(o=>{const e=o.startColumn===0?o.endColumn+1:o.startColumn-1;return{...o,startColumn:e,endColumn:e}})}function Ss(n){const t=[];let o;return n.sort((e,r)=>e.startColumn-r.startColumn).forEach(e=>{if(!o){o=e;return}o.endColumn===e.startColumn-1?o.endColumn=e.endColumn:(t.push(o),o=e)}),t.push(o),t}const Vt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("worksheet is null error!");const i=r.getConfig().freeze;return{unitId:t.unitId,subUnitId:t.subUnitId,...i}},ye={id:"sheet.mutation.set-frozen",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig(),{startRow:i,startColumn:u,ySplit:d,xSplit:c}=t;return a.freeze={startRow:i,startColumn:u,ySplit:d,xSplit:c},!0}},Bn={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=B(r);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 S={unitId:i,subUnitId:u,...t},v=Vt(n,S);return o.syncExecuteCommand(ye.id,S)?(e.pushUndoRedo({unitID:i,undoMutations:[{id:ye.id,params:v}],redoMutations:[{id:ye.id,params:S}]}),!0):!1}},fs={type:s.CommandType.COMMAND,id:"sheet.command.set-frozen-cancel",handler:async n=>{const t=n.get(s.ICommandService),o=n.get(s.IUndoRedoService),e=n.get(s.IUniverInstanceService),r=B(e);if(!r)return!1;const{unitId:a,subUnitId:i}=r,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}},Cs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},He={id:"sheet.mutation.set-row-visible",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=0)}}return!0}},Rs=(n,t)=>{if(n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId)==null)throw new Error("universheet is null error!");return{unitId:t.unitId,subUnitId:t.subUnitId,ranges:t.ranges}},$e={id:"sheet.mutation.set-row-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId).getRowManager();for(let a=0;a<t.ranges.length;a++){const i=t.ranges[a];for(let u=i.startRow;u<i.endRow+1;u++){const d=r.getRowOrCreate(u);d!=null&&(d.hd=1)}}return!0}},Lt={type:s.CommandType.COMMAND,id:"sheet.command.set-specific-rows-visible",handler:async(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,a=n.get(s.ICommandService),i=n.get(s.IUndoRedoService),u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={unitId:o,subUnitId:e,ranges:r},c=Cs(n,d),l={unitId:o,subUnitId:e,pluginName:X,selections:r.map(S=>({range:S,primary:oe(S,u),style:null}))},m={unitId:o,subUnitId:e,pluginName:X,selections:Fn(r).map(S=>({range:S,primary:oe(S,u),style:null}))};return s.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}},Wn={type:s.CommandType.COMMAND,id:"sheet.command.set-selected-rows-visible",handler:async n=>{var c;const t=n.get(h.SelectionManagerService),o=n.get(s.IUniverInstanceService),e=(c=t.getSelections())==null?void 0:c.map(l=>l.range).filter(l=>l.rangeType===s.RANGE_TYPE.ROW);if(!(e!=null&&e.length))return!1;const r=o.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!r)return!1;const a=r.getActiveSheet();if(!a)return!1;const i=r.getUnitId(),u=a.getSheetId(),d=e.map(l=>a.getHiddenRows(l.startRow,l.endRow)).flat();return n.get(s.ICommandService).executeCommand(Lt.id,{unitId:i,subUnitId:u,ranges:d})}},jn={type:s.CommandType.COMMAND,id:"sheet.command.set-rows-hidden",handler:async n=>{var f;const t=n.get(h.SelectionManagerService),o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.IUniverInstanceService),a=(f=t.getSelections())==null?void 0:f.map(C=>C.range).filter(C=>C.rangeType===s.RANGE_TYPE.ROW);if(!(a!=null&&a.length))return!1;const i=B(r);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:Fn(a).map(C=>({range:C,primary:oe(C,c),style:null}))},g={unitId:u,subUnitId:d,pluginName:X,selections:a.map(C=>({range:C,primary:oe(C,c),style:null}))},S=Rs(n,l);return s.sequenceExecute([{id:$e.id,params:l},{id:$.id,params:m}],o).result&&e.pushUndoRedo({unitID:u,undoMutations:[{id:He.id,params:S},{id:$.id,params:g}],redoMutations:[{id:$e.id,params:l},{id:$.id,params:m}]}),!0}};function Fn(n){return Is(n).map(o=>{const e=o.startRow===0?o.endRow+1:o.startRow-1;return{...o,startRow:e,endRow:e}})}function Is(n){const t=[];let o;return n.sort((e,r)=>e.startRow-r.startRow).forEach(e=>{if(!o){o=e;return}e.startRow===o.endRow+1?o.endRow=e.endRow:(t.push(o),o=e)}),t.push(o),t}const J={type:s.CommandType.COMMAND,id:"sheet.command.set-style",handler:async(n,t)=>{const o=n.get(s.IUniverInstanceService),e=B(o);if(!e)return!1;const{unitId:r,subUnitId:a,worksheet:i}=e,{range:u,style:d}=t,c=n.get(s.ICommandService),l=n.get(s.IUndoRedoService),m=n.get(h.SelectionManagerService),g=u?[u]:m.getSelectionRanges();if(!(g!=null&&g.length))return!1;const S=new s.ObjectMatrix,v=os(i);if(s.Tools.isArray(d.value))for(let M=0;M<g.length;M++)v.forOperableEach(g[M],(y,b,_)=>{S.setValue(y,b,{s:{[d.type]:d.value[y-_.startRow][b-_.startColumn]}})});else for(let M=0;M<g.length;M++){const y={s:{[d.type]:d.value}};v.forOperableEach(g[M],(b,_)=>S.setValue(b,_,y))}const f={subUnitId:a,unitId:r,cellValue:S.getMatrix()},C=Se(n,f),I=c.syncExecuteCommand(q.id,f),{undos:R,redos:p}=n.get(h.SheetInterceptorService).onCommandExecute({id:J.id,params:t}),w=s.sequenceExecute([...p],c);return I&&w.result?(l.pushUndoRedo({unitID:r,undoMutations:[{id:q.id,params:C},...R],redoMutations:[{id:q.id,params:f},...p]}),!0):!1}},Ms={type:s.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(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o,{actualRow:r,actualColumn:a}=t.primary,u={style:{type:"bl",value:e.getRange(r,a).getFontWeight()===s.FontWeight.BOLD?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,u)}},ps={type:s.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(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;if(t.primary){const{startRow:i,startColumn:u}=t.primary;r=e.getRange(i,u).getFontStyle()===s.FontItalic.ITALIC}const a={style:{type:"it",value:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ws={type:s.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(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.startRow,t.primary.startColumn).getUnderline().s);const a={style:{type:"ul",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}},ys={type:s.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(s.IUniverInstanceService));if(!o)return!1;const{worksheet:e}=o;let r=!0;t.primary&&(r=!!e.getRange(t.primary.actualRow,t.primary.actualColumn).getStrikeThrough().s);const a={style:{type:"st",value:{s:r?s.BooleanNumber.FALSE:s.BooleanNumber.TRUE}}};return n.get(s.ICommandService).executeCommand(J.id,a)}};s.CommandType.COMMAND;const Us={type:s.CommandType.COMMAND,id:"sheet.command.set-font-family",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"ff",value:t.value}};return o.executeCommand(J.id,e)}},_s={type:s.CommandType.COMMAND,id:"sheet.command.set-font-size",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={style:{type:"fs",value:t.value}};return o.executeCommand(J.id,e)}},Hn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"cl",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},$n={type:s.CommandType.COMMAND,id:"sheet.command.reset-text-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"cl",value:{rgb:null}}};return t.executeCommand(J.id,o)}},Gn={type:s.CommandType.COMMAND,id:"sheet.command.set-background-color",handler:async(n,t)=>{if(!t||!t.value)return!1;const o=n.get(s.ICommandService),e={style:{type:"bg",value:{rgb:t.value}}};return o.executeCommand(J.id,e)}},zn={type:s.CommandType.COMMAND,id:"sheet.command.reset-background-color",handler:async n=>{const t=n.get(s.ICommandService),o={style:{type:"bg",value:{rgb:null}}};return t.executeCommand(J.id,o)}},qn={type:s.CommandType.COMMAND,id:"sheet.command.set-vertical-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"vt",value:t.value}};return o.executeCommand(J.id,e)}},xn={type:s.CommandType.COMMAND,id:"sheet.command.set-horizontal-text-align",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"ht",value:t.value}};return o.executeCommand(J.id,e)}},Yn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-wrap",handler:async(n,t)=>{if(!t)return!1;const o=n.get(s.ICommandService),e={unitId:t.unitId,subUnitId:t.subUnitId,range:t.range,style:{type:"tb",value:t.value}};return o.executeCommand(J.id,e)}},Kn={type:s.CommandType.COMMAND,id:"sheet.command.set-text-rotation",handler:async(n,t)=>{if(!t)return!1;const o=typeof t.value=="number"?{a:t.value}:{a:0,v:s.BooleanNumber.TRUE},e=n.get(s.ICommandService),r={style:{type:"tr",value:o}};return e.executeCommand(J.id,r)}},bs=(n,t)=>{const a=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId).getSheetBySheetId(t.subUnitId).getConfig().tabColor;return{...s.Tools.deepClone(t),color:a}},xe={id:"sheet.mutation.set-tab-color",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().tabColor=t.color,!0):!1}},Xn={type:s.CommandType.COMMAND,id:"sheet.command.set-tab-color",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{unitId:a,subUnitId:i}=r,u={color:t.value,unitId:a,subUnitId:i},d=bs(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:s.CommandType.OPERATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getWorksheets();for(const[,r]of e)if(r.getSheetId()===t.subUnitId)return o.setActiveSheet(r),!0;return!1}},Ts=4,Bt={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-activate",handler:(n,t,o)=>{const e=n.get(s.ICommandService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{unitId:a,subUnitId:i}=r;return new Promise(u=>{setTimeout(()=>{const d=e.syncExecuteCommand(Ye.id,{unitId:a,subUnitId:i},o);u(d)},Ts)})}},Wt=(n,t)=>{const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(r==null)throw new Error("universheet is null error!");const a={},i=r.getColumnManager(),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:s.CommandType.MUTATION,handler:(n,t)=>{var d;const e=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(e==null)throw new Error("universheet is null error!");const r=e.getSheetBySheetId(t.subUnitId);if(!r)return!1;const a=r.getConfig().defaultColumnWidth,i=r.getColumnManager(),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}},jt={type:s.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 r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{worksheet:u,unitId:d,subUnitId:c}=i,{anchorCol:l,deltaX:m}=t,S=u.getColumnWidth(l)+m,v=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,f=e.filter(b=>b.range.rangeType===s.RANGE_TYPE.COLUMN),C=v?s.RANGE_TYPE.ALL:f.some(({range:b})=>{const{startColumn:_,endColumn:N}=b;return _<=l&&l<=N})?s.RANGE_TYPE.COLUMN:s.RANGE_TYPE.NORMAL;let I;if(C===s.RANGE_TYPE.ALL){const b=u.getRowCount(),_=new Array(u.getColumnCount()).fill(void 0).map((N,A)=>({startRow:0,endRow:b-1,startColumn:A,endColumn:A}));I={subUnitId:c,unitId:d,colWidth:S,ranges:_}}else C===s.RANGE_TYPE.COLUMN?I={subUnitId:c,unitId:d,ranges:f.map(b=>s.Rectangle.clone(b.range)),colWidth:S}:I={subUnitId:c,unitId:d,colWidth:S,ranges:[{startRow:0,endRow:u.getMaxRows()-1,startColumn:l,endColumn:l}]};const R=Wt(n,I),p=r.syncExecuteCommand(Me.id,I),{undos:w,redos:M}=n.get(h.SheetInterceptorService).onCommandExecute({id:jt.id,params:I}),y=s.sequenceExecute([...M],r);return p&&y.result&&a.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:R},...w],redoMutations:[{id:Me.id,params:I},...M]}),!0}},Ft={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-col-width",handler:async(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=o.getSelectionRanges();if(!(a!=null&&a.length))return!1;const i=B(n.get(s.IUniverInstanceService));if(!i)return!1;const{subUnitId:u,unitId:d}=i,c={subUnitId:u,unitId:d,ranges:a,colWidth:t.value},l=Wt(n,c),m=e.syncExecuteCommand(Me.id,c),{undos:g,redos:S}=n.get(h.SheetInterceptorService).onCommandExecute({id:Ft.id,params:c}),v=s.sequenceExecute([...S],e);return m&&v.result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:Me.id,params:l},...g],redoMutations:[{id:Me.id,params:c},...S]}),!0):!1}},Jn=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetHideMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{hidden:e.isSheetHidden(),unitId:t.unitId,subUnitId:e.getSheetId()}},Ue={id:"sheet.mutation.set-worksheet-hidden",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().hidden=t.hidden,!0):!1}},Zn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-hidden",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(s.ErrorService),a=n.get(s.LocaleService),i=B(n.get(s.IUniverInstanceService),t);if(!i)return!1;const{workbook:u,worksheet:d,unitId:c,subUnitId:l}=i;if(d.getConfig().hidden===s.BooleanNumber.TRUE)return!1;const g={unitId:c,subUnitId:l,hidden:s.BooleanNumber.TRUE},S=Jn(n,g);return u.getSheets().filter(I=>I.getConfig().hidden===s.BooleanNumber.FALSE).length===1?(r.emit(a.t("sheets.info.hideSheet")),!1):o.syncExecuteCommand(Ue.id,g)?(e.pushUndoRedo({unitID:c,undoMutations:[{id:Ue.id,params:S}],redoMutations:[{id:Ue.id,params:g}]}),!0):!1}},Es=(n,t)=>{const o=ot(n.get(s.IUniverInstanceService),t);if(!o)throw new Error("[SetWorksheetNameMutationFactory]: worksheet is null error!");const{worksheet:e}=o;return{unitId:t.unitId,name:e.getName(),subUnitId:e.getSheetId()}},gt={id:"sheet.mutation.set-worksheet-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(o==null)return!1;const e=o.getSheetBySheetId(t.subUnitId);return e?(e.getConfig().name=t.name,!0):!1}},Ht={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-name",handler:async(n,t)=>{var v,f;const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SheetInterceptorService),a=B(n.get(s.IUniverInstanceService),t);if(!a)return!1;const{unitId:i,subUnitId:u}=a,d={subUnitId:u,name:t.name,unitId:i},c=Es(n,d),l=r.onCommandExecute({id:Ht.id,params:t}),m=[...(v=l.preRedos)!=null?v:[],{id:gt.id,params:d},...l.redos],g=[...(f=l.preUndos)!=null?f:[],{id:gt.id,params:c},...l.undos];return await s.sequenceExecute(m,o).result?(e.pushUndoRedo({unitID:i,undoMutations:g,redoMutations:m}),!0):!1}},Ns=(n,t)=>({...s.Tools.deepClone(t),toOrder:t.fromOrder,fromOrder:t.toOrder}),Ke={id:"sheet.mutation.set-worksheet-order",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUniverSheetInstance(t.unitId);if(!o)return!1;const e=o.getConfig();return e.sheetOrder.splice(t.fromOrder,1),e.sheetOrder.splice(t.toOrder,0,t.subUnitId),!0}},Qn={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-order",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=B(n.get(s.IUniverInstanceService),t);if(!r)return!1;const{workbook:a,unitId:i,subUnitId:u}=r,c={fromOrder:a.getConfig().sheetOrder.indexOf(u),toOrder:t.order,unitId:i,subUnitId:u},l=Ns(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}},Ds=2e3,eo=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,i=n.get(s.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 r)for(let g=l;g<m+1;g++){const S=c.getRowOrCreate(g);d[g]=S.h}return{unitId:o,subUnitId:e,ranges:r,rowHeight:d}},$t=(n,t)=>{const{unitId:o,subUnitId:e,ranges:r}=t,u=n.get(s.IUniverInstanceService).getUniverSheetInstance(o).getSheetBySheetId(e),d={},c=u.getRowManager();for(const{startRow:l,endRow:m}of r)for(let g=l;g<=m;g++){const S=c.getRowOrCreate(g);d[g]=S.ia}return{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:d}},Os=(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUniverSheetInstance(o),u=i==null?void 0:i.getSheetBySheetId(e),d=[],c=u.getRowManager();for(const l of r){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:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,rowHeight:a}=t,u=n.get(s.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:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.h=a:f.h=(m=a[v])!=null?m:c,f.h=Math.min(Ds,f.h)}return!0}},ue={id:"sheet.mutation.set-worksheet-row-is-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{var m;const{unitId:o,subUnitId:e,ranges:r,autoHeightInfo:a}=t,u=n.get(s.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:S}of r)for(let v=g;v<=S;v++){const f=l.getRowOrCreate(v);typeof a=="number"?f.ia=a:f.ia=(m=a[v-g])!=null?m:c}return!0}},Gt={id:"sheet.mutation.set-worksheet-row-auto-height",type:s.CommandType.MUTATION,handler:(n,t)=>{const{unitId:o,subUnitId:e,rowsAutoHeightInfo:r}=t,i=n.get(s.IUniverInstanceService).getUnit(o),u=i==null?void 0:i.getSheetBySheetId(e);if(!u||!i)return!1;const d=u.getRowManager();for(const{row:c,autoHeight:l}of r){const m=d.getRowOrCreate(c);m.ah=l}return!0}},to={type:s.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 r=B(n.get(s.IUniverInstanceService));if(!r)return!1;const{worksheet:a,subUnitId:i,unitId:u}=r,{anchorRow:d,deltaY:c}=t,m=a.getRowHeight(d)+c,g=e.length===1&&e[0].range.rangeType===s.RANGE_TYPE.ALL,S=e.filter(y=>y.range.rangeType===s.RANGE_TYPE.ROW),v=g?s.RANGE_TYPE.ALL:S.some(({range:y})=>{const{startRow:b,endRow:_}=y;return b<=d&&d<=_})?s.RANGE_TYPE.ROW:s.RANGE_TYPE.NORMAL;let f;if(v===s.RANGE_TYPE.ALL){const y=a.getRowCount(),b=new Array(a.getColumnCount()).fill(void 0).map((_,N)=>({startRow:N,endRow:N,startColumn:0,endColumn:y-1}));f={subUnitId:i,unitId:u,rowHeight:m,ranges:b}}else v===s.RANGE_TYPE.ROW?f={subUnitId:i,unitId:u,ranges:S.map(y=>s.Rectangle.clone(y.range)),rowHeight:m}:f={subUnitId:i,unitId:u,rowHeight:m,ranges:[{startRow:d,endRow:d,startColumn:0,endColumn:a.getMaxColumns()-1}]};const C=eo(n,f),I={unitId:u,subUnitId:i,ranges:f.ranges,autoHeightInfo:s.BooleanNumber.FALSE},R=$t(n,I),p=n.get(s.ICommandService),w=n.get(s.IUndoRedoService);return s.sequenceExecute([{id:pe.id,params:f},{id:ue.id,params:I}],p).result?(w.pushUndoRedo({unitID:u,undoMutations:[{id:pe.id,params:C},{id:ue.id,params:R}],redoMutations:[{id:pe.id,params:f},{id:ue.id,params:I}]}),!0):!1}},no={type:s.CommandType.COMMAND,id:"sheet.command.set-row-height",handler:(n,t)=>{const o=n.get(h.SelectionManagerService),e=n.get(s.ICommandService),r=n.get(s.IUndoRedoService),a=n.get(s.IUniverInstanceService),i=o.getSelectionRanges();if(!(i!=null&&i.length))return!1;const u=B(a);if(!u)return!1;const{unitId:d,subUnitId:c}=u,l={subUnitId:c,unitId:d,ranges:i,rowHeight:t.value},m=eo(n,l),g={unitId:d,subUnitId:c,ranges:l.ranges,autoHeightInfo:s.BooleanNumber.FALSE},S=$t(n,g);return s.sequenceExecute([{id:pe.id,params:l},{id:ue.id,params:g}],e).result?(r.pushUndoRedo({unitID:d,undoMutations:[{id:pe.id,params:m},{id:ue.id,params:S}],redoMutations:[{id:pe.id,params:l},{id:ue.id,params:g}]}),!0):!1}},zt={type:s.CommandType.COMMAND,id:"sheet.command.set-row-is-auto-height",handler:async(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService),r=n.get(h.SelectionManagerService),a=n.get(s.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}]:r.getSelectionRanges();if(!(m!=null&&m.length))return!1;const g={unitId:u,subUnitId:d,ranges:m,autoHeightInfo:s.BooleanNumber.TRUE},S=$t(n,g),v=o.syncExecuteCommand(ue.id,g),{undos:f,redos:C}=n.get(h.SheetInterceptorService).onCommandExecute({id:zt.id,params:g}),I=s.sequenceExecute([...C],o);return v&&I.result?(e.pushUndoRedo({unitID:u,undoMutations:[{id:ue.id,params:S},...f],redoMutations:[{id:ue.id,params:g},...C]}),!0):!1}},oo={type:s.CommandType.COMMAND,id:"sheet.command.set-worksheet-show",handler:async(n,t)=>{const{unitId:o,subUnitId:e}=t,r=n.get(s.ICommandService),a=n.get(s.IUndoRedoService),i=n.get(s.IUniverInstanceService);if(!B(n.get(s.IUniverInstanceService)))return!1;const d=i.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!d)return!1;const c=d.getSheetBySheetId(e);if(!c||c.getConfig().hidden===s.BooleanNumber.FALSE)return!1;const m={unitId:o,subUnitId:e,hidden:s.BooleanNumber.FALSE},g=Jn(n,m),S=r.syncExecuteCommand(Ue.id,m),v={unitId:o,subUnitId:e},f=r.syncExecuteCommand(Ye.id,v);return S&&f?(a.pushUndoRedo({unitID:o,undoMutations:[{id:Ue.id,params:g}],redoMutations:[{id:Ue.id,params:m}]}),!0):!1}},so=n=>{const t=new s.ObjectMatrix;return n.forEach(o=>{s.Range.foreach(o,(e,r)=>{t.setValue(e,r,1)})}),t.forValue((o,e)=>{const r=t.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ro=n=>{const t=n;return t.forValue((o,e)=>{const r=n.getValue(o-1,e);r&&t.setValue(o,e,r+1)}),t},ao=n=>{const t={area:0},o=(e,r)=>t.area<e?(t.area=e,t.range=r,!0):!1;return n.forValue((e,r,a)=>{let i=1,u=a;o(i*u,{startRow:e-u+1,endRow:e,startColumn:r,endColumn:r});const d={startRow:e-u+1,endRow:e,startColumn:0,endColumn:r};for(let c=r-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},Ps=(n,t)=>(s.Range.foreach(t,(o,e)=>{n.realDeleteValue(o,e);let r=o+1,a=n.getValue(r,e)||0;for(;a>1;)n.setValue(r,e,a-1),r+=1,a=n.getValue(r,e)||0}),n),qt=n=>{const t=[];let o=ao(n);for(;o.area>0;)o.range&&(t.push(o.range),Ps(n,o.range)),o=ao(n);return t},xt=n=>{const t=so(n);return qt(t)};class ks{constructor(){W(this,"_matrix",new s.ObjectMatrix)}add(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.setValue(e,r,1)})}),this}subtract(...t){return t.forEach(o=>{s.Range.foreach(o,(e,r)=>{this._matrix.realDeleteValue(e,r)})}),this}merge(){const t=ro(this._matrix);return qt(t)}}const As=(n,t,o="")=>n.reduce((e,r)=>{const a=r&&r[t];return typeof a!="string"?(console.warn(r,`${t} is not string`),e):(a?(e[a]||(e[a]=[]),e[a].push(r)):e[o].push(r),e)},{}),Vs=(n=0)=>{let t=n;return function(){return t++}},Ne=z.createIdentifier("INumfmtService");s.runOnLifecycle(s.LifecycleStages.Ready,Ne);const Ls=(n,t)=>{const o=n.get(Ne),{values:e,unitId:r,subUnitId:a}=t,i=[],u=[];Object.keys(e).forEach(c=>{e[c].ranges.forEach(m=>{s.Range.foreach(m,(g,S)=>{const v=o.getValue(r,a,g,S);v?i.push({pattern:v.pattern,row:g,col:S}):u.push({startColumn:S,endColumn:S,startRow:g,endRow:g})})})});const d=[];if(i.length){const c=vt(r,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(r,a,i)})}return u.length&&d.push({id:Yt.id,params:{unitId:r,subUnitId:a,ranges:u}}),d},ht={id:"sheet.mutation.set.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{values:o,refMap:e}=t,r=n.get(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 r.setValues(a,i,u),!0}},Yt={id:"sheet.mutation.remove.numfmt",type:s.CommandType.MUTATION,handler:(n,t)=>{if(!t)return!1;const{unitId:o,subUnitId:e,ranges:r}=t;return n.get(Ne).deleteValues(o,e,r),!0}},Bs=(n,t)=>{const o=n.get(Ne),{ranges:e,unitId:r,subUnitId:a}=t,i=[];if(e.forEach(d=>{s.Range.foreach(d,(c,l)=>{const m=o.getValue(r,a,c,l);m&&i.push({pattern:m.pattern,row:c,col:l})})}),!i.length)return[];const u=vt(r,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=As(o,"pattern"),r={},a={},i=Vs();return Object.keys(e).forEach(u=>{const d=e[u],c=i();r[c]={pattern:u},d.forEach(l=>{a[c]||(a[c]={ranges:[]}),a[c].ranges.push(s.cellToRange(l.row,l.col))})}),{unitId:n,subUnitId:t,refMap:r,values:a}},io={id:"sheet.mutation.empty",type:s.CommandType.MUTATION,handler:()=>!0},uo={id:"sheet.command.insert-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.SetDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}]}),!0):!1}},lo={id:"sheet.command.remove-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);if(!t)return!1;const r={...t};return o.syncExecuteCommand(ne.RemoveDefinedNameMutation.id,r)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:r}],redoMutations:[{id:ne.RemoveDefinedNameMutation.id,params:r}]}),!0):!1}},co={id:"sheet.command.set-defined-name",type:s.CommandType.COMMAND,handler:(n,t)=>{const o=n.get(s.ICommandService),e=n.get(s.IUndoRedoService);return t&&o.syncExecuteCommand(ne.SetDefinedNameMutation.id,t.newDefinedName)?(e.pushUndoRedo({unitID:t.unitId,undoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.oldDefinedName}],redoMutations:[{id:ne.SetDefinedNameMutation.id,params:t.newDefinedName}]}),!0):!1}},mo={id:"sheet.operation.scroll-to-cell",type:s.CommandType.OPERATION,handler:()=>!0},Kt={id:"sheet.mutation.set-workbook-name",type:s.CommandType.MUTATION,handler:(n,t)=>{const o=n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET);return o?(o.setName(t.name),!0):!1}},Xt={type:s.CommandType.COMMAND,id:"sheet.command.set-workbook-name",handler:async(n,t)=>{var c;if(!n.get(s.IUniverInstanceService).getUnit(t.unitId,s.UniverInstanceType.UNIVER_SHEET))return!1;const a=n.get(h.SheetInterceptorService).onCommandExecute({id:Xt.id,params:t}),i={name:t.name,unitId:t.unitId},u=[...(c=a.preRedos)!=null?c:[],{id:Kt.id,params:i},...a.redos],d=n.get(s.ICommandService);return s.sequenceExecute(u,d).result}},go="maxCellsPerSheet",Ws=3e6;var js=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,Hs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Fs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&js(t,o,r),r},ho=(n,t)=>(o,e)=>t(o,e,n);let St=class extends s.Disposable{constructor(n,t){super(),this._commandService=n,this._configService=t,[j,tt,_t,nt,hn,at,it,jt,to,yn,wn,Be,Re,ut,dt,Mn,In,Le,Ce,Un,_e,Pt,Te,st,Ve,Ot,be,ct,Ie,lt,we,kt,Ae,Nn,F,zn,$n,Gn,Dn,kn,We,On,Pn,Vn,je,Fe,Ft,fs,Bn,ye,xn,qe,q,no,jn,$e,He,An,Wn,At,Lt,J,Xn,xe,Hn,Kn,Yn,qn,Xt,Kt,Bt,Ye,Me,Zn,Ue,Ht,gt,Qn,Ke,Gt,pe,zt,ue,oo,ht,$,Yt,io,uo,lo,co,mo].forEach(o=>this.disposeWithMe(this._commandService.registerCommand(o))),this._configService.setConfig(go,Ws)}};St=Hs([s.OnLifecycle(s.LifecycleStages.Starting,St),ho(0,s.ICommandService),ho(1,s.IConfigService)],St);var $s=Object.defineProperty,Gs=Object.getOwnPropertyDescriptor,zs=(n,t,o,e)=>{for(var r=e>1?void 0:e?Gs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&$s(t,o,r),r},vo=(n,t)=>(o,e)=>t(o,e,n);let ft=class extends s.Disposable{constructor(n,t){super(),this._univerInstanceService=n,this._commandService=t,this._initialize()}_initialize(){this._commandExecutedListener()}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(n=>{if(n.id!==ne.SetFormulaCalculationResultMutation.id)return;const t=n.params,{unitData:o}=t,e=Object.keys(o),r=[];return e.forEach(i=>{const 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};r.push({id:q.id,params:g})})}),r.every(i=>this._commandService.executeCommand(i.id,i.params,{onlyLocal:!0}))}))}_getMergedCellData(n,t,o){const e=this._univerInstanceService.getUniverSheetInstance(n),r=e==null?void 0:e.getStyles(),a=e==null?void 0:e.getSheetBySheetId(t),i=a==null?void 0:a.getCellMatrix(),u=new s.ObjectMatrix(o);return u.forValue((d,c,l)=>{const m=i==null?void 0:i.getValue(d,c),g=ne.handleNumfmtInCell(m,l,r);u.setValue(d,c,g)}),u.clone()}};ft=zs([s.OnLifecycle(s.LifecycleStages.Ready,ft),vo(0,z.Inject(s.IUniverInstanceService)),vo(1,s.ICommandService)],ft);var qs=Object.defineProperty,xs=Object.getOwnPropertyDescriptor,Ys=(n,t,o,e)=>{for(var r=e>1?void 0:e?xs(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&qs(t,o,r),r},Ct=(n,t)=>(o,e)=>t(o,e,n);let Rt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._featureCalculationManagerService=t,this._univerInstanceService=o,this._formulaDataModel=e}_initialize(){const n="test",t="workbook-01",o="sheet-0011",e={[t]:{[o]:new s.ObjectMatrix({4:{0:{v:10,t:2}}})}},r={[t]:{[o]:[{startRow:4,startColumn:0,endRow:4,endColumn:0}]}};this._featureCalculationManagerService.register(n,{unitId:t,subUnitId:o,dependencyRanges:[{unitId:t,sheetId:o,range:{startRow:0,endRow:3,startColumn:0,endColumn:3}}],getDirtyData:()=>({runtimeCellData:e,dirtyRanges:r})})}};Rt=Ys([s.OnLifecycle(s.LifecycleStages.Ready,Rt),Ct(0,s.ICommandService),Ct(1,ne.IFeatureCalculationManagerService),Ct(2,s.IUniverInstanceService),Ct(3,z.Inject(ne.FormulaDataModel))],Rt);const P={MoveRangeCommandId:vn,InsertRowCommandId:Rn,InsertColCommandId:pn,RemoveColCommandId:En,RemoveRowCommandId:Tn,DeleteRangeMoveLeftCommandId:Sn,DeleteRangeMoveUpCommandId:fn,InsertRangeMoveDownCommandId:ds,InsertRangeMoveRightCommandId:Cn,MoveColsCommandId:bn,MoveRowsCommandId:_n};var k=(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))(k||{});const It=Number.MAX_SAFE_INTEGER,ve=n=>{const t={...n};return t.rangeType===s.RANGE_TYPE.COLUMN&&(t.startRow=0,t.endRow=It),t.rangeType===s.RANGE_TYPE.ROW&&(t.startColumn=0,t.endColumn=It),t.rangeType===s.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},r={...t},a=(f,C)=>{const I=Math.max(f.start,C.start),R=Math.min(f.end,C.end);return R<I?null:{start:I,end:R}},i=f=>f.end-f.start+1,u=(f,C)=>({start:f.start-C.start,end:f.start-C.start+f.end-f.start}),d=(f,C)=>({start:C.start+f.start,end:C.start+f.start+f.end-f.start}),c=t.start>n.start;if(c){const f=Math.min(n.end,t.start)-n.start+1;r.start-=f,r.end-=f}const l=i(n),m=l,g=a(n,e),S=g&&i(g)>=i(e);if(n.end<e.start)e.start-=l,e.end-=l;else if(g){const f=i(g);if(S){const C=u(e,n),I=d(C,r);e.start=I.start,e.end=I.end}else g.start>n.start?c?(e.end-=f+l,e.start-=l):e.end-=f:c?e.end-=f:e.start>n.start&&e.end>n.end?(e.start-=l,e.end-=l+f):e.end-=f}const v=a(r,e);return S||(r.start<=e.start?(e.start+=m,e.end+=m):v&&(c?r.end<=e.start||r.start<=e.start&&r.end>=e.start?(e.start+=m,e.end+=m):r.start>=e.start&&r.start<=e.end&&(e.end+=m):e.start<r.start&&e.end>r.start?e.end+=m:(e.start>=r.end||e.start>=r.start&&e.start<=r.end)&&(e.end+=m,e.start+=m))),{step:e.start-o.start,length:i(e)-i(o)}},Jt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startRow,end:r.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}]},Ks=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startRow:r}=o,{startRow:a}=e,i=e.endRow-e.startRow+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(c,l)=>{u.setValue(c,l,1)}),u.moveRows(r,i,a),s.queryObjectMatrix(u,c=>c===1)},Zt=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!e||!o)return[];const r=ve(o),a=ve(e),i=ve(t),u=Xe({start:r.startColumn,end:r.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}]},Xs=(n,t)=>{const{fromRange:o,toRange:e}=n.params||{};if(!o||!e)return[t];const{startColumn:r}=o,{startColumn:a}=e,i=e.endColumn-e.startColumn+1,u=new s.ObjectMatrix;return s.Range.foreach(t,(d,c)=>{u.setValue(d,c,1)}),u.moveColumns(r,i,a),s.queryObjectMatrix(u,d=>d===1)},So=(n,t)=>{var a,i;const o=(a=n.params)==null?void 0:a.toRange,e=(i=n.params)==null?void 0:i.fromRange;if(!o||!e)return[];const r=[];if(s.Rectangle.contains(o,t)&&r.push({type:k.Delete}),s.Rectangle.contains(e,t)){r.push({type:k.Delete});const u=s.Rectangle.getRelativeRange(t,e),d=s.Rectangle.getPositionRange(u,o);return[{type:k.Set,range:d}]}return r},Js=(n,t)=>{var m,g;const o=(m=n.params)==null?void 0:m.toRange,e=(g=n.params)==null?void 0:g.fromRange;if(!o||!e)return[t];if(!s.Rectangle.intersects(e,t)&&!s.Rectangle.intersects(o,t))return[t];if(s.Rectangle.contains(e,t)){const S=s.Rectangle.getRelativeRange(t,e);return[s.Rectangle.getPositionRange(S,o)]}const r=new s.ObjectMatrix;s.Range.foreach(t,(S,v)=>{r.setValue(S,v,1)});const a=new s.ObjectMatrix,i=s.Rectangle.getIntersects(e,t);i&&s.Range.foreach(i,(S,v)=>{r.getValue(S,v)&&(r.setValue(S,v,void 0),a.setValue(S,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&&s.Range.foreach(c,(S,v)=>{var I;const f=S+d,C=v+u;r.setValue(f,C,(I=a.getValue(S,v))!=null?I:0)}),s.queryObjectMatrix(r,S=>S===1)},De=(n,t)=>{const o=ve(n),e=ve(t),r=i=>i.endColumn-i.startColumn+1,a=i=>i.endRow-i.startRow+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i)return{step:0,length:-r(i)}}if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn&&a(o)>=a(e))return null;if(e.startColumn>=o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn){const i=s.Rectangle.getIntersects(e,o);if(i){const u=-r(i);return{step:-(r(o)-r(i)),length:u}}}if(e.startColumn>o.endColumn)return{step:-r(o),length:0}}return{step:0,length:0}},Qt=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},en=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},Oe=(n,t)=>{const o=ve(n),e=ve(t),r=a=>a.endColumn-a.startColumn+1;if(o.startRow<=e.startRow&&o.endRow>=e.endRow){if(e.startColumn<o.startColumn&&e.endColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn<o.startColumn&&e.endColumn>=o.endColumn)return{step:0,length:r(o)};if(e.startColumn>=o.startColumn&&e.endColumn<=o.endColumn||e.startColumn>o.startColumn&&e.startColumn<=o.endColumn&&e.endColumn>o.endColumn||e.startColumn>=o.endColumn)return{step:r(o),length:0}}return{step:0,length:0}};function Zs(n,t,o){const e=[];if(s.Rectangle.contains(t,o)&&e.push({type:k.Delete}),s.Rectangle.contains(n,o)){e.push({type:k.Delete});const r=s.Rectangle.getRelativeRange(o,n),a=s.Rectangle.getPositionRange(r,t);return[{type:k.Set,range:a}]}return e}const tn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},nn=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.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=[],r=Oe(ae(o),ae(t)),{step:a,length:i}=r;return e.push({type:k.VerticalMove,step:a,length:i}),e},Qs=(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,r={...o,startRow:o.startRow,endRow:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c+e,l,1)}),s.queryObjectMatrix(u,c=>c===1)},Co=(n,t)=>{var u;const o=(u=n.params)==null?void 0:u.range;if(!o)return[];const e=[],r=Oe(o,t),{step:a,length:i}=r;return e.push({type:k.HorizontalMove,step:a,length:i}),e},er=(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,r={...o,startColumn:o.startColumn,endColumn:Number.POSITIVE_INFINITY},a=s.Rectangle.subtract(t,r),i=s.Rectangle.getIntersects(r,t);if(!i)return[t];const u=new s.ObjectMatrix;return a.forEach(c=>{s.Range.foreach(c,(l,m)=>{u.setValue(l,m,1)})}),i&&s.Range.foreach(i,(c,l)=>{u.setValue(c,l+e,1)}),s.queryObjectMatrix(u,c=>c===1)},Ro=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(o,t);if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.HorizontalMove,step:i,length:u})}return e},tr=(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},r=o.endColumn-o.startColumn+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l,m-r,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l,m-r,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Io=(n,t)=>{var a;const o=(a=n.params)==null?void 0:a.range;if(!o)return[];const e=[],r=De(ae(o),ae(t));if(!r)e.push({type:k.Delete});else{const{step:i,length:u}=r;e.push({type:k.VerticalMove,step:i,length:u})}return e},nr=(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},r=o.endRow-o.startRow+1,a=s.Rectangle.getIntersects(o,t),i=s.Rectangle.subtract(t,e),u=s.Rectangle.getIntersects(e,t);if(!a&&!u)return[t];const d=new s.ObjectMatrix;return u&&s.Range.foreach(u,(l,m)=>{d.setValue(l-r,m,1)}),a&&s.Range.foreach(a,(l,m)=>{d.setValue(l-r,m,0)}),i.forEach(l=>{s.Range.foreach(l,(m,g)=>{d.setValue(m,g,1)})}),s.queryObjectMatrix(d,l=>l===1)},Pe=(n,t)=>{let o={...t};return n.forEach(e=>{switch(e.type){case k.Delete:{o=null;break}case k.HorizontalMove:{if(!o)return;o.startColumn+=e.step,o.endColumn+=e.step+(e.length||0);break}case k.VerticalMove:{if(!o)return;o.startRow+=e.step,o.endRow+=e.step+(e.length||0);break}case k.Set:{o=e.range;break}}}),o&&(o.endColumn<o.startColumn||o.endRow<o.startRow)?null:o},or=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:{o=Ro(t,n);break}case P.DeleteRangeMoveUpCommandId:{o=Io(t,n);break}case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRangeMoveDownCommandId:{o=fo(t,n);break}case P.InsertRangeMoveRightCommandId:{o=Co(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:{o=Zt(t,n);break}case P.MoveRangeCommandId:{o=So(t,n);break}case P.MoveRowsCommandId:{o=Jt(t,n);break}case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)},sr=(n,t)=>{let o=[];switch(t.id){case P.DeleteRangeMoveLeftCommandId:return tr(t,n);case P.DeleteRangeMoveUpCommandId:return nr(t,n);case P.InsertRangeMoveDownCommandId:return Qs(t,n);case P.InsertRangeMoveRightCommandId:return er(t,n);case P.InsertColCommandId:{o=nn(t,n);break}case P.InsertRowCommandId:{o=tn(t,n);break}case P.MoveColsCommandId:return Xs(t,n);case P.MoveRangeCommandId:return Js(t,n);case P.MoveRowsCommandId:return Ks(t,n);case P.RemoveColCommandId:{o=Qt(t,n);break}case P.RemoveRowCommandId:{o=en(t,n);break}}return Pe(o,n)};function rr(n,t){const{id:o,params:e}=t;let r={length:0,step:0,type:k.Unknown};switch(o){case Ae.id:r.type=k.Delete;break;case be.id:r=Xe({start:e.sourceRange.startRow,end:e.sourceRange.endRow},{start:e.targetRange.startRow,end:e.targetRange.endRow},{start:n.startRow,end:n.endRow}),r.type=k.VerticalMove;break;case Te.id:r=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:r=De(e.range,n),r?r.type=k.HorizontalMove:r={step:0,length:0,type:k.Delete};break;case we.id:r=De(ae(e.range),ae(n)),r?r.type=k.VerticalMove:r={step:0,length:0,type:k.Delete};break;case Ce.id:r=Oe(ae(e.range),ae(n)),r.type=k.VerticalMove;break;case Re.id:r=Oe(e.range,n),r.type=k.HorizontalMove;break;case Ve.id:r=Zs(new s.ObjectMatrix(e.from).getRange(),new s.ObjectMatrix(e.to).getRange(),n);break}return r?Array.isArray(r)?Pe(r,n):Pe([r],n):n}var ar=Object.defineProperty,ir=Object.getOwnPropertyDescriptor,ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?ir(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&ar(t,o,r),r},Mt=(n,t)=>(o,e)=>t(o,e,n);const dr=s.createInterceptorKey("MERGE_REDO"),lr=s.createInterceptorKey("MERGE_UNDO");class cr extends s.Disposable{constructor(t,o,e,r){super(),this._unitId=t,this._subUnitId=o,this._range=e,this._callback=r}onMutation(t){if(t.params.unitId!==this._unitId||t.params.subUnitId!==this._subUnitId||!this._range)return;const o=rr(this._range,t);if(o&&s.Rectangle.equals(o,this._range))return!1;const e=this._range;this._range=o,this._callback(e,o)}}h.RefRangeService=class extends s.Disposable{constructor(o,e,r,a){super();W(this,"interceptor",new s.InterceptorManager({MERGE_REDO:dr,MERGE_UNDO:lr}));W(this,"_watchRanges",new Set);W(this,"_refRangeManagerMap",new Map);W(this,"_serializer",mr());W(this,"_onRefRangeChange",()=>{this._sheetInterceptorService.interceptCommand({getMutations:o=>{const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet(),r=Mo(this._univerInstanceService),a=po(this._univerInstanceService),d=((()=>{switch(o.id){case P.MoveColsCommandId:{const S=o.params,v=Math.min(S.fromRange.startColumn,S.toRange.startColumn);return this._checkRange([{...S.fromRange,startColumn:v,endColumn:e.getColumnCount()-1}],r,a)}case P.MoveRowsCommandId:{const S=o.params,v=Math.min(S.fromRange.startRow,S.toRange.startRow);return this._checkRange([{...S.fromRange,startRow:v,endRow:e.getRowCount()-1}],r,a)}case P.MoveRangeCommandId:{const S=o;return this._checkRange([S.params.fromRange,S.params.toRange],r,a)}case P.InsertRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.InsertColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveRowCommandId:{const f={startRow:o.params.range.startRow,endRow:e.getRowCount()-1,startColumn:0,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.RemoveColCommandId:{const v=o.params.range.startColumn,f={startRow:0,endRow:e.getRowCount()-1,startColumn:v,endColumn:e.getColumnCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveUpCommandId:case P.InsertRangeMoveDownCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:v.endColumn,endRow:e.getRowCount()-1};return this._checkRange([f],r,a)}case P.DeleteRangeMoveLeftCommandId:case P.InsertRangeMoveRightCommandId:{const v=o.params.range||wo(this._selectionManagerService)[0],f={startRow:v.startRow,startColumn:v.startColumn,endColumn:e.getColumnCount()-1,endRow:v.endRow};return this._checkRange([f],r,a)}}})()||[]).reduce((S,v)=>{const f=v(o);return S.push(f),S},[]).reduce((S,v)=>{var f,C;return S.redos.push(...v.redos),S.undos.push(...v.undos),S.preRedos.push(...(f=v.preRedos)!=null?f:[]),S.preUndos.push(...(C=v.preUndos)!=null?C:[]),S},{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}}})});W(this,"_checkRange",(o,e,r)=>{const a=yo(e,r),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=>s.Rectangle.intersects(g,m))&&l&&l.forEach(g=>{u.add(g)})}),[...u]}return[]});W(this,"registerRefRange",(o,e,r,a)=>{const i=r||Mo(this._univerInstanceService),u=a||po(this._univerInstanceService),d=yo(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])),s.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=r,this._selectionManagerService=a,this._onRefRangeChange(),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_REDO,{priority:-1,handler:i=>i}),this.interceptor.intercept(this.interceptor.getInterceptPoints().MERGE_UNDO,{priority:-1,handler:i=>i})}watchRange(o,e,r,a){let i;this._watchRanges.size===0&&(i=this._commandService.onCommandExecuted(l=>{if(l.type!==s.CommandType.MUTATION)return!1;for(const m of this._watchRanges)m.onMutation(l)}));const u=new cr(o,e,r,a);this._watchRanges.add(u);const d=s.toDisposable(()=>{this._watchRanges.delete(u),this._watchRanges.size===0&&(i==null||i.dispose(),i=null)}),c=this.disposeWithMe(d);return s.toDisposable(()=>{c.dispose(),d.dispose()})}},h.RefRangeService=ur([s.OnLifecycle(s.LifecycleStages.Ready,h.RefRangeService),Mt(0,s.ICommandService),Mt(1,z.Inject(h.SheetInterceptorService)),Mt(2,z.Inject(s.IUniverInstanceService)),Mt(3,z.Inject(h.SelectionManagerService))],h.RefRangeService);function Mo(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getUnitId()}function po(n){return n.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET).getActiveSheet().getSheetId()}function wo(n){return n.getSelectionRanges()||[]}function yo(n,t){return`${n}_${t}`}function mr(){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,r,a)=>{const i=o[r];return i!==void 0?`${e}${a>0?t:""}${i}`:`${e}`},"")}}var gr=Object.defineProperty,hr=Object.getOwnPropertyDescriptor,vr=(n,t,o,e)=>{for(var r=e>1?void 0:e?hr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&gr(t,o,r),r},Ge=(n,t)=>(o,e)=>t(o,e,n);const Sr=[Re.id,Ce.id,Ie.id,we.id],fr=[be.id,Te.id];function Uo(n,t){let o=n;if(t!==void 0){const e=[];for(let r=0;r<o.length;r++){const{startRow:a,endRow:i,startColumn:u,endColumn:d}=o[r];if(t===s.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===s.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 s.Disposable{constructor(o,e,r,a,i,u){super();W(this,"disposableCollection",new s.DisposableCollection);this._commandService=o,this._refRangeService=e,this._univerInstanceService=r,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 r=o._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET),a=r.getUnitId(),i=r.getActiveSheet(),u=i.getSheetId(),d=i.getConfig().mergeData,c=o._selectionManagerService.getSelectionRanges();if(c&&c.length>0&&c.some(m=>d.some(g=>s.Rectangle.intersects(g,m)))){const m={unitId:a,subUnitId:u,ranges:c},g=re(o._injector,m),S=[{id:F.id,params:m}],v=[{id:j.id,params:g}];return{redos:S,undos:v}}}}return{redos:[],undos:[]}}})}refRangeHandle(o,e,r){switch(o.id){case P.MoveColsCommandId:{const a=o.params;return this._handleMoveColsCommand(a,e,r)}case P.MoveRowsCommandId:{const a=o.params;return this._handleMoveRowsCommand(a,e,r)}case Le.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertRowCommand(a,i,u)}case Be.id:{const a=o.params,i=a.unitId||e,u=a.subUnitId||r;return this._handleInsertColCommand(a,i,u)}case ct.id:{const a=o.params;return this._handleRemoveColCommand(a,e,r)}case lt.id:{const a=o.params;return this._handleRemoveRowCommand(a,e,r)}case st.id:{const a=o.params;return this._handleMoveRangeCommand(a,e,r)}case dt.id:{const a=o.params;return this._handleInsertRangeMoveRightCommand(a,e,r)}case ut.id:{const a=o.params;return this._handleInsertRangeMoveDownCommand(a,e,r)}case it.id:{const a=o.params;return this._handleDeleteRangeMoveUpCommand(a,e,r)}case at.id:{const a=o.params;return this._handleDeleteRangeMoveLeftCommand(a,e,r)}}return{redos:[],undos:[]}}_onRefRangeChange(){const o=(r,a)=>{const i=this._univerInstanceService.getUniverSheetInstance(r);if(!i)return;const u=i==null?void 0:i.getSheetBySheetId(a);if(!u)return;this.disposableCollection.dispose();const d=u.getMergeData(),c=l=>this.refRangeHandle(l,r,a);d.forEach(l=>{this.disposableCollection.add(this._refRangeService.registerRefRange(l,c,r,a))})};this.disposeWithMe(this._commandService.onCommandExecuted(r=>{if(r.id===Bt.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(u,i)}if(r.id===j.id){const a=r.params,i=a.subUnitId,u=a.unitId;if(!i||!u)return;o(a.unitId,a.subUnitId)}}));const e=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(e){const r=e.getActiveSheet();o(e.getUnitId(),r.getSheetId())}}_handleMoveRowsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startRow:m,endRow:g}=l;if(u.forEach(f=>{if(m<=f.startRow&&g>=f.endRow){d.ranges.push(f);const C=Jt({id:P.MoveRowsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveColsCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=[...i.getMergeData()],d={unitId:e,subUnitId:r,ranges:[]},c={unitId:e,subUnitId:r,ranges:[]},{fromRange:l}=o,{startColumn:m,endColumn:g}=l;if(u.forEach(f=>{if(m<=f.startColumn&&g>=f.endColumn){d.ranges.push(f);const C=Zt({id:P.MoveColsCommandId,params:o},f),I=Pe(C,f);I&&c.ranges.push(I)}}),d.ranges.length===0)return this._handleNull();const S=re(this._injector,d),v=me(this._injector,c);return{redos:[{id:F.id,params:d},{id:j.id,params:c}],undos:[{id:F.id,params:v},{id:j.id,params:S}]}}_handleMoveRangeCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=i.getMergeData(),d=u.filter(v=>s.Rectangle.intersects(v,o.fromRange)),c=u.filter(v=>s.Rectangle.intersects(v,o.toRange)),l=d.map(v=>s.Rectangle.getRelativeRange(v,o.fromRange)).map(v=>s.Rectangle.getPositionRange(v,o.toRange)),m=Uo(l).filter(v=>!u.some(f=>s.Rectangle.equals(v,f))),g=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:d}},{id:F.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:m}}],S=[{id:F.id,params:{unitId:e,subUnitId:r,ranges:m}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:c}},{id:j.id,params:{unitId:e,subUnitId:r,ranges:d}}];return{redos:g,undos:S}}_handleInsertRowCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startRow:d,endRow:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>(d>p.startRow&&d<=p.endRow&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((R,p)=>{if(d>p.startRow&&d<=p.endRow){const w=c-d+1;p.endRow+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleInsertColCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startColumn:d,endColumn:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>(d>p.startColumn&&d<=p.endColumn&&R.push(p),R),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((R,p)=>{if(d>p.startColumn&&d<=p.endColumn){const w=c-d+1;p.endColumn+=w,this._checkIsMergeCell(p)&&R.push(p)}return R},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:F.id,params:f},{id:j.id,params:S}];return{redos:C,undos:I}}_handleRemoveColCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const{range:u}=o,{startColumn:d,endColumn:c}=u,l=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(u,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(i.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(u,M)){if(d<=M.startColumn&&c>=M.endColumn)return w;d>=M.startColumn&&c<=M.endColumn?M.endColumn-=c-d+1:d<M.startColumn?(M.startColumn=d,M.endColumn-=c-d+1):c>M.endColumn&&(M.endColumn=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleRemoveRowCommand(o,e,r){const{range:a}=o,i=ge(this._univerInstanceService,e);if(!i)return this._handleNull();const u=he(i,r);if(!u)return this._handleNull();const{startRow:d,endRow:c}=a,l=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>(s.Rectangle.intersects(a,M)&&w.push(M),w),[]);if(l.length===0)return this._handleNull();const m=s.Tools.deepClone(u.getMergeData()).reduce((w,M)=>{if(s.Rectangle.intersects(a,M)){if(d<=M.startRow&&c>=M.endRow)return w;d>=M.startRow&&c<=M.endRow?M.endRow-=c-d+1:d<M.startRow?(M.startRow=d,M.endRow-=c-d+1):c>M.endRow&&(M.endRow=d-1),this._checkIsMergeCell(M)&&w.push(M)}return w},[]),g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g}],I=[{id:j.id,params:v}],R=[{id:F.id,params:f}],p=[{id:j.id,params:S}];return{preUndos:R,undos:p,preRedos:C,redos:I}}_handleInsertRangeMoveRightCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);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:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn+b,endRow:C.endRow,endColumn:C.endColumn+b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_handleInsertRangeMoveDownCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1;m.push({startRow:R.startRow+N,startColumn:R.startColumn,endRow:R.endRow+N,endColumn:R.endColumn})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveUpCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);if(!i)return this._handleNull();const u=o.range,d=i.getMaxRows()-1,c=i.getMergeData(),l=[],m=[];c.forEach(R=>{const{startRow:p,startColumn:w,endColumn:M,endRow:y}=u;if(s.Rectangle.intersects({startRow:p,startColumn:w,endRow:d,endColumn:M},R)&&(l.push(R),s.Rectangle.contains({startRow:p,startColumn:w,endRow:d,endColumn:M},R))){const N=y-p+1,A=s.Rectangle.moveVertical(R,-N);m.push(A)}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v),C=[{id:F.id,params:g},{id:j.id,params:v}],I=[{id:j.id,params:S},{id:F.id,params:f}];return{redos:C,undos:I}}_handleDeleteRangeMoveLeftCommand(o,e,r){const a=ge(this._univerInstanceService,e);if(!a)return this._handleNull();const i=he(a,r);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:p,endColumn:w}=u;if(s.Rectangle.intersects({startRow:I,startColumn:p,endRow:R,endColumn:d},C)&&(l.push(C),s.Rectangle.contains({startRow:I,startColumn:p,endRow:R,endColumn:d},C))){const b=w-p+1;m.push({startRow:C.startRow,startColumn:C.startColumn-b,endRow:C.endRow,endColumn:C.endColumn-b})}});const g={unitId:e,subUnitId:r,ranges:l},S=re(this._injector,g),v={unitId:e,subUnitId:r,ranges:m},f=me(this._injector,v);return{redos:[{id:F.id,params:g},{id:j.id,params:v}],undos:[{id:j.id,params:S},{id:F.id,params:f}]}}_checkIsMergeCell(o){return!(o.startRow===o.endRow&&o.startColumn===o.endColumn)}_handleNull(){return{redos:[],undos:[]}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted(o=>{if(fr.includes(o.id)){if(!o.params)return;const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const{sourceRange:a,targetRange:i}=o.params,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=r.getConfig().mergeData,g=[];m.forEach(C=>{let{startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M}=C;s.Rectangle.intersects(C,a)||(u?c<I&&l>R?(I-=d,R-=d):c>R&&l<=I&&(I+=d,R+=d):c<p&&l>w?(p-=d,w-=d):c>w&&l<=p&&(p+=d,w+=d)),C.startRow===C.endRow&&C.startColumn===C.endColumn||g.push({startRow:I,endRow:R,startColumn:p,endColumn:w,rangeType:M})}),r.getConfig().mergeData=g,this.disposableCollection.dispose();const{unitId:S,subUnitId:v}=o.params,f=C=>this.refRangeHandle(C,S,v);g.forEach(C=>{this.disposableCollection.add(this._refRangeService.registerRefRange(C,f,S,v))})}if(Sr.includes(o.id)){const e=this._univerInstanceService.getUniverSheetInstance(o.params.unitId);if(!e)return;const r=e.getSheetBySheetId(o.params.subUnitId);if(!r)return;const a=r.getConfig().mergeData,i=o.params;if(!i)return;const{range: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,S=[];a.forEach(I=>{let{startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y}=I;c?d?l<=R&&(R+=g,p+=g):l<=w&&(w+=g,M+=g):d?m<R&&(R-=g,p-=g):m<w&&(w-=g,M-=g),I.startRow===I.endRow&&I.startColumn===I.endColumn||S.push({startRow:R,endRow:p,startColumn:w,endColumn:M,rangeType:y})}),r.getConfig().mergeData=S,this.disposableCollection.dispose();const{unitId:v,subUnitId:f}=o.params,C=I=>this.refRangeHandle(I,v,f);S.forEach(I=>{this.disposableCollection.add(this._refRangeService.registerRefRange(I,C,v,f))})}}))}},h.MergeCellController=vr([s.OnLifecycle(s.LifecycleStages.Steady,h.MergeCellController),Ge(0,z.Inject(s.ICommandService)),Ge(1,z.Inject(h.RefRangeService)),Ge(2,z.Inject(s.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(s.UniverInstanceType.UNIVER_SHEET)}function he(n,t){return t?n.getSheetBySheetId(t):n.getActiveSheet()}const Cr={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:"隐藏后无可见工作表"}}},Rr={sheets:{tabs:{sheetCopy:"(Копия)",sheet:"Лист"},info:{overlappingSelections:"Невозможно использовать эту команду на пересекающихся выделениях",acrossMergedCell:"Через объединенную ячейку",partOfCell:"Выделена только часть объединенной ячейки",hideSheet:"После скрытия этого листа не будет видно ни одного листа"}}};var Ir=Object.defineProperty,Mr=Object.getOwnPropertyDescriptor,pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Mr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Ir(t,o,r),r},on=(n,t)=>(o,e)=>t(o,e,n);h.NumfmtService=class extends s.Disposable{constructor(t,o,e){super(),this._resourceManagerService=t,this._univerInstanceService=o,this._logService=e}getValue(t,o,e,r){const a=this._univerInstanceService.getUniverSheetInstance(t);if(!a)return;const i=a==null?void 0:a.getSheetBySheetId(o);if(!i)return;const u=a.getStyles(),d=i.getCellRaw(e,r);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 r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles();e.forEach(u=>{s.Range.foreach(u,(d,c)=>{const l=a.getCellRaw(d,c);if(!l)return;const m=l==null?void 0:l.s,S={...m&&i.get(m)||{}};delete S.n;const v=i.setValue(S);l.s=v})})}setValues(t,o,e){const r=this._univerInstanceService.getUniverSheetInstance(t);if(!r)return;const a=r==null?void 0:r.getSheetBySheetId(o);if(!a)return;const i=r.getStyles(),u=a.getCellMatrix();e.forEach(d=>{d.ranges.forEach(c=>{s.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}},f=i.setValue(v);g.s=f}else{const S={n:{pattern:d.pattern}},v=i.setValue(S);v&&u.setValue(l,m,{s:v})}})})})}},h.NumfmtService=pr([on(0,s.IResourceManagerService),on(1,s.IUniverInstanceService),on(2,s.ILogService)],h.NumfmtService);const bo="univer.sheet.editable";class Je extends s.PermissionPoint{constructor(o,e){super();W(this,"id",bo);W(this,"value",!0);W(this,"unitID");this._unitId=o,this._subUnitId=e,this.unitID=o,this.id=`${bo}_${o}_${e}`}}var wr=Object.defineProperty,yr=Object.getOwnPropertyDescriptor,Ur=(n,t,o,e)=>{for(var r=e>1?void 0:e?yr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&wr(t,o,r),r},To=(n,t)=>(o,e)=>t(o,e,n);h.SheetPermissionService=class extends s.RxDisposable{constructor(o,e){super();W(this,"_disposableByUnit",new Map);this._permissionService=o,this._univerInstanceService=e,this._init()}_init(){const o=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);o&&(this._interceptWorkbook(o),this._univerInstanceService.getTypeOfUnitAdded$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>this._interceptWorkbook(e)),this._univerInstanceService.getTypeOfUnitDisposed$(s.UniverInstanceType.UNIVER_SHEET).pipe(an.takeUntil(this.dispose$)).subscribe(e=>{var r;return(r=this._disposableByUnit.get(e.getUnitId()))==null?void 0:r.dispose()}))}_interceptWorkbook(o){const e=o.getUnitId(),r=new s.DisposableCollection;o.getSheets().forEach(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}),r.add(s.toDisposable(o.sheetCreated$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.addPermissionPoint(o.getUnitId(),u)}))),r.add(s.toDisposable(o.sheetDisposed$.subscribe(a=>{const i=a.getSheetId(),u=new Je(e,i);this._permissionService.deletePermissionPoint(o.getUnitId(),u.id)}))),r.add(s.toDisposable(()=>this._disposableByUnit.delete(e))),this._disposableByUnit.set(e,r)}getEditable$(o,e){return ke.of({value:!0,status:s.PermissionStatus.INIT})}getSheetEditable(o,e){return!0}setSheetEditable(o,e,r){const a=this._univerInstanceService.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET);if(!a)return;const i=e||a.getUnitId(),u=a.getActiveSheet(),d=r||u.getSheetId(),c=new Je(i,d);this._permissionService.updatePermissionPoint(i,c.id,o)}},h.SheetPermissionService=Ur([s.OnLifecycle(s.LifecycleStages.Ready,h.SheetPermissionService),To(0,z.Inject(s.IPermissionService)),To(1,z.Inject(s.IUniverInstanceService))],h.SheetPermissionService);function _r(n){var a,i,u;const t=n.get(s.IUniverInstanceService),o=n.get(h.SheetPermissionService),e=(a=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:a.getUnitId(),r=(i=t.getCurrentUnitForType(s.UniverInstanceType.UNIVER_SHEET))==null?void 0:i.getActiveSheet().getSheetId();return(u=o.getEditable$(e,r))==null?void 0:u.pipe(ke.map(d=>!d.value))}var br=Object.defineProperty,Tr=Object.getOwnPropertyDescriptor,Er=(n,t,o,e)=>{for(var r=e>1?void 0:e?Tr(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&br(t,o,r),r},pt=(n,t)=>(o,e)=>t(o,e,n);const Nr="SHEET_DEFINED_NAME_PLUGIN";let wt=class extends s.Disposable{constructor(n,t,o,e){super(),this._commandService=n,this._univerInstanceService=t,this._definedNamesService=o,this._resourceManagerService=e,this._initialize()}_initialize(){this._initSnapshot()}_initSnapshot(){const n=o=>{const e=this._definedNamesService.getDefinedNameMap(o);return e?JSON.stringify(e):""},t=o=>{if(!o)return{};try{return JSON.parse(o)}catch{return{}}};this.disposeWithMe(this._resourceManagerService.registerPluginResource({pluginName:Nr,businesses:[s.UniverInstanceType.UNIVER_SHEET],toJson:o=>n(o),parseJson:o=>t(o),onUnLoad:o=>{this._definedNamesService.removeUnitDefinedName(o)},onLoad:(o,e)=>{this._definedNamesService.registerDefinedNames(o,e)}}))}};wt=Er([s.OnLifecycle(s.LifecycleStages.Ready,wt),pt(0,s.ICommandService),pt(1,s.IUniverInstanceService),pt(2,ne.IDefinedNamesService),pt(3,s.IResourceManagerService)],wt);var Dr=Object.defineProperty,Or=Object.getOwnPropertyDescriptor,Pr=(n,t,o,e)=>{for(var r=e>1?void 0:e?Or(t,o):t,a=n.length-1,i;a>=0;a--)(i=n[a])&&(r=(e?i(t,o,r):i(r))||r);return e&&r&&Dr(t,o,r),r},sn=(n,t)=>(o,e)=>t(o,e,n);const kr="sheets";h.UniverSheetsPlugin=(yt=class extends s.Plugin{constructor(t,o,e,r){super(),this._config=t,this._commandService=o,this._localeService=e,this._injector=r,this._initializeDependencies(r)}onRendered(){this._localeService.load({zhCN:_o})}_initializeDependencies(t){var e;const o=[[Ee],[h.SelectionManagerService],[h.RefRangeService],[h.SheetPermissionService],[Ne,{useClass:h.NumfmtService}],[h.SheetInterceptorService],[St],[h.MergeCellController],[wt]];(e=this._config)!=null&&e.notExecuteFormula||o.push([ft],[Rt]),o.forEach(r=>{t.add(r)})}},W(yt,"pluginName",kr),W(yt,"type",s.UniverInstanceType.UNIVER_SHEET),yt),h.UniverSheetsPlugin=Pr([sn(1,s.ICommandService),sn(2,z.Inject(s.LocaleService)),sn(3,z.Inject(z.Injector))],h.UniverSheetsPlugin);const Ar=[pe.id,ue.id,Gt.id,Me.id,Ye.id,be.id,Te.id,je.id,Fe.id,$e.id,He.id,Re.id,Ce.id,Ie.id,we.id],Vr=[q.id,Ve.id,F.id,j.id],Lr=1.5,Br="rgba(255, 255, 255, 0.01)";function Wr(n){const t=n.getCurrentTheme(),o=new s.ColorKit(t.primaryColor).setAlpha(.07).toRgbString();return{strokeWidth:1,stroke:t.primaryColor,fill:o,widgets:{},widgetSize:6,widgetStrokeWidth:1,widgetStroke:t.colorWhite,hasAutoFill:!0,AutofillSize:6,AutofillStrokeWidth:1,AutofillStroke:t.colorWhite,hasRowHeader:!0,rowHeaderFill:o,rowHeaderStroke:t.primaryColor,rowHeaderStrokeWidth:1,hasColumnHeader:!0,columnHeaderFill:o,columnHeaderStroke:t.primaryColor,columnHeaderStrokeWidth:1}}function jr(n){const{rangeWithCoord:t,primaryWithCoord:o,style:e}=n,r={range:{startRow:t.startRow,startColumn:t.startColumn,endRow:t.endRow,endColumn:t.endColumn,rangeType:t.rangeType},primary:null,style:e};return o!=null&&(r.primary=Eo(o)),r}function Eo(n){const{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r}=n,{startRow:a,startColumn:i,endRow:u,endColumn:d}=n.mergeInfo;return{actualRow:t,actualColumn:o,isMerged:e,isMergedMainCell:r,startRow:a,startColumn:i,endRow:u,endColumn:d}}function Fr(n,t,o){const e=ko.getCellInfoInMergeData(n,t,o),r=s.makeCellRangeToRangeData(e);if(r)return{range:r,primary:e,style:null}}const Hr=(n,t,o)=>{const r=n.get(h.SelectionManagerService).getSelections(),{value:a,selections:i,unitId:u,subUnitId:d}=t;if(r){const l=r[(r==null?void 0:r.length)-1].primary;if(l){const{actualColumn:m,actualRow:g}=l;let{startRow:S,startColumn:v,endRow:f,endColumn:C}=i[i.length-1];if(a===s.Dimension.COLUMNS){const w=o.find(M=>M.startColumn===m&&M.endColumn===m&&g===M.startRow);w&&(C=w.endColumn,S=w.startRow,f=w.endRow)}else if(a===s.Dimension.ROWS){const w=o.find(M=>M.startRow===g&&M.endRow===g&&m===M.startColumn);w&&(f=w.endRow,v=w.startColumn,C=w.endColumn)}const I={startRow:S,startColumn:v,endRow:f,endColumn:C,actualRow:g,actualColumn:m,isMerged:!0,isMergedMainCell:S===g&&v===m},R=r.map((w,M,y)=>({range:w.range,style:null,primary:M===y.length-1?I:null})),p={unitId:u,subUnitId:d,pluginName:X,selections:R};return{id:$.id,params:p}}return null}return null},$r=(n,t)=>{const e=n.get(h.SelectionManagerService).getSelections(),{unitId:r,subUnitId:a}=t;if(e&&e[(e==null?void 0:e.length)-1].primary){const d={unitId:r,subUnitId:a,pluginName:X,selections:[...e]};return{id:$.id,params:d}}return null};h.AddMergeRedoSelectionsOperationFactory=Hr,h.AddMergeUndoMutationFactory=me,h.AddMergeUndoSelectionsOperationFactory=$r,h.AddWorksheetMergeMutation=j,h.BorderStyleManagerService=Ee,h.COMMAND_LISTENER_SKELETON_CHANGE=Ar,h.COMMAND_LISTENER_VALUE_CHANGE=Vr,h.ClearSelectionAllCommand=tt,h.ClearSelectionContentCommand=_t,h.ClearSelectionFormatCommand=nt,h.CopySheetCommand=hn,h.DeleteRangeMoveLeftCommand=at,h.DeleteRangeMoveUpCommand=it,h.DeltaColumnWidthCommand=jt,h.DeltaRowHeightCommand=to,h.EffectRefRangId=P,h.EmptyMutation=io,h.INTERCEPTOR_POINT=Qe,h.INumfmtService=Ne,h.InsertColAfterCommand=yn,h.InsertColBeforeCommand=wn,h.InsertColCommand=Be,h.InsertColMutation=Re,h.InsertColMutationUndoFactory=Dt,h.InsertDefinedNameCommand=uo,h.InsertRangeMoveDownCommand=ut,h.InsertRangeMoveRightCommand=dt,h.InsertRowAfterCommand=Mn,h.InsertRowBeforeCommand=In,h.InsertRowCommand=Le,h.InsertRowMutation=Ce,h.InsertRowMutationUndoFactory=Nt,h.InsertSheetCommand=Un,h.InsertSheetMutation=_e,h.InsertSheetUndoMutationFactory=bt,h.MAX_CELL_PER_SHEET_KEY=go,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=k,h.RangeMergeUtil=ks,h.RemoveColCommand=ct,h.RemoveColMutation=Ie,h.RemoveDefinedNameCommand=lo,h.RemoveMergeUndoMutationFactory=re,h.RemoveNumfmtMutation=Yt,h.RemoveRowCommand=lt,h.RemoveRowMutation=we,h.RemoveSheetCommand=kt,h.RemoveSheetMutation=Ae,h.RemoveSheetUndoMutationFactory=gn,h.RemoveWorksheetMergeCommand=Nn,h.RemoveWorksheetMergeMutation=F,h.ResetBackgroundColorCommand=zn,h.ResetTextColorCommand=$n,h.SELECTION_CONTROL_BORDER_BUFFER_COLOR=Br,h.SELECTION_CONTROL_BORDER_BUFFER_WIDTH=Lr,h.ScrollToCellOperation=mo,h.SelectionMoveType=un,h.SetBackgroundColorCommand=Gn,h.SetBoldCommand=Ms,h.SetBorderBasicCommand=Dn,h.SetBorderColorCommand=kn,h.SetBorderCommand=We,h.SetBorderPositionCommand=On,h.SetBorderStyleCommand=Pn,h.SetColHiddenCommand=Vn,h.SetColHiddenMutation=je,h.SetColVisibleMutation=Fe,h.SetColWidthCommand=Ft,h.SetDefinedNameCommand=co,h.SetFontFamilyCommand=Us,h.SetFontSizeCommand=_s,h.SetFrozenCommand=Bn,h.SetFrozenMutation=ye,h.SetFrozenMutationFactory=Vt,h.SetHorizontalTextAlignCommand=xn,h.SetItalicCommand=ps,h.SetNumfmtMutation=ht,h.SetRangeValuesCommand=qe,h.SetRangeValuesMutation=q,h.SetRangeValuesUndoMutationFactory=Se,h.SetRowHeightCommand=no,h.SetRowHiddenCommand=jn,h.SetRowHiddenMutation=$e,h.SetRowVisibleMutation=He,h.SetSelectedColsVisibleCommand=An,h.SetSelectedRowsVisibleCommand=Wn,h.SetSelectionsOperation=$,h.SetSpecificColsVisibleCommand=At,h.SetSpecificRowsVisibleCommand=Lt,h.SetStrikeThroughCommand=ys,h.SetStyleCommand=J,h.SetTabColorCommand=Xn,h.SetTabColorMutation=xe,h.SetTextColorCommand=Hn,h.SetTextRotationCommand=Kn,h.SetTextWrapCommand=Yn,h.SetUnderlineCommand=ws,h.SetVerticalTextAlignCommand=qn,h.SetWorkbookNameCommand=Xt,h.SetWorkbookNameMutation=Kt,h.SetWorksheetActivateCommand=Bt,h.SetWorksheetActiveOperation=Ye,h.SetWorksheetColWidthMutation=Me,h.SetWorksheetColWidthMutationFactory=Wt,h.SetWorksheetHideCommand=Zn,h.SetWorksheetHideMutation=Ue,h.SetWorksheetNameCommand=Ht,h.SetWorksheetNameMutation=gt,h.SetWorksheetOrderCommand=Qn,h.SetWorksheetOrderMutation=Ke,h.SetWorksheetRowAutoHeightMutation=Gt,h.SetWorksheetRowAutoHeightMutationFactory=Os,h.SetWorksheetRowHeightMutation=pe,h.SetWorksheetRowIsAutoHeightCommand=zt,h.SetWorksheetRowIsAutoHeightMutation=ue,h.SetWorksheetShowCommand=oo,h.SheetEditablePermission=Je,h.alignToMergedCellsBorders=ze,h.convertPrimaryWithCoordToPrimary=Eo,h.convertSelectionDataToRange=jr,h.createTopMatrixFromMatrix=ro,h.createTopMatrixFromRanges=so,h.enUS=Cr,h.factoryRemoveNumfmtUndoMutation=Bs,h.factorySetNumfmtUndoMutation=Ls,h.findAllRectangle=qt,h.followSelectionOperation=fe,h.getAddMergeMutationRangeByType=Uo,h.getCellAtRowCol=es,h.getCurrentSheetDisabled$=_r,h.getInsertRangeMutations=Tt,h.getMoveRangeUndoRedoMutations=rt,h.getNormalSelectionStyle=Wr,h.getPrimaryForRange=oe,h.getRemoveRangeMutations=Et,h.getSheetCommandTarget=B,h.getSheetCommandTargetWorkbook=mn,h.getSheetMutationTarget=ot,h.handleBaseInsertRange=Oe,h.handleBaseMoveRowsCols=Xe,h.handleBaseRemoveRange=De,h.handleCommonDefaultRangeChangeWithEffectRefCommands=sr,h.handleDefaultRangeChangeWithEffectRefCommands=or,h.handleDeleteRangeMoveLeft=Ro,h.handleDeleteRangeMoveUp=Io,h.handleDeleteRangeMutation=rs,h.handleIRemoveCol=Qt,h.handleIRemoveRow=en,h.handleInsertCol=nn,h.handleInsertRangeMoveDown=fo,h.handleInsertRangeMoveRight=Co,h.handleInsertRangeMutation=ss,h.handleInsertRow=tn,h.handleMoveCols=Zt,h.handleMoveRange=So,h.handleMoveRows=Jt,h.isSingleCellSelection=ns,h.rangeMerge=xt,h.rotateRange=ae,h.ruRU=Rr,h.runRefRangeMutations=Pe,h.setEndForRange=ts,h.transformCellDataToSelectionData=Fr,h.transformCellsToRange=vt,h.zhCN=_o,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});